diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index dd152b80d0c9..09bbe2f736b9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -9,36 +9,83 @@ /sdk/ @mayurid @lmazuel # Core +# PRLabel: %Azure.Core /sdk/core/ @lmazuel @xiangyan99 @johanste @rakshith91 /sdk/core/azure-core/ @xiangyan99 @lmazuel +#### # Service team +#### +# PRLabel: %Azure.Identity /sdk/identity/ @chlowell @schaabs + +# PRLabel: %Event Hubs /sdk/eventhub/ @annatisch @yunhaoling @YijunXieMS -/sdk/storage/ @amishra-dev @zezha-msft @annatisch @rakshith91 @xiafu-msft -/sdk/applicationinsights/ @alexeldeib + +# PRLabel: %Storage +/sdk/storage/ @amishra-dev @zezha-msft @annatisch @rakshith91 @xiafu-msft @kasobol-msft + +/sdk/applicationinsights/ @alexeldeib + +# PRLabel: %Batch /sdk/batch/ @bgklein @xingwu1 -/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/ @areddish +/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/ @areddish + +# PRLabel: %KeyVault /sdk/keyvault/ @schaabs @chlowell @iscai-msft + +# PRLabel: %Monitor - LogAnalytics /sdk/loganalytics/ @alexeldeib + +# PRLabel: %Consumption /sdk/consumption/ @sandeepnl + +# PRLabel: %Container Instances /sdk/containerinstance/ @samkreter @xizhamsft + +# PRLabel: %Container Registry /sdk/containerregistry/ @djyou /sdk/containerservice/ @samkreter @zqingqing1 @GaneshaThirumurthi + +# PRLabel: %Cosmos /sdk/cosmos/ @southpolesteve @zfoster + +# PRLabel: %Data Factory /sdk/datafactory/ @hvermis -/sdk/datalake/ @ro-joowan +/sdk/datalake/ @ro-joowan /sdk/datadatamigration/ @vchske + +# PRLabel: %Event Grid /sdk/eventgrid/ @kalyanaj + +# PRLabel: %HDInsight /sdk/hdinsight/ @idear1203 + +# PRLabel: %Machine Learning Compute /sdk/machinelearningcompute/ @shutchings + +# PRLabel: %Recovery Services /sdk/recoveryservices/ @DheerendraRathor + +# PRLabel: %Search /sdk/search/ @xiangyan99 @rakshith91 + +# PRLabel: %Service Fabric /sdk/servicefabric/ @QingChenmsft @samedder + +# PRLabel: %SQL /sql/sql/ @jaredmoo + +# PRLabel: %Service Bus /sdk/servicebus/ @annatisch @yunhaoling @YijunXieMS @KieranBrantnerMagee + +# PRLabel: %Synapse /sdk/synapse/ @aim-for-better @idear1203 + +# PRLabel: %Cognitive - Text Analytics /sdk/textanalytics/ @kristapratico @iscai-msft + +# PRLabel: %Cognitive - Form Recognizer /sdk/formrecognizer/ @kristapratico @iscai-msft @rakshith91 # Smoke Tests diff --git a/NOTICE.txt b/NOTICE.txt index 29fd1c19d257..e7ab85b06abd 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1,7 +1,17 @@ -This file list any third-party libraries or other resources that may be -distributed under licenses different than the Azure SDK for Python software. +NOTICES AND INFORMATION +Do Not Translate or Localize -In the event that we accidentally failed to list a required notice, please -bring it to our attention by opening an issue. +This software incorporates material from third parties. Microsoft makes certain +open source code available at https://3rdpartysource.microsoft.com, or you may +send a check or money order for US $5.00, including the product name, the open +source component name, and version number, to: -The attached notices are provided for information only. \ No newline at end of file +Source Code Compliance Team +Microsoft Corporation +One Microsoft Way +Redmond, WA 98052 +USA + +Notwithstanding any other terms, you may reverse engineer this software to the +extent required to debug changes to any libraries licensed under the GNU Lesser +General Public License. diff --git a/README.md b/README.md index 62cdf6407b69..7cb6586a2f7c 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Management libraries can be identified by namespaces that start with `azure-mgmt ## Need help? * For detailed documentation visit our [Azure SDK for Python documentation](https://aka.ms/python-docs) -* File an issue via [Github Issues](../../issues) +* File an issue via [Github Issues](https://github.com/Azure/azure-sdk-for-python/issues) * Check [previous questions](https://stackoverflow.com/questions/tagged/azure+python) or ask new ones on StackOverflow using `azure` and `python` tags. ### Community diff --git a/doc/dev/mgmt/swagger/multi_api/readme.md b/doc/dev/mgmt/swagger/multi_api/readme.md index c52bdab65533..6fcc480c6da6 100644 --- a/doc/dev/mgmt/swagger/multi_api/readme.md +++ b/doc/dev/mgmt/swagger/multi_api/readme.md @@ -8,7 +8,7 @@ This is the AutoRest configuration file for Network. ## Getting Started -To build the SDK for Network, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: +To build the SDK for Network, simply [Install AutoRest](https://github.com/Azure/autorest/blob/master/docs/installing-autorest.md) and in this folder, run: > `autorest` @@ -66,4 +66,4 @@ swagger-to-sdk: ## Python -See configuration in [readme.python.md](./readme.python.md) +See configuration in [readme.python.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api/readme.python.md) diff --git a/doc/dev/mgmt/swagger/single_api/readme.md b/doc/dev/mgmt/swagger/single_api/readme.md index 777f5ec6b672..233f19b4173e 100644 --- a/doc/dev/mgmt/swagger/single_api/readme.md +++ b/doc/dev/mgmt/swagger/single_api/readme.md @@ -8,7 +8,7 @@ This is the AutoRest configuration file for Cdn. --- ## Getting Started -To build the SDK for Cdn, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: +To build the SDK for Cdn, simply [Install AutoRest](https://github.com/Azure/autorest/blob/master/docs/installing-autorest.md) and in this folder, run: > `autorest` diff --git a/doc/dev/mgmt/swagger_conf.md b/doc/dev/mgmt/swagger_conf.md index 198e4e7c0965..b026757b1306 100644 --- a/doc/dev/mgmt/swagger_conf.md +++ b/doc/dev/mgmt/swagger_conf.md @@ -18,18 +18,18 @@ Writing the readme is the responsibility of the Python SDK team. There is curren - Readme that handles only one API version, and generates packages that handle one API version only - Readme that handles several API versions, and generates packages with multiples API and profile supports -These templates can be found in the [single_api](./single_api) and the [multi_api](./multi_api) folders. +These templates can be found in the [single_api](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/single_api) and the [multi_api](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api) folders. ### Single API readmes This one is the most simple: -- Copy the [readme.python.md](./single_api/readme.python.md) and replace `servicetoreplace` by your service name -- Be sure the main [readme.md](./single_api/readme.md) contains a "swagger-to-sdk" section with Python +- Copy the [readme.python.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/single_api/readme.python.md) and replace `servicetoreplace` by your service name +- Be sure the main [readme.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/single_api/readme.md) contains a "swagger-to-sdk" section with Python ### Multi API readmes -When doing multi-api packages, it means you have shipping several "tags" of the main readme as one package. Autorest is calling this process a "batch" call, and this is the purpose of the "batch" section in [readme.python.md](./multi_api/readme.python.md). +When doing multi-api packages, it means you have shipping several "tags" of the main readme as one package. Autorest is calling this process a "batch" call, and this is the purpose of the "batch" section in [readme.python.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api/readme.python.md). In order to be sure the correct tags exist, you can use the following script: ```shell @@ -37,8 +37,8 @@ python ./scripts/multi_api_readme_help.py /azure-rest-api-specs/specification/se ``` This script will analyze the Swaggers available, and suggests on stdout: -- A list of tags for the main [readme.md](./multi_api/readme.md) -- A batch declaration for the [readme.python.md](./multi_api/readme.python.md) +- A list of tags for the main [readme.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api/readme.md) +- A batch declaration for the [readme.python.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api/readme.python.md) This script is not perfect that it *does* require manual review of the output and not a direct copy/paste. @@ -46,10 +46,10 @@ It's important for Python that tags represents only *ONE* unique API version. It Once you know the list of tags you need to generate: -- Copy the [readme.python.md](./multi_api/readme.python.md) and replace `servicetoreplace` by your service name -- Update the batch list of [readme.python.md](./multi_api/readme.python.md) -- Be sure you have one tag section for each batch entry in [readme.python.md](./multi_api/readme.python.md) -- Be sure the main [readme.md](./multi_api/readme.md) contains a "swagger-to-sdk" section with Python with an `afterscripts` section like the one in the template. +- Copy the [readme.python.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api/readme.python.md) and replace `servicetoreplace` by your service name +- Update the batch list of [readme.python.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api/readme.python.md) +- Be sure you have one tag section for each batch entry in [readme.python.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api/readme.python.md) +- Be sure the main [readme.md](https://github.com/Azure/azure-sdk-for-python/blob/master/doc/dev/mgmt/swagger/multi_api/readme.md) contains a "swagger-to-sdk" section with Python with an `afterscripts` section like the one in the template. The `afterscripts` will execute a Jinja template to create a client to link together all the batch generated autorest ([example](https://github.com/Azure/azure-sdk-for-python/blob/4a7c67189591b052fe2b5769847ff68f7845386d/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/_storage_management_client.py)) diff --git a/doc/dev/mgmt/tests.md b/doc/dev/mgmt/tests.md index 8816ed5056d9..4c41cd5e0f40 100644 --- a/doc/dev/mgmt/tests.md +++ b/doc/dev/mgmt/tests.md @@ -176,7 +176,7 @@ providing several features useful for the SDK tests, for example: * Patches for overriding functions and methods that don't work well with tests (such as long-running operations) -Code in the [`azure-sdk-tools/devtools_testutils`](tools/azure-sdk-tools/devtools_testutils) directory +Code in the [`azure-sdk-tools/devtools_testutils`](https://github.com/Azure/azure-sdk-for-python/tree/master/tools/azure-sdk-tools/devtools_testutils) directory provides concrete implementations of the features provided in `scenario_tests` that are oriented around use in SDK testing and that you can use directly in your unit tests. diff --git a/eng/ci_tools.txt b/eng/ci_tools.txt index 3315fe8a548c..dac85fba9d07 100644 --- a/eng/ci_tools.txt +++ b/eng/ci_tools.txt @@ -1,36 +1,35 @@ # requirements leveraged by ci tools setuptools==44.1.0; python_version == '2.7' -setuptools==45.1.0; python_version >= '3.5' +setuptools==46.4.0; python_version >= '3.5' virtualenv==20.0.23 wheel==0.34.2 -Jinja2==2.11.1 +Jinja2==2.11.2 packaging==20.4 -tox==3.14.6 +tox==3.15.0 tox-monorepo==0.1.2 -twine==1.15.0 +twine==1.15.0; python_version == '2.7' or python_version == '3.5' +twine==3.1.1; python_version >= '3.6' pathlib2==2.3.5 readme-renderer[md]==25.0 -doc-warden==0.5.4 +doc-warden==0.7.1 +# we pin coverage to 4.5.4 because there is an bug with `pytest-cov`. the generated coverage files cannot be `coverage combine`ed coverage==4.5.4 -codecov==2.0.22 -beautifulsoup4==4.8.2 +codecov==2.1.0 +beautifulsoup4==4.9.1 pkginfo==1.5.0.1 # locking packages defined as deps from azure-sdk-tools or azure-devtools pytoml==0.1.21 pyOpenSSL==19.1.0 json-delta==2.0 -ConfigArgParse==1.1 +ConfigArgParse==1.2.3 six==1.14.0 vcrpy==3.0.0 pyyaml==5.3.1 -pytest==5.4.1; python_version >= '3.5' +pytest==5.4.2; python_version >= '3.5' pytest==4.6.9; python_version == '2.7' pytest-cov==2.8.1 # local dev packages ./tools/azure-devtools ./tools/azure-sdk-tools - - - diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index 9e281d04eb66..90e496d2e83d 100644 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -154,6 +154,9 @@ if ($ProvisionerApplicationId) { $subscriptionArgs = if ($SubscriptionId) { @{SubscriptionId = $SubscriptionId} } + else { + @{} + } $provisionerAccount = Retry { Connect-AzAccount -Force:$Force -Tenant $TenantId -Credential $provisionerCredential -ServicePrincipal -Environment $Environment @subscriptionArgs @@ -161,7 +164,11 @@ if ($ProvisionerApplicationId) { $exitActions += { Write-Verbose "Logging out of service principal '$($provisionerAccount.Context.Account)'" - $null = Disconnect-AzAccount -AzureContext $provisionerAccount.Context + + # Only attempt to disconnect if the -WhatIf flag was not set. Otherwise, this call is not necessary and will fail. + if ($PSCmdlet.ShouldProcess($ProvisionerApplicationId)) { + $null = Disconnect-AzAccount -AzureContext $provisionerAccount.Context + } } } @@ -176,7 +183,6 @@ if ($TestApplicationId -and !$TestApplicationOid) { } } - # If the ServiceDirectory is an absolute path use the last directory name # (e.g. D:\foo\bar\ -> bar) $serviceName = if (Split-Path -IsAbsolute $ServiceDirectory) { @@ -229,6 +235,13 @@ if ($resourceGroup.ProvisioningState -eq 'Succeeded') { # New-AzResourceGroup would've written an error and stopped the pipeline by default anyway. Write-Verbose "Successfully created resource group '$($resourceGroup.ResourceGroupName)'" } +elseif (($resourceGroup -eq $null) -and (-not $PSCmdlet.ShouldProcess($resourceGroupName))) { + # If the -WhatIf flag was passed, there will be no resource group created. Fake it. + $resourceGroup = [PSCustomObject]@{ + ResourceGroupName = $resourceGroupName + Location = $Location + } +} # Populate the template parameters and merge any additional specified. $templateParameters = @{ @@ -299,6 +312,9 @@ foreach ($templateFile in $templateFiles) { "$($serviceDirectoryPrefix)RESOURCE_GROUP" = $resourceGroup.ResourceGroupName; "$($serviceDirectoryPrefix)LOCATION" = $resourceGroup.Location; "$($serviceDirectoryPrefix)ENVIRONMENT" = $context.Environment.Name; + "$($serviceDirectoryPrefix)AZURE_AUTHORITY_HOST" = $context.Environment.ActiveDirectoryAuthority; + "$($serviceDirectoryPrefix)RESOURCE_MANAGER_URL" = $context.Environment.ResourceManagerUrl; + "$($serviceDirectoryPrefix)SERVICE_MANAGEMENT_URL" = $context.Environment.ServiceManagementUrl; } foreach ($key in $deployment.Outputs.Keys) { @@ -331,7 +347,7 @@ foreach ($templateFile in $templateFiles) { } else { - + if (!$CI) { # Write an extra new line to isolate the environment variables for easy reading. Log "Persist the following environment variables based on your detected shell ($shell):`n" @@ -340,7 +356,7 @@ foreach ($templateFile in $templateFiles) { foreach ($key in $deploymentOutputs.Keys) { $value = $deploymentOutputs[$key] - + if ($CI) { # Treat all ARM template output variables as secrets since "SecureString" variables do not set values. # In order to mask secrets but set environment variables for any given ARM template, we set variables twice as shown below. diff --git a/eng/common/TestResources/deploy-test-resources.yml b/eng/common/TestResources/deploy-test-resources.yml index b580d73f1406..b875a806b143 100644 --- a/eng/common/TestResources/deploy-test-resources.yml +++ b/eng/common/TestResources/deploy-test-resources.yml @@ -13,7 +13,7 @@ parameters: # "TestApplicationId": "", # "TestApplicationSecret": "", # "ProvisionerApplicationId": "", -# "ProvisoinerApplicationSecret": "", +# "ProvisionerApplicationSecret": "", # "Environment": "AzureCloud | AzureGov | AzureChina | " # } diff --git a/eng/common/TestResources/remove-test-resources.yml b/eng/common/TestResources/remove-test-resources.yml index 1565e7d4bd0f..767f8c8c516b 100644 --- a/eng/common/TestResources/remove-test-resources.yml +++ b/eng/common/TestResources/remove-test-resources.yml @@ -32,5 +32,5 @@ steps: -Force ` -Verbose displayName: Remove test resources - condition: and(ne(variables['AZURE_RESOURCEGROUP_NAME'], ''), succeededOrFailed()) + condition: ne(variables['AZURE_RESOURCEGROUP_NAME'], '') continueOnError: true diff --git a/eng/pipelines/templates/steps/cosmos-emulator.yml b/eng/common/pipelines/templates/steps/cosmos-emulator.yml similarity index 100% rename from eng/pipelines/templates/steps/cosmos-emulator.yml rename to eng/common/pipelines/templates/steps/cosmos-emulator.yml diff --git a/eng/common/pipelines/templates/steps/create-pull-request.yml b/eng/common/pipelines/templates/steps/create-pull-request.yml index 790de92bcbe5..10af61de1100 100644 --- a/eng/common/pipelines/templates/steps/create-pull-request.yml +++ b/eng/common/pipelines/templates/steps/create-pull-request.yml @@ -12,6 +12,8 @@ parameters: WorkingDirectory: $(System.DefaultWorkingDirectory) PRTitle: not-specified ScriptDirectory: eng/common/scripts + GHReviewersVariable: '' + GHTeamReviewersVariable: '' steps: @@ -63,3 +65,18 @@ steps: -PRBranch "${{ parameters.PRBranchName }}" -AuthToken "$(azuresdk-github-pat)" -PRTitle "${{ parameters.PRTitle }}" + +- task: PowerShell@2 + displayName: Tag a Reviewer on PR + condition: and(succeeded(), eq(variables['HasChanges'], 'true')) + inputs: + pwsh: true + workingDirectory: ${{ parameters.WorkingDirectory }} + filePath: ${{ parameters.ScriptDirectory }}/add-pullrequest-reviewers.ps1 + arguments: > + -RepoOwner "${{ parameters.RepoOwner }}" + -RepoName "${{ parameters.RepoName }}" + -AuthToken "$(azuresdk-github-pat)" + -GitHubUsers "$(${{ parameters.GHReviewersVariable }})" + -GitHubTeams "$(${{ parameters.GHTeamReviewersVariable }})" + -PRNumber "$(Submitted.PullRequest.Number)" diff --git a/eng/common/pipelines/templates/steps/docs-metadata-release.yml b/eng/common/pipelines/templates/steps/docs-metadata-release.yml index 6ff9f84ff3ee..a9ff8c4e17b4 100644 --- a/eng/common/pipelines/templates/steps/docs-metadata-release.yml +++ b/eng/common/pipelines/templates/steps/docs-metadata-release.yml @@ -12,6 +12,8 @@ parameters: ArtifactName: '' Language: '' DocRepoDestinationPath: '' #usually docs-ref-services/ + GHReviewersVariable: '' + GHTeamReviewersVariable: '' # externally set, as eng-common does not have the identity-resolver. Run as pre-step steps: - pwsh: | @@ -56,3 +58,5 @@ steps: BaseBranchName: smoke-test WorkingDirectory: ${{ parameters.WorkingDirectory }}/repo ScriptDirectory: ${{ parameters.WorkingDirectory }}/${{ parameters.ScriptDirectory }} + GHReviewersVariable: ${{ parameters.GHReviewersVariable }} + GHTeamReviewersVariable: ${{ parameters.GHTeamReviewersVariable }} diff --git a/eng/common/pipelines/templates/steps/get-pr-owners.yml b/eng/common/pipelines/templates/steps/get-pr-owners.yml new file mode 100644 index 000000000000..a80d5b83b2de --- /dev/null +++ b/eng/common/pipelines/templates/steps/get-pr-owners.yml @@ -0,0 +1,46 @@ +parameters: + TargetVariable: '' + ServiceDirectory: '' + +steps: + - pwsh: | + git clone https://github.com/Azure/azure-sdk-tools.git $(Build.SourcesDirectory)/tools_repo + cd $(Build.SourcesDirectory)/tools_repo + git checkout 564ad63ae72d18422533fa1da9d396e7703c1cb5 + displayName: Setup Identity Resolver + + - pwsh: | + $result = dotnet run -v q -- ` + --aad-app-id-var APP_ID ` + --aad-app-secret-var APP_SECRET ` + --aad-tenant-var AAD_TENANT ` + --kusto-url-var KUSTO_URL ` + --kusto-database-var KUSTO_DB ` + --kusto-table-var KUSTO_TABLE ` + --identity "$(Build.QueuedBy)" + $resolvedIdentity = $result[-1] | ConvertFrom-Json + + Write-Host $resolvedIdentity + + Write-Output "##vso[task.setvariable variable=${{ parameters.TargetVariable }}]$($resolvedIdentity.GithubUserName)" + displayName: 'Resolving Queuing User' + workingDirectory: $(Build.SourcesDirectory)/tools_repo/tools/notification-configuration/identity-resolver + env: + APP_ID: $(notification-aad-app-id) + APP_SECRET: $(notification-aad-secret) + AAD_TENANT: $(notification-aad-tenant) + KUSTO_URL: $(notification-kusto-url) + KUSTO_DB: $(notification-kusto-db) + KUSTO_TABLE: $(notification-kusto-table) + + - pwsh: | + Remove-Item -Force -Recurse $(Build.SourcesDirectory)/tools_repo + displayName: Clean Up Cloned Tools Repo + + - pwsh: | + $originalValue = "$(${{ parameters.TargetVariable }})" + $result = $(Build.SourcesDirectory)/eng/common/scripts/get-codeowners.ps1 -TargetDirectory /sdk/${{ parameters.ServiceDirectory }}/ -RootDirectory $(Build.SourcesDirectory) + if ($result) { + Write-Output "##vso[task.setvariable variable=${{ parameters.TargetVariable }}]$originalValue,$result" + } + displayName: Add CodeOwners if Present \ No newline at end of file diff --git a/eng/common/scripts/ChangeLog-Operations.ps1 b/eng/common/scripts/ChangeLog-Operations.ps1 new file mode 100644 index 000000000000..8397e1d0a05a --- /dev/null +++ b/eng/common/scripts/ChangeLog-Operations.ps1 @@ -0,0 +1,122 @@ +# Common Changelog Operations + +$RELEASE_TITLE_REGEX = "(?^\#+.*(?\b\d+\.\d+\.\d+([^0-9\s][^\s:]+)?)(\s(?\(Unreleased\)|\(\d{4}-\d{2}-\d{2}\)))?)" + +# Returns a Collection of changeLogEntry object containing changelog info for all version present in the gived CHANGELOG +function Get-ChangeLogEntries { + param ( + [Parameter(Mandatory = $true)] + [String]$ChangeLogLocation + ) + + $changeLogEntries = @{} + if (!(Test-Path $ChangeLogLocation)) { + Write-Error "ChangeLog[${ChangeLogLocation}] does not exist" + return $null + } + + try { + $contents = Get-Content $ChangeLogLocation + # walk the document, finding where the version specifiers are and creating lists + $changeLogEntry = $null + foreach ($line in $contents) { + if ($line -match $RELEASE_TITLE_REGEX) { + $changeLogEntry = [pscustomobject]@{ + ReleaseVersion = $matches["version"] + ReleaseStatus = $matches["releaseStatus"] + ReleaseTitle = $line + ReleaseContent = @() # Release content without the version title + } + $changeLogEntries[$changeLogEntry.ReleaseVersion] = $changeLogEntry + } + else { + if ($changeLogEntry) { + $changeLogEntry.ReleaseContent += $line + } + } + } + } + catch { + Write-Host "Error parsing $ChangeLogLocation." + Write-Host $_.Exception.Message + } + return $changeLogEntries +} + +# Returns single changeLogEntry object containing the ChangeLog for a particular version +function Get-ChangeLogEntry { + param ( + [Parameter(Mandatory = $true)] + [String]$ChangeLogLocation, + [Parameter(Mandatory = $true)] + [String]$VersionString + ) + $changeLogEntries = Get-ChangeLogEntries -ChangeLogLocation $ChangeLogLocation + + if ($changeLogEntries -and $changeLogEntries.ContainsKey($VersionString)) { + return $changeLogEntries[$VersionString] + } + return $null +} + +#Returns the changelog for a particular version as string +function Get-ChangeLogEntryAsString { + param ( + [Parameter(Mandatory = $true)] + [String]$ChangeLogLocation, + [Parameter(Mandatory = $true)] + [String]$VersionString + ) + + $changeLogEntry = Get-ChangeLogEntry -ChangeLogLocation $ChangeLogLocation -VersionString $VersionString + return ChangeLogEntryAsString $changeLogEntry +} + +function ChangeLogEntryAsString($changeLogEntry) { + if (!$changeLogEntry) { + return "[Missing change log entry]" + } + [string]$releaseTitle = $changeLogEntry.ReleaseTitle + [string]$releaseContent = $changeLogEntry.ReleaseContent -Join [Environment]::NewLine + return $releaseTitle, $releaseContent -Join [Environment]::NewLine +} + +function Confirm-ChangeLogEntry { + param ( + [Parameter(Mandatory = $true)] + [String]$ChangeLogLocation, + [Parameter(Mandatory = $true)] + [String]$VersionString, + [boolean]$ForRelease = $false + ) + + $changeLogEntry = Get-ChangeLogEntry -ChangeLogLocation $ChangeLogLocation -VersionString $VersionString + + if (!$changeLogEntry) { + Write-Error "ChangeLog[${ChangeLogLocation}] does not have an entry for version ${VersionString}." + return $false + } + + Write-Host "Found the following change log entry for version '${VersionString}' in [${ChangeLogLocation}]." + Write-Host "-----" + Write-Host (ChangeLogEntryAsString $changeLogEntry) + Write-Host "-----" + + if ([System.String]::IsNullOrEmpty($changeLogEntry.ReleaseStatus)) { + Write-Error "Entry does not have a correct release status. Please ensure the status is set to a date '(yyyy-MM-dd)' or '(Unreleased)' if not yet released." + return $false + } + + if ($ForRelease -eq $True) { + if ($changeLogEntry.ReleaseStatus -eq "(Unreleased)") { + Write-Error "Entry has no release date set. Please ensure to set a release date with format 'yyyy-MM-dd'." + return $false + } + + if ([System.String]::IsNullOrWhiteSpace($changeLogEntry.ReleaseContent)) { + Write-Error "Entry has no content. Please ensure to provide some content of what changed in this version." + return $false + } + } + return $true +} \ No newline at end of file diff --git a/eng/common/scripts/Package-Properties.ps1 b/eng/common/scripts/Package-Properties.ps1 new file mode 100644 index 000000000000..cba89157a879 --- /dev/null +++ b/eng/common/scripts/Package-Properties.ps1 @@ -0,0 +1,182 @@ +# Helper functions for retireving useful information from azure-sdk-for-* repo +# Example Use : Import-Module .\eng\common\scripts\modules +class PackageProps +{ + [string]$pkgName + [string]$pkgVersion + [string]$pkgDirectoryPath + [string]$pkgServiceName + [string]$pkgReadMePath + [string]$pkgChangeLogPath + [string]$pkgGroup + + PackageProps([string]$pkgName,[string]$pkgVersion,[string]$pkgDirectoryPath,[string]$pkgServiceName) + { + $this.Initialize($pkgName, $pkgVersion, $pkgDirectoryPath, $pkgServiceName) + } + + PackageProps([string]$pkgName,[string]$pkgVersion,[string]$pkgDirectoryPath,[string]$pkgServiceName,[string]$pkgGroup="") + { + $this.Initialize($pkgName, $pkgVersion, $pkgDirectoryPath, $pkgServiceName, $pkgGroup) + } + + hidden [void]Initialize( + [string]$pkgName, + [string]$pkgVersion, + [string]$pkgDirectoryPath, + [string]$pkgServiceName + ) + { + $this.pkgName = $pkgName + $this.pkgVersion = $pkgVersion + $this.pkgDirectoryPath = $pkgDirectoryPath + $this.pkgServiceName = $pkgServiceName + + if (Test-Path (Join-Path $pkgDirectoryPath "README.md")) + { + $this.pkgReadMePath = Join-Path $pkgDirectoryPath "README.md" + } + else + { + $this.pkgReadMePath = $null + } + + if (Test-Path (Join-Path $pkgDirectoryPath "CHANGELOG.md")) + { + $this.pkgChangeLogPath = Join-Path $pkgDirectoryPath "CHANGELOG.md" + } + else + { + $this.pkgChangeLogPath = $null + } + } + + hidden [void]Initialize( + [string]$pkgName, + [string]$pkgVersion, + [string]$pkgDirectoryPath, + [string]$pkgServiceName, + [string]$pkgGroup + ) + { + $this.Initialize($pkgName, $pkgVersion, $pkgDirectoryPath, $pkgServiceName) + $this.pkgGroup = $pkgGroup + } +} + +# Takes package name and service Name +# Returns important properties of the package as related to the language repo +# Returns a PS Object with properties @ { pkgName, pkgVersion, pkgDirectoryPath, pkgReadMePath, pkgChangeLogPath } +# Note: python is required for parsing python package properties. +function Get-PkgProperties +{ + Param + ( + [Parameter(Mandatory=$true)] + [string]$PackageName, + [Parameter(Mandatory=$true)] + [string]$ServiceName + ) + + $pkgDirectoryName = $null + $pkgDirectoryPath = $null + $serviceDirectoryPath = Join-Path $RepoRoot "sdk" $ServiceName + if (!(Test-Path $serviceDirectoryPath)) + { + Write-Error "Service Directory $ServiceName does not exist" + exit 1 + } + + $directoriesPresent = Get-ChildItem $serviceDirectoryPath -Directory + + foreach ($directory in $directoriesPresent) + { + $pkgDirectoryPath = Join-Path $serviceDirectoryPath $directory.Name + if ($ExtractPkgProps) + { + $pkgProps = &$ExtractPkgProps -pkgPath $pkgDirectoryPath -serviceName $ServiceName -pkgName $PackageName + } + else + { + Write-Error "The function '${ExtractPkgProps}' was not found." + } + + if ($pkgProps -ne $null) + { + return $pkgProps + } + } + Write-Error "Failed to retrive Properties for $PackageName" +} + +# Takes ServiceName and Repo Root Directory +# Returns important properties for each package in the specified service, or entire repo if the serviceName is not specified +# Returns an Table of service key to array values of PS Object with properties @ { pkgName, pkgVersion, pkgDirectoryPath, pkgReadMePath, pkgChangeLogPath } +function Get-AllPkgProperties ([string]$ServiceName=$null) +{ + $pkgPropsResult = @() + + if ([string]::IsNullOrEmpty($ServiceName)) + { + $searchDir = Join-Path $RepoRoot "sdk" + foreach ($dir in (Get-ChildItem $searchDir -Directory)) + { + $serviceDir = Join-Path $searchDir $dir.Name + + if (Test-Path (Join-Path $serviceDir "ci.yml")) + { + $activePkgList = Get-PkgListFromYml -ciYmlPath (Join-Path $serviceDir "ci.yml") + if ($activePkgList -ne $null) + { + $pkgPropsResult = Operate-OnPackages -activePkgList $activePkgList -serviceName $dir.Name -pkgPropsResult $pkgPropsResult + } + } + } + } + else + { + $serviceDir = Join-Path $RepoRoot "sdk" $ServiceName + if (Test-Path (Join-Path $serviceDir "ci.yml")) + { + $activePkgList = Get-PkgListFromYml -ciYmlPath (Join-Path $serviceDir "ci.yml") + if ($activePkgList -ne $null) + { + $pkgPropsResult = Operate-OnPackages -activePkgList $activePkgList -serviceName $ServiceName -pkgPropsResult $pkgPropsResult + } + } + } + + return $pkgPropsResult +} + +function Operate-OnPackages ($activePkgList, $serviceName, [Array]$pkgPropsResult) +{ + foreach ($pkg in $activePkgList) + { + $pkgProps = Get-PkgProperties -PackageName $pkg["name"] -ServiceName $serviceName + $pkgPropsResult += $pkgProps + } + return $pkgPropsResult +} + +function Get-PkgListFromYml ($ciYmlPath) +{ + $ProgressPreference = "SilentlyContinue" + Register-PSRepository -Default -ErrorAction:SilentlyContinue + Install-Module -Name powershell-yaml -RequiredVersion 0.4.1 -Force -Scope CurrentUser + $ciYmlContent = Get-Content $ciYmlPath -Raw + $ciYmlObj = ConvertFrom-Yaml $ciYmlContent -Ordered + if ($ciYmlObj.Contains("stages")) + { + $artifactsInCI = $ciYmlObj["stages"][0]["parameters"]["Artifacts"] + } + elseif ($ciYmlObj.Contains("extends")) + { + $artifactsInCI = $ciYmlObj["extends"]["parameters"]["Artifacts"] + } + if ($artifactsInCI -eq $null) + { + Write-Error "Failed to retrive package names in ci $ciYmlPath" + } + return $artifactsInCI +} \ No newline at end of file diff --git a/eng/common/scripts/Submit-PullRequest.ps1 b/eng/common/scripts/Submit-PullRequest.ps1 index ef2a6f545061..5edabc599a99 100644 --- a/eng/common/scripts/Submit-PullRequest.ps1 +++ b/eng/common/scripts/Submit-PullRequest.ps1 @@ -58,6 +58,9 @@ $resp | Write-Verbose if ($resp.Count -gt 0) { Write-Host -f green "Pull request already exists $($resp[0].html_url)" + + # setting variable to reference the pull request by number + Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$($resp[0].number)" } else { $data = @{ @@ -80,4 +83,7 @@ else { $resp | Write-Verbose Write-Host -f green "Pull request created https://github.com/$RepoOwner/$RepoName/pull/$($resp.number)" + + # setting variable to reference the pull request by number + Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$($resp.number)" } diff --git a/eng/common/scripts/Verify-Links.ps1 b/eng/common/scripts/Verify-Links.ps1 index c78ce9020ebb..0dca2989a78d 100644 --- a/eng/common/scripts/Verify-Links.ps1 +++ b/eng/common/scripts/Verify-Links.ps1 @@ -87,7 +87,7 @@ function ResolveUri ([System.Uri]$referralUri, [string]$link) return $null } - if ($null -ne $ignoreLinks -and $ignoreLinks.Contains($link)) { + if ($null -ne $ignoreLinks -and ($ignoreLinks.Contains($link) -or $ignoreLinks.Contains($linkUri.ToString()))) { Write-Verbose "Ignoring invalid link $linkUri because it is in the ignore file." return $null } @@ -125,7 +125,18 @@ function CheckLink ([System.Uri]$linkUri) } else { try { - $response = Invoke-WebRequest -Uri $linkUri + $headRequestSucceeded = $true + try { + # Attempt HEAD request first + $response = Invoke-WebRequest -Uri $linkUri -Method HEAD + } + catch { + $headRequestSucceeded = $false + } + if (!$headRequestSucceeded) { + # Attempt a GET request if the HEAD request failed. + $response = Invoke-WebRequest -Uri $linkUri -Method GET + } $statusCode = $response.StatusCode if ($statusCode -ne 200) { Write-Host "[$statusCode] while requesting $linkUri" diff --git a/eng/common/scripts/add-pullrequest-reviewers.ps1 b/eng/common/scripts/add-pullrequest-reviewers.ps1 new file mode 100644 index 000000000000..00460ce701f0 --- /dev/null +++ b/eng/common/scripts/add-pullrequest-reviewers.ps1 @@ -0,0 +1,79 @@ +param( + [Parameter(Mandatory = $true)] + $RepoOwner, + + [Parameter(Mandatory = $true)] + $RepoName, + + [Parameter(Mandatory = $false)] + $GitHubUsers = "", + + [Parameter(Mandatory = $false)] + $GitHubTeams = "", + + [Parameter(Mandatory = $true)] + $PRNumber, + + [Parameter(Mandatory = $true)] + $AuthToken +) + +# at least one of these needs to be populated +if (-not $GitHubUsers -and -not $GitHubTeams) { + Write-Host "No user provided for addition, exiting." + exit 0 +} + +$userAdditions = @($GitHubUsers.Split(",") | % { $_.Trim() } | ? { return $_ }) +$teamAdditions = @($GitHubTeams.Split(",") | % { $_.Trim() } | ? { return $_ }) + +$headers = @{ + Authorization = "bearer $AuthToken" +} +$uri = "https://api.github.com/repos/$RepoOwner/$RepoName/pulls/$PRNumber/requested_reviewers" + +try { + $resp = Invoke-RestMethod -Headers $headers $uri -MaximumRetryCount 3 +} +catch { + Write-Error "Invoke-RestMethod [$uri] failed with exception:`n$_" + exit 1 +} + +# the response object takes this form: https://developer.github.com/v3/pulls/review_requests/#response-1 +# before we can push a new reviewer, we need to pull the simple Ids out of the complex objects that came back in the response +$userReviewers = @($resp.users | % { return $_.login }) +$teamReviewers = @($resp.teams | % { return $_.slug }) + +if (!$usersReviewers) { $modifiedUserReviewers = @() } else { $modifiedUserReviewers = $usersReviewers.Clone() } +$modifiedUserReviewers += ($modifiedUserReviewers | ? { !$usersReviews.Contains($_) }) + +if ($teamReviewers) { $modifiedTeamReviewers = @() } else { $modifiedTeamReviewers = $teamReviewers.Clone() } +$modifiedTeamReviewers += ($modifiedUserReviewers | ? { !$teamReviewers.Contains($_) }) + +$detectedUserDiffs = Compare-Object -ReferenceObject $userReviewers -DifferenceObject $modifiedUserReviewers +$detectedTeamDiffs = Compare-Object -ReferenceObject $teamReviewers -DifferenceObject $modifiedTeamReviewers + +# Compare-Object returns values when there is a difference between the comparied objects. +# we only want to run the update if there IS a difference. +if ($detectedUserDiffs -or $detectedTeamDiffs) { + $postResp = @{} + + if ($modifiedUserReviewers) { $postResp["reviewers"] = $modifiedUserReviewers } + if ($modifiedTeamReviewers) { $postResp["team_reviewers"] = $modifiedTeamReviewers } + + $postResp = $postResp | ConvertTo-Json + + try { + $resp = Invoke-RestMethod -Method Post -Headers $headers -Body $postResp -Uri $uri -MaximumRetryCount 3 + $resp | Write-Verbose + } + catch { + Write-Error "Unable to update PR reviewers. `n$_" + } +} +else { + $results = $GitHubUsers + $GitHubTeams + Write-Host "Reviewers $results already added. Exiting." + exit(0) +} diff --git a/eng/common/scripts/artifact-metadata-parsing.ps1 b/eng/common/scripts/artifact-metadata-parsing.ps1 index e48a526fe9e5..af7c9401e644 100644 --- a/eng/common/scripts/artifact-metadata-parsing.ps1 +++ b/eng/common/scripts/artifact-metadata-parsing.ps1 @@ -347,6 +347,38 @@ function ParseCArtifact($pkg, $workingDirectory) { } } +function ParseCppArtifact($pkg, $workingDirectory) { + $packageInfo = Get-Content -Raw -Path $pkg | ConvertFrom-JSON + $packageArtifactLocation = (Get-ItemProperty $pkg).Directory.FullName + $releaseNotes = "" + $readmeContent = "" + + $pkgVersion = $packageInfo.version + $pkgName = $packageInfo.name + + $changeLogLoc = @(Get-ChildItem -Path $packageArtifactLocation -Recurse -Include "CHANGELOG.md")[0] + if ($changeLogLoc) + { + $releaseNotes = Get-ChangeLogEntryAsString -ChangeLogLocation $changeLogLoc -VersionString $pkgVersion + } + + $readmeContentLoc = @(Get-ChildItem -Path $packageArtifactLocation -Recurse -Include "README.md")[0] + if ($readmeContentLoc) { + $readmeContent = Get-Content -Raw $readmeContentLoc + } + + return New-Object PSObject -Property @{ + PackageId = $pkgName + PackageVersion = $pkgVersion + # Artifact info is always considered deployable for now becasue it is not + # deployed anywhere. Dealing with duplicate tags happens downstream in + # CheckArtifactShaAgainstTagsList + Deployable = $true + ReleaseNotes = $releaseNotes + } +} + + # Returns the pypi publish status of a package id and version. function IsPythonPackageVersionPublished($pkgId, $pkgVersion) { try { @@ -374,9 +406,10 @@ function IsPythonPackageVersionPublished($pkgId, $pkgVersion) { # Retrieves the list of all tags that exist on the target repository function GetExistingTags($apiUrl) { try { - return (Invoke-WebRequest-WithHandling -Method "GET" -url "$apiUrl/git/refs/tags" ) | % { $_.ref.Replace("refs/tags/", "") } + return (Invoke-RestMethod -Method "GET" -Uri "$apiUrl/git/refs/tags" -MaximumRetryCount 3 -RetryIntervalSec 10) | % { $_.ref.Replace("refs/tags/", "") } } catch { + Write-Host $_ $statusCode = $_.Exception.Response.StatusCode.value__ $statusDescription = $_.Exception.Response.StatusDescription @@ -386,7 +419,7 @@ function GetExistingTags($apiUrl) { # Return an empty list if there are no tags in the repo if ($statusCode -eq 404) { - return @() + return ,@() } exit(1) @@ -424,6 +457,10 @@ function VerifyPackages($pkgRepository, $artifactLocation, $workingDirectory, $a $ParsePkgInfoFn = "ParseCArtifact" $packagePattern = "*.json" } + "CPP" { + $ParsePkgInfoFn = "ParseCppArtifact" + $packagePattern = "*.json" + } default { Write-Host "Unrecognized Language: $language" exit(1) diff --git a/eng/common/scripts/common.ps1 b/eng/common/scripts/common.ps1 new file mode 100644 index 000000000000..f1677b21425f --- /dev/null +++ b/eng/common/scripts/common.ps1 @@ -0,0 +1,27 @@ +$global:RepoRoot = Resolve-Path "${PSScriptRoot}..\..\..\.." +$global:EngDir = Join-Path $global:RepoRoot "eng" +$global:EngCommonDir = Join-Path $global:EngDir "common" +$global:EngCommonScriptsDir = Join-Path $global:EngCommonDir "scripts" +$global:EngScriptsDir = Join-Path $global:EngDir "scripts" + +# Import required scripts +. (Join-Path $global:EngCommonScriptsDir SemVer.ps1) +. (Join-Path $global:EngCommonScriptsDir Changelog-Operations.ps1) +. (Join-Path $global:EngCommonScriptsDir Package-Properties.ps1) + +# Setting expected from common languages settings +$global:Language = "Unknown" +$global:PackageRepository = "Unknown" +$global:packagePattern = "Unknown" +$global:MetadataUri = "Unknown" + +# Import common language settings +$EngScriptsLanguageSettings = Join-path $global:EngScriptsDir "Language-Settings.ps1" +if (Test-Path $EngScriptsLanguageSettings) { + . $EngScriptsLanguageSettings +} + +# Transformed Functions +$GetPackageInfoFromRepoFn = "Get-${Language}-PackageInfoFromRepo" +$GetPackageInfoFromPackageFileFn = "Get-${Language}-PackageInfoFromPackageFile" +$PublishGithubIODocsFn = "Publish-${Language}-GithubIODocs" \ No newline at end of file diff --git a/eng/common/scripts/copy-docs-to-blobstorage.ps1 b/eng/common/scripts/copy-docs-to-blobstorage.ps1 index 0093c38e7f57..a0893099293a 100644 --- a/eng/common/scripts/copy-docs-to-blobstorage.ps1 +++ b/eng/common/scripts/copy-docs-to-blobstorage.ps1 @@ -350,4 +350,10 @@ if ($Language -eq "c") # used to publish multiple docs packages in a single invocation. $pkgInfo = Get-Content $DocLocation/package-info.json | ConvertFrom-Json Upload-Blobs -DocDir $DocLocation -PkgName 'docs' -DocVersion $pkgInfo.version +} + +if ($Language -eq "cpp") +{ + $packageInfo = (Get-Content (Join-Path $DocLocation 'package-info.json') | ConvertFrom-Json) + Upload-Blobs -DocDir $DocLocation -PkgName $packageInfo.name -DocVersion $packageInfo.version } \ No newline at end of file diff --git a/eng/common/scripts/create-tags-and-git-release.ps1 b/eng/common/scripts/create-tags-and-git-release.ps1 index 1667cddd7e22..83f2caa5cf41 100644 --- a/eng/common/scripts/create-tags-and-git-release.ps1 +++ b/eng/common/scripts/create-tags-and-git-release.ps1 @@ -7,7 +7,7 @@ param ( $artifactLocation, # the root of the artifact folder. DevOps $(System.ArtifactsDirectory) $workingDirectory, # directory that package artifacts will be extracted into for examination (if necessary) $packageRepository, # used to indicate destination against which we will check the existing version. - # valid options: PyPI, Nuget, NPM, Maven, C + # valid options: PyPI, Nuget, NPM, Maven, C, CPP # used by CreateTags $releaseSha, # the SHA for the artifacts. DevOps: $(Release.Artifacts..SourceVersion) or $(Build.SourceVersion) diff --git a/eng/common/scripts/get-codeowners.ps1 b/eng/common/scripts/get-codeowners.ps1 new file mode 100644 index 000000000000..edbae4cb18c6 --- /dev/null +++ b/eng/common/scripts/get-codeowners.ps1 @@ -0,0 +1,40 @@ +param ( + $TargetDirectory, # should be in relative form from root of repo. EG: sdk/servicebus + $RootDirectory # ideally $(Build.SourcesDirectory) +) + +$codeOwnersLocation = Join-Path $RootDirectory -ChildPath ".github/CODEOWNERS" + +if (!(Test-Path $codeOwnersLocation)) { + Write-Host "Unable to find CODEOWNERS file in target directory $RootDirectory" + exit 1 +} + +$codeOwnersContent = Get-Content $codeOwnersLocation + +$ownedFolders = @{} + +foreach ($contentLine in $codeOwnersContent) { + if (-not $contentLine.StartsWith("#") -and $contentLine){ + $splitLine = $contentLine -split "\s+" + + # CODEOWNERS file can also have labels present after the owner aliases + # gh aliases start with @ in codeowners. don't pass on to API calls + $ownedFolders[$splitLine[0].ToLower()] = ($splitLine[1..$($splitLine.Length)] ` + | ? { $_.StartsWith("@") } ` + | % { return $_.substring(1) }) -join "," + } +} + +$results = $ownedFolders[$TargetDirectory.ToLower()] + +if ($results) { + Write-Host "Discovered code owners for path $TargetDirectory are $results." + return $results +} +else { + Write-Host "Unable to match path $TargetDirectory in CODEOWNERS file located at $codeOwnersLocation." + Write-Host $ownedFolders | ConvertTo-Json + return "" +} + diff --git a/eng/common/scripts/modules/Package-Properties.psm1 b/eng/common/scripts/modules/Package-Properties.psm1 index b9a8eb11780d..b0572a71d449 100644 --- a/eng/common/scripts/modules/Package-Properties.psm1 +++ b/eng/common/scripts/modules/Package-Properties.psm1 @@ -64,12 +64,6 @@ class PackageProps } } -$ProgressPreference = "SilentlyContinue" - - -Register-PSRepository -Default -ErrorAction:SilentlyContinue -Install-Module -Name powershell-yaml -RequiredVersion 0.4.1 -Force -Scope CurrentUser - function Extract-PkgProps ($pkgPath, $serviceName, $pkgName, $lang) { if ($lang -eq "net") @@ -261,6 +255,9 @@ function Operate-OnPackages ($activePkgList, $serviceName, $language, $repoRoot, function Get-PkgListFromYml ($ciYmlPath) { + $ProgressPreference = "SilentlyContinue" + Register-PSRepository -Default -ErrorAction:SilentlyContinue + Install-Module -Name powershell-yaml -RequiredVersion 0.4.1 -Force -Scope CurrentUser $ciYmlContent = Get-Content $ciYmlPath -Raw $ciYmlObj = ConvertFrom-Yaml $ciYmlContent -Ordered if ($ciYmlObj.Contains("stages")) diff --git a/eng/ignore-links.txt b/eng/ignore-links.txt new file mode 100644 index 000000000000..bd605f16d16a --- /dev/null +++ b/eng/ignore-links.txt @@ -0,0 +1 @@ +https://docs.microsoft.com/python/api/overview/azure/{{package_doc_id}} \ No newline at end of file diff --git a/eng/pipelines/aggregate-reports.yml b/eng/pipelines/aggregate-reports.yml index 4e4857ff34f9..629bee369cff 100644 --- a/eng/pipelines/aggregate-reports.yml +++ b/eng/pipelines/aggregate-reports.yml @@ -1,10 +1,6 @@ trigger: none pr: none -variables: - Skip.MyPy: true - Skip.Pylint: true - Skip.ApiStubGen: true jobs: - job: 'ValidateDependencies' @@ -15,7 +11,11 @@ jobs: vmImage: 'windows-2019' steps: - - template: ./templates/steps/analyze.yml + - template: ../common/pipelines/templates/steps/verify-links.yml + parameters: + Directory: "" + + - template: /eng/pipelines/templates/steps/analyze_dependency.yml - task: AzureFileCopy@2 displayName: 'Upload dependency report' diff --git a/eng/pipelines/templates/jobs/archetype-sdk-client.yml b/eng/pipelines/templates/jobs/archetype-sdk-client.yml index 3435fac571ac..b1e145929e08 100644 --- a/eng/pipelines/templates/jobs/archetype-sdk-client.yml +++ b/eng/pipelines/templates/jobs/archetype-sdk-client.yml @@ -7,6 +7,7 @@ parameters: ToxEnvParallel: '--tenvparallel' InjectedPackages: '' BuildDocs: true + SkipPythonVersion: '' TestMatrix: Linux_Python27: OSVmImage: 'ubuntu-18.04' @@ -68,11 +69,16 @@ jobs: vmImage: 'ubuntu-18.04' steps: + - template: ../../../common/pipelines/templates/steps/verify-links.yml + parameters: + Directory: "sdk/${{ parameters.ServiceDirectory }}" + - template: ../steps/analyze.yml parameters: ServiceDirectory: ${{ parameters.ServiceDirectory }} BuildTargetingString: ${{ parameters.BuildTargetingString }} TestMarkArgument: ${{ parameters.TestMarkArgument }} + AdditionalTestArgs: '--wheel_dir="$(Build.ArtifactStagingDirectory)"' - job: 'Test' condition: and(succeededOrFailed(), ne(variables['Skip.Test'], 'true')) @@ -87,8 +93,10 @@ jobs: matrix: ${{ each matrixEntry in parameters.TestMatrix }}: ${{ if or(eq(matrixEntry.value.RunForPR, 'true'), ne(variables['Build.Reason'], 'PullRequest')) }}: - ${{ matrixEntry.key }}: - ${{ insert }}: ${{ matrixEntry.value }} + # Skip python version if any specific service has opted out + ${{ if ne(parameters.SkipPythonVersion, matrixEntry.value.PythonVersion) }}: + ${{ matrixEntry.key }}: + ${{ insert }}: ${{ matrixEntry.value }} pool: vmImage: '$(OSVmImage)' diff --git a/eng/pipelines/templates/stages/archetype-sdk-client.yml b/eng/pipelines/templates/stages/archetype-sdk-client.yml index 2cda41e8f1f3..5781942a3cec 100644 --- a/eng/pipelines/templates/stages/archetype-sdk-client.yml +++ b/eng/pipelines/templates/stages/archetype-sdk-client.yml @@ -20,6 +20,9 @@ parameters: - name: TargetDocRepoName type: string default: azure-docs-sdk-python +- name: SkipPythonVersion + type: string + default: '' stages: - stage: Build @@ -30,6 +33,7 @@ stages: ToxEnvParallel: ${{parameters.ToxEnvParallel}} BuildDocs: ${{parameters.BuildDocs}} InjectedPackages: ${{parameters.InjectedPackages}} + SkipPythonVersion: ${{parameters.SkipPythonVersion}} # The Prerelease and Release stages are conditioned on whether we are building a pull request and the branch. - ${{if and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['System.TeamProject'], 'internal'))}}: @@ -41,4 +45,4 @@ stages: ArtifactName: packages DocArtifact: documentation TargetDocRepoOwner: ${{parameters.TargetDocRepoOwner}} - TargetDocRepoName: ${{parameters.TargetDocRepoName}} \ No newline at end of file + TargetDocRepoName: ${{parameters.TargetDocRepoName}} \ No newline at end of file diff --git a/eng/pipelines/templates/stages/cosmos-sdk-client.yml b/eng/pipelines/templates/stages/cosmos-sdk-client.yml index 1044e754aa0c..08d31687924e 100644 --- a/eng/pipelines/templates/stages/cosmos-sdk-client.yml +++ b/eng/pipelines/templates/stages/cosmos-sdk-client.yml @@ -41,7 +41,7 @@ stages: vmImage: $(OSVmImage) steps: - - template: ../steps/cosmos-emulator.yml + - template: /eng/common/pipelines/templates/steps/cosmos-emulator.yml parameters: EmulatorMsiUrl: ${{ parameters.EmulatorMsiUrl }} StartParameters: ${{ parameters.EmulatorStartParameters }} diff --git a/eng/pipelines/templates/steps/analyze.yml b/eng/pipelines/templates/steps/analyze.yml index 7368cddf3fa5..2e1aea91f7f3 100644 --- a/eng/pipelines/templates/steps/analyze.yml +++ b/eng/pipelines/templates/steps/analyze.yml @@ -2,28 +2,10 @@ parameters: BuildTargetingString: 'azure-*' ServiceDirectory: '' TestMarkArgument: '' + AdditionalTestArgs: '' steps: - - task: UsePythonVersion@0 - displayName: 'Use Python $(PythonVersion)' - inputs: - versionSpec: '$(PythonVersion)' - - - script: | - pip install -r eng/ci_tools.txt - ward scan -d $(Build.SourcesDirectory) -c $(Build.SourcesDirectory)/eng/.docsettings.yml - displayName: 'Verify Readmes' - - - pwsh: | - mkdir "$(Build.ArtifactStagingDirectory)/reports" - Copy-Item -Path "$(Build.SourcesDirectory)/eng/common/InterdependencyGraph.html" -Destination "$(Build.ArtifactStagingDirectory)/reports/InterdependencyGraph.html" - displayName: 'Populate Reports Staging Folder' - - - task: PythonScript@0 - displayName: 'Analyze dependencies' - inputs: - scriptPath: 'scripts/analyze_deps.py' - arguments: '--verbose --out "$(Build.ArtifactStagingDirectory)/reports/dependencies.html" --dump "$(Build.ArtifactStagingDirectory)/reports/data.js"' + - template: /eng/pipelines/templates/steps/analyze_dependency.yml - task: PythonScript@0 displayName: 'Verify Change Log' @@ -91,8 +73,22 @@ steps: BuildTargetingString: ${{ parameters.BuildTargetingString }} TestMarkArgument: ${{ parameters.TestMarkArgument }} + - task: DownloadPipelineArtifact@0 + condition: ne(variables['Skip.ApiStubGen'],'true') + inputs: + artifactName: 'artifacts' + targetPath: $(Build.ArtifactStagingDirectory) + - template: ../steps/run_apistub.yml - parameters: + parameters: + ServiceDirectory: ${{ parameters.ServiceDirectory }} + BuildTargetingString: ${{ parameters.BuildTargetingString }} + TestMarkArgument: ${{ parameters.TestMarkArgument }} + AdditionalTestArgs: ${{parameters.AdditionalTestArgs}} + + - template: ../steps/run_bandit.yml + parameters: ServiceDirectory: ${{ parameters.ServiceDirectory }} BuildTargetingString: ${{ parameters.BuildTargetingString }} - TestMarkArgument: ${{ parameters.TestMarkArgument }} \ No newline at end of file + TestMarkArgument: ${{ parameters.TestMarkArgument }} + AdditionalTestArgs: ${{parameters.AdditionalTestArgs}} diff --git a/eng/pipelines/templates/steps/analyze_dependency.yml b/eng/pipelines/templates/steps/analyze_dependency.yml new file mode 100644 index 000000000000..77ab69df6dd3 --- /dev/null +++ b/eng/pipelines/templates/steps/analyze_dependency.yml @@ -0,0 +1,21 @@ +steps: + - task: UsePythonVersion@0 + displayName: 'Use Python $(PythonVersion)' + inputs: + versionSpec: '$(PythonVersion)' + + - script: | + pip install -r eng/ci_tools.txt + ward scan -d $(Build.SourcesDirectory) -c $(Build.SourcesDirectory)/eng/.docsettings.yml + displayName: 'Verify Readmes' + + - pwsh: | + mkdir "$(Build.ArtifactStagingDirectory)/reports" + Copy-Item -Path "$(Build.SourcesDirectory)/eng/common/InterdependencyGraph.html" -Destination "$(Build.ArtifactStagingDirectory)/reports/InterdependencyGraph.html" + displayName: 'Populate Reports Staging Folder' + + - task: PythonScript@0 + displayName: 'Analyze dependencies' + inputs: + scriptPath: 'scripts/analyze_deps.py' + arguments: '--verbose --out "$(Build.ArtifactStagingDirectory)/reports/dependencies.html" --dump "$(Build.ArtifactStagingDirectory)/reports/data.js"' \ No newline at end of file diff --git a/eng/pipelines/templates/steps/run_apistub.yml b/eng/pipelines/templates/steps/run_apistub.yml index d66f7cafb551..5ad5273b64bc 100644 --- a/eng/pipelines/templates/steps/run_apistub.yml +++ b/eng/pipelines/templates/steps/run_apistub.yml @@ -2,28 +2,19 @@ parameters: BuildTargetingString: 'azure-*' ServiceDirectory: '' TestMarkArgument: '' + AdditionalTestArgs: '' steps: - - task: UsePythonVersion@0 - displayName: 'Use Python 3.7' - condition: and(succeededOrFailed(), ne(variables['Skip.ApiStubGen'],'true')) - inputs: - versionSpec: '3.7' - - - script: | - pip install -r eng/ci_tools.txt - displayName: 'Prep Environment' - condition: and(succeededOrFailed(), ne(variables['Skip.ApiStubGen'],'true')) - - task: PythonScript@0 displayName: 'Run Api Stub Generation' condition: and(succeededOrFailed(), ne(variables['Skip.ApiStubGen'],'true')) inputs: scriptPath: 'scripts/devops_tasks/setup_execute_tests.py' arguments: >- - "${{ parameters.BuildTargetingString }}" + "${{ parameters.BuildTargetingString }}" + ${{ parameters.AdditionalTestArgs }} --mark_arg="${{ parameters.TestMarkArgument }}" --service="${{ parameters.ServiceDirectory }}" --toxenv="apistub" --disablecov - --omit-management \ No newline at end of file + --filter-type="Omit_management" \ No newline at end of file diff --git a/eng/pipelines/templates/steps/run_bandit.yml b/eng/pipelines/templates/steps/run_bandit.yml new file mode 100644 index 000000000000..02e6c5e8cb1d --- /dev/null +++ b/eng/pipelines/templates/steps/run_bandit.yml @@ -0,0 +1,20 @@ +parameters: + BuildTargetingString: 'azure-*' + ServiceDirectory: '' + TestMarkArgument: '' + EnvVars: {} + +steps: + - task: PythonScript@0 + displayName: 'Run Bandit' + inputs: + scriptPath: 'scripts/devops_tasks/setup_execute_tests.py' + arguments: >- + "${{ parameters.BuildTargetingString }}" + --mark_arg="${{ parameters.TestMarkArgument }}" + --service="${{ parameters.ServiceDirectory }}" + --toxenv="bandit" + --disablecov + --filter-type="Omit_management" + env: ${{ parameters.EnvVars }} + condition: and(succeededOrFailed(), ne(variables['Skip.Bandit'],'true')) \ No newline at end of file diff --git a/eng/pipelines/templates/steps/run_pylint.yml b/eng/pipelines/templates/steps/run_pylint.yml index b4b15d966d51..1386c14c00a4 100644 --- a/eng/pipelines/templates/steps/run_pylint.yml +++ b/eng/pipelines/templates/steps/run_pylint.yml @@ -9,8 +9,7 @@ steps: displayName: 'Use Python 3.7' inputs: versionSpec: '3.7' - condition: and(succeededOrFailed(), ne(variables['Skip.Pylint'],'true')) - + condition: and(succeededOrFailed(), ne(variables['Skip.Pylint'],'true')) - script: | pip install -r eng/ci_tools.txt @@ -27,6 +26,6 @@ steps: --service="${{ parameters.ServiceDirectory }}" --toxenv="lint" --disablecov - --omit-management + --filter-type="Omit_management" env: ${{ parameters.EnvVars }} condition: and(succeededOrFailed(), ne(variables['Skip.Pylint'],'true')) \ No newline at end of file diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 new file mode 100644 index 000000000000..81d4f673797c --- /dev/null +++ b/eng/scripts/Language-Settings.ps1 @@ -0,0 +1,108 @@ +$Language = "python" +$Lang = "python" +$PackageRepository = "PyPI" +$packagePattern = "*.zip" +$MetadataUri = "https://raw.githubusercontent.com/Azure/azure-sdk/master/_data/releases/latest/python-packages.csv" + +function Extract-python-PkgProperties ($pkgPath, $serviceName, $pkgName) +{ + $pkgName = $pkgName.Replace('_', '-') + if (Test-Path (Join-Path $pkgPath "setup.py")) + { + $setupLocation = $pkgPath.Replace('\','/') + pushd $RepoRoot + $setupProps = (python -c "import sys; import os; sys.path.append(os.path.join('scripts', 'devops_tasks')); from common_tasks import parse_setup; obj=parse_setup('$setupLocation'); print('{0},{1}'.format(obj[0], obj[1]));") -split "," + popd + if (($setupProps -ne $null) -and ($setupProps[0] -eq $pkgName)) + { + return [PackageProps]::new($setupProps[0], $setupProps[1], $pkgPath, $serviceName) + } + } + return $null +} + +# Returns the pypi publish status of a package id and version. +function IsPythonPackageVersionPublished($pkgId, $pkgVersion) { + try + { + $existingVersion = (Invoke-RestMethod -MaximumRetryCount 3 -Method "Get" -uri "https://pypi.org/pypi/$pkgId/$pkgVersion/json").info.version + # if existingVersion exists, then it's already been published + return $True + } + catch + { + $statusCode = $_.Exception.Response.StatusCode.value__ + $statusDescription = $_.Exception.Response.StatusDescription + + # if this is 404ing, then this pkg has never been published before + if ($statusCode -eq 404) + { + return $False + } + Write-Host "PyPI Invocation failed:" + Write-Host "StatusCode:" $statusCode + Write-Host "StatusDescription:" $statusDescription + exit(1) + } +} + +# Parse out package publishing information given a python sdist of ZIP format. +function Parse-python-Package($pkg, $workingDirectory) { + $pkg.Basename -match $SDIST_PACKAGE_REGEX | Out-Null + + $pkgId = $matches["package"] + $pkgVersion = $matches["versionstring"] + + $workFolder = "$workingDirectory$($pkg.Basename)" + $origFolder = Get-Location + $releaseNotes = "" + $readmeContent = "" + + New-Item -ItemType Directory -Force -Path $workFolder + Expand-Archive -Path $pkg -DestinationPath $workFolder + + $changeLogLoc = @(Get-ChildItem -Path $workFolder -Recurse -Include "CHANGELOG.md")[0] + if ($changeLogLoc) { + $releaseNotes = Get-ChangeLogEntryAsString -ChangeLogLocation $changeLogLoc -VersionString $pkgVersion + } + + $readmeContentLoc = @(Get-ChildItem -Path $workFolder -Recurse -Include "README.md") | Select-Object -Last 1 + + if ($readmeContentLoc) { + $readmeContent = Get-Content -Raw $readmeContentLoc + } + + Remove-Item $workFolder -Force -Recurse -ErrorAction SilentlyContinue + + return New-Object PSObject -Property @{ + PackageId = $pkgId + PackageVersion = $pkgVersion + Deployable = $forceCreate -or !(IsPythonPackageVersionPublished -pkgId $pkgId -pkgVersion $pkgVersion) + ReleaseNotes = $releaseNotes + ReadmeContent = $readmeContent + } +} + +# Stage and Upload Docs to blob Storage +function StageAndUpload-python-Docs() +{ + $PublishedDocs = Get-ChildItem "$DocLocation" | Where-Object -FilterScript {$_.Name.EndsWith(".zip")} + + foreach ($Item in $PublishedDocs) + { + $PkgName = $Item.BaseName + $ZippedDocumentationPath = Join-Path -Path $DocLocation -ChildPath $Item.Name + $UnzippedDocumentationPath = Join-Path -Path $DocLocation -ChildPath $PkgName + $VersionFileLocation = Join-Path -Path $UnzippedDocumentationPath -ChildPath "version.txt" + + Expand-Archive -Force -Path $ZippedDocumentationPath -DestinationPath $UnzippedDocumentationPath + + $Version = $(Get-Content $VersionFileLocation).Trim() + + Write-Host "Discovered Package Name: $PkgName" + Write-Host "Discovered Package Version: $Version" + Write-Host "Directory for Upload: $UnzippedDocumentationPath" + + Upload-Blobs -DocDir $UnzippedDocumentationPath -PkgName $PkgName -DocVersion $Version + } +} \ No newline at end of file diff --git a/eng/test_tools.txt b/eng/test_tools.txt index a21469ca3756..4db3e30c49e9 100644 --- a/eng/test_tools.txt +++ b/eng/test_tools.txt @@ -1,29 +1,30 @@ # requirements leveraged by ci for testing -pytest==5.4.1; python_version >= '3.5' pytest==4.6.9; python_version == '2.7' -pytest-asyncio==0.10.0; python_version >= '3.5' +pytest==5.4.2; python_version >= '3.5' +pytest-asyncio==0.12.0; python_version >= '3.5' pytest-cov==2.8.1 pytest-custom-exit-code==0.3.0 -pytest-xdist==1.31.0 +pytest-xdist==1.32.0 +# we pin coverage to 4.5.4 because there is an bug with `pytest-cov`. the generated coverage files cannot be `coverage combine`ed coverage==4.5.4 +bandit==1.6.2 # locking packages defined as deps from azure-sdk-tools or azure-devtools pytoml==0.1.21 readme-renderer[md]==25.0 pyOpenSSL==19.1.0 json-delta==2.0 -ConfigArgParse==1.1 +ConfigArgParse==1.2.3 six==1.14.0 vcrpy==3.0.0 pyyaml==5.3.1 packaging==20.4 wheel==0.34.2 -Jinja2==2.11.1 +Jinja2==2.11.2 # Locking pylint and required packages -pylint==2.3.1; python_version >= '3.4' pylint==1.8.4; python_version < '3.4' -astroid==2.3.3; python_version >= '3.4' +pylint==2.5.2; python_version >= '3.4' ../../../tools/azure-devtools ../../../tools/azure-sdk-tools diff --git a/eng/tox/install_dev_build_dependency.py b/eng/tox/install_dev_build_dependency.py index df9eb28b9686..3f5c22670348 100644 --- a/eng/tox/install_dev_build_dependency.py +++ b/eng/tox/install_dev_build_dependency.py @@ -13,13 +13,11 @@ from os import path from subprocess import check_call -from pip._internal.operations import freeze - # import common_task module root_dir = path.abspath(path.join(path.abspath(__file__), "..", "..", "..")) common_task_path = path.abspath(path.join(root_dir, "scripts", "devops_tasks")) sys.path.append(common_task_path) -from common_tasks import process_glob_string +from common_tasks import process_glob_string, get_installed_packages from tox_helper_tasks import get_package_details EXCLUDED_PKGS = [ @@ -34,10 +32,10 @@ # This script verifies installed package version and ensure all installed pacakges are dev build version -def get_installed_packages(pkg_name_to_exclude): +def get_installed_azure_packages(pkg_name_to_exclude): # This method returns a list of installed azure sdk packages installed_pkgs = [ - p.split("==")[0] for p in freeze.freeze() if p.startswith("azure-") + p.split("==")[0] for p in get_installed_packages() if p.startswith("azure-") ] # Get valid list of Azure SDK packages in repo @@ -100,7 +98,7 @@ def install_packages(packages): def install_dev_build_packages(pkg_name_to_exclude): # Uninstall GA version and reinstall dev build version of dependent packages - azure_pkgs = get_installed_packages(pkg_name_to_exclude) + azure_pkgs = get_installed_azure_packages(pkg_name_to_exclude) uninstall_packages(azure_pkgs) install_packages(azure_pkgs) diff --git a/eng/tox/run_apistubgen.py b/eng/tox/run_apistubgen.py new file mode 100644 index 000000000000..0e37243cd16f --- /dev/null +++ b/eng/tox/run_apistubgen.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python + +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. + +from subprocess import check_call +import argparse +import os +import logging + +from tox_helper_tasks import find_whl, get_package_details + +logging.getLogger().setLevel(logging.INFO) + +root_dir = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..")) + + +def get_package_wheel_path(pkg_root): + # parse setup.py to get package name and version + pkg_name, _, version = get_package_details(os.path.join(pkg_root, "setup.py")) + # Check if wheel is already built and available for current package + prebuilt_dir = os.getenv("PREBUILT_WHEEL_DIR") + if prebuilt_dir: + prebuilt_package_path = find_whl(prebuilt_dir, pkg_name, version) + else: + return None + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Run apistubgen against target folder. " + ) + + parser.add_argument( + "-t", + "--target", + dest="target_package", + help="The target package directory on disk.", + required=True, + ) + + parser.add_argument( + "-w", + "--work_dir", + dest="work_dir", + help="Working directory to run apistubgen", + required=True, + ) + + args = parser.parse_args() + + # Check if a wheel is already built for current package and install from wheel when available + # If wheel is not available then install package from source + pkg_path = get_package_wheel_path(args.target_package) + if not pkg_path: + pkg_path = args.target_package + + check_call(["apistubgen", "--pkg-path", pkg_path,], cwd=args.work_dir) diff --git a/eng/tox/run_bandit.py b/eng/tox/run_bandit.py new file mode 100644 index 000000000000..1275bc3efb87 --- /dev/null +++ b/eng/tox/run_bandit.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python + +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# This script is used to execute bandit within a tox environment. Depending on which package is being executed against, +# a failure may be suppressed. + +from subprocess import check_call, CalledProcessError +import argparse +import os +import logging +import sys + + +logging.getLogger().setLevel(logging.INFO) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Run bandit against target folder.") + + parser.add_argument( + "-t", + "--target", + dest="target_package", + help="The target package directory on disk. The target module passed to bandit will be /azure.", + required=True, + ) + + args = parser.parse_args() + + package_name = os.path.basename(os.path.abspath(args.target_package)) + try: + check_call( + [ + sys.executable, + "-m", + "bandit", + "-r", + os.path.join(args.target_package, "azure"), + "-ll", + ] + ) + except CalledProcessError as e: + logging.error("{} exited with error {}".format(package_name, e.returncode)) + exit(1) diff --git a/eng/tox/tox.ini b/eng/tox/tox.ini index f9ab076ca8cc..9b38156d47da 100644 --- a/eng/tox/tox.ini +++ b/eng/tox/tox.ini @@ -227,11 +227,24 @@ commands = [testenv:apistub] skipsdist = false skip_install = false -usedevelop = true -changedir = {toxinidir} +usedevelop = false +changedir = {envtmpdir} deps = {[base]deps} commands = # install API stub generator - {envbindir}/python -m pip install "git+https://github.com/Azure/azure-sdk-tools.git#subdirectory=packages/python-packages/api-stub-generator&egg=api-stub-generator" - apistubgen --pkg-path {toxinidir} --temp-path {envtmpdir} --out-path {envtmpdir} + {envbindir}/python -m pip install "git+https://github.com/azure/azure-sdk-tools.git#subdirectory=packages/python-packages/api-stub-generator&egg=api-stub-generator" + {envbindir}/python -m pip freeze + {envbindir}/python {toxinidir}/../../../eng/tox/run_apistubgen.py -t {toxinidir} -w {envtmpdir} + + +[testenv:bandit] +skipsdist = false +skip_install = false +usedevelop = false +changedir = {envtmpdir} +deps = + {[base]deps} +commands = + {envbindir}/python -m pip freeze + {envbindir}/python {toxinidir}/../../../eng/tox/run_bandit.py -t {toxinidir} \ No newline at end of file diff --git a/eng/tox/verify_installed_packages.py b/eng/tox/verify_installed_packages.py index fa7b1b7f8958..cee12559c01d 100644 --- a/eng/tox/verify_installed_packages.py +++ b/eng/tox/verify_installed_packages.py @@ -9,8 +9,13 @@ import os import sys import logging -from pip._internal.operations import freeze +from os import path +# import common_task module +root_dir = path.abspath(path.join(path.abspath(__file__), "..", "..", "..")) +common_task_path = path.abspath(path.join(root_dir, "scripts", "devops_tasks")) +sys.path.append(common_task_path) +from common_tasks import get_installed_packages def verify_packages(package_file_path): # this method verifies packages installed on machine is matching the expected package version @@ -29,7 +34,7 @@ def verify_packages(package_file_path): sys.exit(1) # find installed and expected packages - installed = dict(p.split('==') for p in freeze.freeze() if p.startswith('azure') and "==" in p) + installed = dict(p.split('==') for p in get_installed_packages() if p.startswith('azure') and "==" in p) expected = dict(p.split('==') for p in packages) missing_packages = [pkg for pkg in expected.keys() if installed.get(pkg) != expected.get(pkg)] diff --git a/pylintrc b/pylintrc index 399344e8ea99..d71525ef3f83 100644 --- a/pylintrc +++ b/pylintrc @@ -3,7 +3,7 @@ ignore-patterns=test_*,conftest,setup reports=no # PYLINT DIRECTORY BLACKLIST. -ignore=_generated,samples,examples,test,tests,doc,.tox +ignore=_vendor,_generated,samples,examples,test,tests,doc,.tox init-hook='import sys; sys.path.insert(0, os.path.abspath(os.getcwd().rsplit("azure-sdk-for-python", 1)[0] + "azure-sdk-for-python/scripts/pylint_custom_plugin"))' load-plugins=pylint_guidelines_checker @@ -14,7 +14,7 @@ load-plugins=pylint_guidelines_checker # cyclic-import: because of https://github.com/PyCQA/pylint/issues/850 # too-many-arguments: Due to the nature of the CLI many commands have large arguments set which reflect in large arguments set in corresponding methods. # Let's black deal with bad-continuation -disable=useless-object-inheritance,missing-docstring,locally-disabled,fixme,cyclic-import,too-many-arguments,invalid-name,duplicate-code,too-few-public-methods,bad-continuation,check-docstrings +disable=useless-object-inheritance,missing-docstring,locally-disabled,fixme,cyclic-import,too-many-arguments,invalid-name,duplicate-code,too-few-public-methods,bad-continuation,check-docstrings,import-outside-toplevel [FORMAT] max-line-length=120 diff --git a/scripts/devops_tasks/common_tasks.py b/scripts/devops_tasks/common_tasks.py index f8a8473b5cdf..932e9b801d05 100644 --- a/scripts/devops_tasks/common_tasks.py +++ b/scripts/devops_tasks/common_tasks.py @@ -22,7 +22,7 @@ import pdb # Assumes the presence of setuptools -from pkg_resources import parse_version, parse_requirements, Requirement +from pkg_resources import parse_version, parse_requirements, Requirement, WorkingSet, working_set # this assumes the presence of "packaging" from packaging.specifiers import SpecifierSet @@ -71,6 +71,7 @@ lambda_filter_azure_pkg = lambda x: x.startswith("azure") and "-nspkg" not in x omit_mgmt = lambda x: "mgmt" not in x or os.path.basename(x) in MANAGEMENT_PACKAGES_FILTER_EXCLUSIONS + # dict of filter type and filter function omit_funct_dict = { "Build": omit_build, @@ -420,4 +421,15 @@ def find_tools_packages(root_path): glob_string = os.path.join(root_path, "tools", "*", "setup.py") pkgs = [os.path.basename(os.path.dirname(p)) for p in glob.glob(glob_string)] logging.info("Packages in tools: {}".format(pkgs)) - return pkgs \ No newline at end of file + return pkgs + + +def get_installed_packages(paths = None): + """Find packages in default or given lib paths + """ + # WorkingSet returns installed packages in given path + # working_set returns installed packages in default path + # if paths is set then find installed packages from given paths + ws = WorkingSet(paths) if paths else working_set + return ["{0}=={1}".format(p.project_name, p.version) for p in ws] + diff --git a/scripts/devops_tasks/setup_execute_tests.py b/scripts/devops_tasks/setup_execute_tests.py index e928f33fdd6b..a099f98fc122 100644 --- a/scripts/devops_tasks/setup_execute_tests.py +++ b/scripts/devops_tasks/setup_execute_tests.py @@ -276,13 +276,14 @@ def execute_global_install_and_test( ) parser.add_argument( - "--omit-management", - dest="omit_management", - default=False, - action="store_true", - help="Flag that indicates to omit any management packages except any management packages that should not be filtered. for e.g azure-mgmt-core", + "--filter-type", + dest="filter_type", + default='Build', + help="Filter type to identify eligible packages. for e.g. packages filtered in Build can pass filter type as Build,", + choices=['Build', "Docs", "Regression", "Omit_management"] ) + args = parser.parse_args() # We need to support both CI builds of everything and individual service @@ -293,10 +294,7 @@ def execute_global_install_and_test( else: target_dir = root_dir - if args.omit_management: - targeted_packages = process_glob_string(args.glob_string, target_dir, "", "Omit_management") - else: - targeted_packages = process_glob_string(args.glob_string, target_dir) + targeted_packages = process_glob_string(args.glob_string, target_dir, "", args.filter_type) extended_pytest_args = [] if len(targeted_packages) == 0: diff --git a/scripts/devops_tasks/test_regression.py b/scripts/devops_tasks/test_regression.py index c1193aea1876..b0722ea39db4 100644 --- a/scripts/devops_tasks/test_regression.py +++ b/scripts/devops_tasks/test_regression.py @@ -22,10 +22,10 @@ filter_dev_requirements, find_packages_missing_on_pypi, find_whl, - find_tools_packages + find_tools_packages, + get_installed_packages ) from git_helper import get_release_tag, git_checkout_tag, git_checkout_branch, clone_repo -from pip._internal.operations import freeze AZURE_GLOB_STRING = "azure*" @@ -222,7 +222,7 @@ def _install_packages(self, dependent_pkg_path, pkg_to_exclude): temp_dir = self.context.temp_path list_to_exclude = [pkg_to_exclude,] - installed_pkgs = [p.split('==')[0] for p in list(freeze.freeze(paths=self.context.venv.lib_paths)) if p.startswith('azure-')] + installed_pkgs = [p.split('==')[0] for p in get_installed_packages(self.context.venv.lib_paths) if p.startswith('azure-')] logging.info("Installed azure sdk packages:{}".format(installed_pkgs)) # Do not exclude list of packages in tools directory and so these tools packages will be reinstalled from repo branch we are testing @@ -257,7 +257,7 @@ def _is_package_installed(self, package, version): venv_root = self.context.venv.path site_packages = self.context.venv.lib_paths logging.info("Searching for packages in :{}".format(site_packages)) - installed_pkgs = list(freeze.freeze(paths=site_packages)) + installed_pkgs = get_installed_packages(site_packages) logging.info("Installed packages: {}".format(installed_pkgs)) # Verify installed package version # Search for exact version or dev build version of current version. diff --git a/scripts/pylint_custom_plugin/README.md b/scripts/pylint_custom_plugin/README.md index adb1e0e4a694..963a3d098916 100644 --- a/scripts/pylint_custom_plugin/README.md +++ b/scripts/pylint_custom_plugin/README.md @@ -3,7 +3,7 @@ In order to lint for the guidelines, you must make sure you are using the pylintrc file. It is recommended you run pylint at the library package level to be consistent with how the CI runs pylint. -Check that you are running pylint version >=2.31 and astroid version >=2.25. +Check that you are running pylint version >=2.5.2 and astroid version >=2.4.1. **How to run pylint locally using the pylintrc:** diff --git a/scripts/pylint_custom_plugin/pylint_guidelines_checker.py b/scripts/pylint_custom_plugin/pylint_guidelines_checker.py index cd1bd4920a7d..e62a68296254 100644 --- a/scripts/pylint_custom_plugin/pylint_guidelines_checker.py +++ b/scripts/pylint_custom_plugin/pylint_guidelines_checker.py @@ -72,11 +72,11 @@ def visit_functiondef(self, node): arg_names = [argument.name for argument in node.args.args] if "credential" not in arg_names: self.add_message( - msg_id="missing-client-constructor-parameter-credential", node=node, confidence=None + msgid="missing-client-constructor-parameter-credential", node=node, confidence=None ) if not node.args.kwarg: self.add_message( - msg_id="missing-client-constructor-parameter-kwargs", node=node, confidence=None + msgid="missing-client-constructor-parameter-kwargs", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if constructor has correct parameters.") @@ -128,7 +128,7 @@ def visit_functiondef(self, node): if line.find("Policy") != -1: if line.find("**kwargs") == -1: self.add_message( - msg_id="config-missing-kwargs-in-policy", + msgid="config-missing-kwargs-in-policy", node=list(node.get_children())[idx], confidence=None ) @@ -188,7 +188,7 @@ def visit_classdef(self, node): prefix = method.name.split("_")[0] if prefix.lower() not in approved_prefixes: self.add_message( - msg_id="unapproved-client-method-name-prefix", + msgid="unapproved-client-method-name-prefix", node=client_methods[idx], confidence=None ) @@ -242,7 +242,7 @@ def visit_functiondef(self, node): positional_args = len(node.args.args) - len(node.args.defaults) if positional_args > 6: self.add_message( - msg_id="client-method-has-more-than-5-positional-arguments", node=node, confidence=None + msgid="client-method-has-more-than-5-positional-arguments", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if kwargs is used for multiple parameters.") @@ -308,7 +308,7 @@ def visit_functiondef(self, node): # Note that if the method returns nothing it will be of type ast.Const.NoneType if (type_annotations == [] and len(node.args.args) > 1) or node.returns is None: self.add_message( - msg_id="client-method-missing-type-annotations", node=node, confidence=None + msgid="client-method-missing-type-annotations", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client methods missing type annotations.") @@ -377,7 +377,7 @@ def visit_functiondef(self, node): if node.args.kwarg and "azure.core.tracing.decorator.distributed_trace" not in node.decoratornames() \ and "builtins.classmethod" not in node.decoratornames(): self.add_message( - msg_id="client-method-missing-tracing-decorator", node=node, confidence=None + msgid="client-method-missing-tracing-decorator", node=node, confidence=None ) except AttributeError: pass @@ -398,7 +398,7 @@ def visit_asyncfunctiondef(self, node): if node.args.kwarg and "azure.core.tracing.decorator_async.distributed_trace_async" not in \ node.decoratornames() and "builtins.classmethod" not in node.decoratornames(): self.add_message( - msg_id="client-method-missing-tracing-decorator-async", node=node, confidence=None + msgid="client-method-missing-tracing-decorator-async", node=node, confidence=None ) except AttributeError: pass @@ -446,7 +446,7 @@ def visit_functiondef(self, node): if not node.name.startswith("_") and node.decorators is not None: if "builtins.staticmethod" in node.decoratornames(): self.add_message( - msg_id="client-method-should-not-use-static-method", node=node, confidence=None + msgid="client-method-should-not-use-static-method", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client methods do not use staticmethods.") @@ -495,7 +495,7 @@ def visit_module(self, node): header = node.stream().read(200).lower() if header.find(b'copyright') == -1: self.add_message( - msg_id="file-needs-copyright-header", node=node, confidence=None + msgid="file-needs-copyright-header", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if file is missing a copyright header.") @@ -544,7 +544,7 @@ def visit_classdef(self, node): if "_" in node.name or node.name.endswith("client") or node.name[0] != node.name[0].upper(): if not node.name.startswith("_") and node.name not in self.ignore_clients: self.add_message( - msg_id="client-incorrect-naming-convention", node=node, confidence=None + msgid="client-incorrect-naming-convention", node=node, confidence=None ) # check for correct naming convention in any class constants @@ -554,7 +554,7 @@ def visit_classdef(self, node): const_name = node.body[idx].targets[0].name if const_name != const_name.upper(): self.add_message( - msg_id="client-incorrect-naming-convention", node=node.body[idx], confidence=None + msgid="client-incorrect-naming-convention", node=node.body[idx], confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client uses correct naming conventions.") @@ -565,7 +565,7 @@ def visit_classdef(self, node): for func in node.body: if func.name != func.name.lower() and not func.name.startswith("_"): self.add_message( - msg_id="client-incorrect-naming-convention", node=func, confidence=None + msgid="client-incorrect-naming-convention", node=func, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client uses correct naming conventions.") @@ -619,7 +619,7 @@ def visit_functiondef(self, node): "azure.core.tracing.decorator_async.distributed_trace_async" in node.decoratornames()): if not node.args.kwarg: self.add_message( - msg_id="client-method-missing-kwargs", node=node, confidence=None + msgid="client-method-missing-kwargs", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client uses kwargs parameter in method.") @@ -669,7 +669,7 @@ def visit_functiondef(self, node): if node.parent.name.endswith("Client") and node.is_method() and node.parent.name not in self.ignore_clients: if node.name.startswith("__") and node.name not in self.acceptable_names: self.add_message( - msg_id="client-method-name-no-double-underscore", node=node, confidence=None + msgid="client-method-name-no-double-underscore", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client method name does not use double underscore prefix.") @@ -720,7 +720,7 @@ def visit_classdef(self, node): if node.name.endswith("Client") and node.name not in self.ignore_clients: if node.doc.find("code-block") != -1: self.add_message( - msg_id="client-docstring-use-literal-include", node=node, confidence=None + msgid="client-docstring-use-literal-include", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client uses literalinclude over code-block.") @@ -738,7 +738,7 @@ def visit_functiondef(self, node): if node.parent.name.endswith("Client") and node.parent.name not in self.ignore_clients and node.is_method(): if node.doc.find("code-block") != -1: self.add_message( - msg_id="client-docstring-use-literal-include", node=node, confidence=None + msgid="client-docstring-use-literal-include", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client uses literalinclude over code-block.") @@ -789,7 +789,7 @@ def visit_classdef(self, node): if node.name.endswith("Client") and "async" in node.name.lower() and "base" not in node.name.lower(): if not node.name.startswith("_") and node.name not in self.ignore_clients: self.add_message( - msg_id="async-client-bad-name", node=node, confidence=None + msgid="async-client-bad-name", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if async client uses correct naming.") @@ -840,7 +840,7 @@ def visit_call(self, node): # node.args represent positional arguments if len(node.args) > 2 and node.func.attrname != "format": self.add_message( - msg_id="specify-parameter-names-in-call", node=node, confidence=None + msgid="specify-parameter-names-in-call", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client methods specify parameters name in call.") @@ -892,7 +892,7 @@ def visit_functiondef(self, node): returns = next(node.infer_call_result()).as_string() if returns.find("ItemPaged") == -1 and returns.find("AsyncItemPaged") == -1: self.add_message( - msg_id="client-list-methods-use-paging", node=node, confidence=None + msgid="client-list-methods-use-paging", node=node, confidence=None ) except (astroid.exceptions.InferenceError, AttributeError): # astroid can't always infer the return logger.debug("Pylint custom checker failed to check if client list method uses core paging.") @@ -947,7 +947,7 @@ def visit_functiondef(self, node): returns = next(node.infer_call_result()).as_string() if returns.find("LROPoller") == -1: self.add_message( - msg_id="client-lro-methods-use-polling", node=node, confidence=None + msgid="client-lro-methods-use-polling", node=node, confidence=None ) except (astroid.exceptions.InferenceError, AttributeError): # astroid can't always infer the return logger.debug("Pylint custom checker failed to check if client begin method uses core polling.") @@ -1008,7 +1008,7 @@ def visit_return(self, node): method = node.value.func.scope() if not method.name.startswith("begin") and not method.name.startswith("_"): self.add_message( - msg_id="lro-methods-use-correct-naming", node=method, confidence=None + msgid="lro-methods-use-correct-naming", node=method, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client method with polling uses correct naming.") @@ -1059,7 +1059,7 @@ def visit_classdef(self, node): for argument in func.args.args: if argument.name == "connection_string" or argument.name == "conn_str": self.add_message( - msg_id="connection-string-should-not-be-constructor-param", node=node, confidence=None + msgid="connection-string-should-not-be-constructor-param", node=node, confidence=None ) except AttributeError: logger.debug("Pylint custom checker failed to check if client uses connection string param in constructor.") @@ -1109,7 +1109,7 @@ def visit_module(self, node): package = nod.value if package.value.find(".") != -1 or package.value.find("_") != -1: self.add_message( - msg_id="package-name-incorrect", node=node, confidence=None + msgid="package-name-incorrect", node=node, confidence=None ) except Exception: logger.debug("Pylint custom checker failed to check if package name is correct.") @@ -1164,7 +1164,7 @@ def visit_module(self, node): has_client_suffix = True if has_client_suffix is False: self.add_message( - msg_id="client-suffix-needed", node=node, confidence=None + msgid="client-suffix-needed", node=node, confidence=None ) except Exception: logger.debug("Pylint custom checker failed to check if service client has a client suffix.") @@ -1315,7 +1315,7 @@ def check_parameters(self, node): if missing_params: self.add_message( - msg_id="docstring-missing-param", args=(", ".join(missing_params)), node=node, confidence=None + msgid="docstring-missing-param", args=(", ".join(missing_params)), node=node, confidence=None ) # check if we have a type for each param and check if documented params that should be keywords @@ -1329,12 +1329,12 @@ def check_parameters(self, node): if missing_types: self.add_message( - msg_id="docstring-missing-type", args=(", ".join(missing_types)), node=node, confidence=None + msgid="docstring-missing-type", args=(", ".join(missing_types)), node=node, confidence=None ) if should_be_keywords: self.add_message( - msg_id="docstring-should-be-keyword", + msgid="docstring-should-be-keyword", args=(", ".join(should_be_keywords)), node=node, confidence=None @@ -1370,11 +1370,11 @@ def check_return(self, node): if has_return is False: self.add_message( - msg_id="docstring-missing-return", node=node, confidence=None + msgid="docstring-missing-return", node=node, confidence=None ) if has_rtype is False: self.add_message( - msg_id="docstring-missing-rtype", node=node, confidence=None + msgid="docstring-missing-rtype", node=node, confidence=None ) def visit_classdef(self, node): @@ -1602,22 +1602,22 @@ def close(self): if self.disable_logging_error is False: if "NetworkTraceLoggingPolicy" not in self.has_policies: self.add_message( - msg_id="missing-logging-policy", node=self.node_to_use, confidence=None + msgid="missing-logging-policy", node=self.node_to_use, confidence=None ) if self.disable_retry_error is False: if "RetryPolicy" not in self.has_policies: self.add_message( - msg_id="missing-retry-policy", node=self.node_to_use, confidence=None + msgid="missing-retry-policy", node=self.node_to_use, confidence=None ) if self.disable_user_agent_error is False: if "UserAgentPolicy" not in self.has_policies: self.add_message( - msg_id="missing-user-agent-policy", node=self.node_to_use, confidence=None + msgid="missing-user-agent-policy", node=self.node_to_use, confidence=None ) if self.disable_tracing_error is False: if "DistributedTracingPolicy" not in self.has_policies: self.add_message( - msg_id="missing-distributed-tracing-policy", node=self.node_to_use, confidence=None + msgid="missing-distributed-tracing-policy", node=self.node_to_use, confidence=None ) diff --git a/sdk/advisor/azure-mgmt-advisor/README.md b/sdk/advisor/azure-mgmt-advisor/README.md index d6a81c340c57..a38e78f0733d 100644 --- a/sdk/advisor/azure-mgmt-advisor/README.md +++ b/sdk/advisor/azure-mgmt-advisor/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Advisor Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/aks/azure-mgmt-devspaces/README.md b/sdk/aks/azure-mgmt-devspaces/README.md index 25c9b739ca48..daf42028a3df 100644 --- a/sdk/aks/azure-mgmt-devspaces/README.md +++ b/sdk/aks/azure-mgmt-devspaces/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/alertsmanagement/azure-mgmt-alertsmanagement/README.md b/sdk/alertsmanagement/azure-mgmt-alertsmanagement/README.md index 5724be969c5c..01dbbed3fb50 100644 --- a/sdk/alertsmanagement/azure-mgmt-alertsmanagement/README.md +++ b/sdk/alertsmanagement/azure-mgmt-alertsmanagement/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Alerts Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/apimanagement/azure-mgmt-apimanagement/README.md b/sdk/apimanagement/azure-mgmt-apimanagement/README.md index b40d66c86a8b..cd8514051b3a 100644 --- a/sdk/apimanagement/azure-mgmt-apimanagement/README.md +++ b/sdk/apimanagement/azure-mgmt-apimanagement/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure API Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/appconfiguration/azure-mgmt-appconfiguration/README.md b/sdk/appconfiguration/azure-mgmt-appconfiguration/README.md index 46c9a3737991..5c70bb7f9d1a 100644 --- a/sdk/appconfiguration/azure-mgmt-appconfiguration/README.md +++ b/sdk/appconfiguration/azure-mgmt-appconfiguration/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure App Configuration Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/applicationinsights/azure-applicationinsights/README.md b/sdk/applicationinsights/azure-applicationinsights/README.md index f03f5ec1caf5..241480ddcc54 100644 --- a/sdk/applicationinsights/azure-applicationinsights/README.md +++ b/sdk/applicationinsights/azure-applicationinsights/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Compatibility diff --git a/sdk/applicationinsights/azure-mgmt-applicationinsights/README.md b/sdk/applicationinsights/azure-mgmt-applicationinsights/README.md index 649c8000f4df..aa949c52302a 100644 --- a/sdk/applicationinsights/azure-mgmt-applicationinsights/README.md +++ b/sdk/applicationinsights/azure-mgmt-applicationinsights/README.md @@ -13,7 +13,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/appplatform/azure-mgmt-appplatform/README.md b/sdk/appplatform/azure-mgmt-appplatform/README.md index fb0e1aeb6dc9..a608ea7e9d8a 100644 --- a/sdk/appplatform/azure-mgmt-appplatform/README.md +++ b/sdk/appplatform/azure-mgmt-appplatform/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure MyService Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/appservice/azure-mgmt-web/README.md b/sdk/appservice/azure-mgmt-web/README.md index 0bb6a27fcf4c..faa596ebc7ee 100644 --- a/sdk/appservice/azure-mgmt-web/README.md +++ b/sdk/appservice/azure-mgmt-web/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Web Apps Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/attestation/azure-mgmt-attestation/README.md b/sdk/attestation/azure-mgmt-attestation/README.md index 5f489b62634b..95f216eac4cb 100644 --- a/sdk/attestation/azure-mgmt-attestation/README.md +++ b/sdk/attestation/azure-mgmt-attestation/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure MyService Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/authorization/azure-mgmt-authorization/README.md b/sdk/authorization/azure-mgmt-authorization/README.md index 12ee836c4fa1..30f2f63dad42 100644 --- a/sdk/authorization/azure-mgmt-authorization/README.md +++ b/sdk/authorization/azure-mgmt-authorization/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/automation/azure-mgmt-automation/README.md b/sdk/automation/azure-mgmt-automation/README.md index 87b014714ad7..f012c2c810e1 100644 --- a/sdk/automation/azure-mgmt-automation/README.md +++ b/sdk/automation/azure-mgmt-automation/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/azurestack/azure-mgmt-azurestack/README.md b/sdk/azurestack/azure-mgmt-azurestack/README.md index e63cf4fec945..a3ac1e0a1329 100644 --- a/sdk/azurestack/azure-mgmt-azurestack/README.md +++ b/sdk/azurestack/azure-mgmt-azurestack/README.md @@ -12,13 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. - -## Usage - -For code examples, see [AzureStack -Management](https://docs.microsoft.com/python/api/overview/azure/azurestack) -on docs.microsoft.com. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Provide Feedback diff --git a/sdk/azurestackhci/ci.yml b/sdk/azurestackhci/ci.yml new file mode 100644 index 000000000000..5a135ee88b53 --- /dev/null +++ b/sdk/azurestackhci/ci.yml @@ -0,0 +1,33 @@ +# DO NOT EDIT THIS FILE +# This file is generated automatically and any changes will be lost. + +trigger: + branches: + include: + - master + - hotfix/* + - release/* + - restapi* + paths: + include: + - sdk/azurestackhci/ + +pr: + branches: + include: + - master + - feature/* + - hotfix/* + - release/* + - restapi* + paths: + include: + - sdk/azurestackhci/ + +extends: + template: ../../eng/pipelines/templates/stages/archetype-sdk-client.yml + parameters: + ServiceDirectory: azurestackhci + Artifacts: + - name: azure_mgmt_azurestackhci + safeName: azuremgmtazurestackhci \ No newline at end of file diff --git a/sdk/batch/azure-mgmt-batch/README.md b/sdk/batch/azure-mgmt-batch/README.md index e895f55e3899..9e8c1b9fc355 100644 --- a/sdk/batch/azure-mgmt-batch/README.md +++ b/sdk/batch/azure-mgmt-batch/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/billing/azure-mgmt-billing/README.md b/sdk/billing/azure-mgmt-billing/README.md index f55be94dbf75..082fa425381e 100644 --- a/sdk/billing/azure-mgmt-billing/README.md +++ b/sdk/billing/azure-mgmt-billing/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/botservice/azure-mgmt-botservice/README.md b/sdk/botservice/azure-mgmt-botservice/README.md index daa33ba29a17..6f90baeb19fa 100644 --- a/sdk/botservice/azure-mgmt-botservice/README.md +++ b/sdk/botservice/azure-mgmt-botservice/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cdn/azure-mgmt-cdn/README.md b/sdk/cdn/azure-mgmt-cdn/README.md index e1c5ed53c3fc..913b84d34318 100644 --- a/sdk/cdn/azure-mgmt-cdn/README.md +++ b/sdk/cdn/azure-mgmt-cdn/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/CHANGELOG.md b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/CHANGELOG.md index 87bf98acac0a..9adc787ce87c 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/CHANGELOG.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/CHANGELOG.md @@ -1,5 +1,12 @@ # Release History +## 0.3.0 (2020-07-23) + +**Features** + + - Added `change_point_detect` method to the client. + - Added new models `ChangePointDetectRequest` and `ChangePointDetectResponse` + ## 0.2.0 (2019-04-12) **Bugfixes** diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/README.md b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/README.md index 0a390518db03..277d153b8256 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/README.md @@ -1,23 +1,22 @@ -## Microsoft Azure SDK for Python +# Microsoft Azure SDK for Python -This is the Microsoft Azure Cognitive Services Anomaly Detector Client -Library. - -This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. +This is the Microsoft Azure Cognitive Services Anomaly Detector Client Library. +This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). -## Usage +# Usage -For code examples, see [Cognitive Services Anomaly -Detector](https://docs.microsoft.com/python/api/overview/azure/cognitive-services) +For code examples, see [Cognitive Services Anomaly Detector](https://docs.microsoft.com/python/api/overview/azure/cognitive-services) on docs.microsoft.com. -## Provide Feedback -If you encounter any bugs or have suggestions, please file an issue in -the [Issues](https://github.com/Azure/azure-sdk-for-python/issues) +# Provide Feedback + +If you encounter any bugs or have suggestions, please file an issue in the +[Issues](https://github.com/Azure/azure-sdk-for-python/issues) section of the project. -![image](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-cognitiveservices-anomalydetector%2FREADME.png) + +![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-cognitiveservices-anomalydetector%2FREADME.png) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/__init__.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/__init__.py index e22707628100..09815430d029 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/__init__.py +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/__init__.py @@ -9,10 +9,11 @@ # regenerated. # -------------------------------------------------------------------------- -from .anomaly_detector_client import AnomalyDetectorClient -from .version import VERSION +from ._configuration import AnomalyDetectorClientConfiguration +from ._anomaly_detector_client import AnomalyDetectorClient +__all__ = ['AnomalyDetectorClient', 'AnomalyDetectorClientConfiguration'] -__all__ = ['AnomalyDetectorClient'] +from .version import VERSION __version__ = VERSION diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/_anomaly_detector_client.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/_anomaly_detector_client.py new file mode 100644 index 000000000000..90aa08443be1 --- /dev/null +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/_anomaly_detector_client.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.service_client import SDKClient +from msrest import Serializer, Deserializer + +from ._configuration import AnomalyDetectorClientConfiguration +from .operations import AnomalyDetectorClientOperationsMixin +from . import models + + +class AnomalyDetectorClient(AnomalyDetectorClientOperationsMixin, SDKClient): + """The Anomaly Detector API detects anomalies automatically in time series data. It supports two kinds of mode, one is for stateless using, another is for stateful using. In stateless mode, there are three functionalities. Entire Detect is for detecting the whole series with model trained by the time series, Last Detect is detecting last point with model trained by points before. ChangePoint Detect is for detecting trend changes in time series. In stateful mode, user can store time series, the stored time series will be used for detection anomalies. Under this mode, user can still use the above three functionalities by only giving a time range without preparing time series in client side. Besides the above three functionalities, stateful model also provide group based detection and labeling service. By leveraging labeling service user can provide labels for each detection result, these labels will be used for retuning or regenerating detection models. Inconsistency detection is a kind of group based detection, this detection will find inconsistency ones in a set of time series. By using anomaly detector service, business customers can discover incidents and establish a logic flow for root cause analysis. + + :ivar config: Configuration for client. + :vartype config: AnomalyDetectorClientConfiguration + + :param endpoint: Supported Cognitive Services endpoints (protocol and + hostname, for example: https://westus2.api.cognitive.microsoft.com). + :type endpoint: str + :param credentials: Subscription credentials which uniquely identify + client subscription. + :type credentials: None + """ + + def __init__( + self, endpoint, credentials): + + self.config = AnomalyDetectorClientConfiguration(endpoint, credentials) + super(AnomalyDetectorClient, self).__init__(self.config.credentials, self.config) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self.api_version = '1.0' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/_configuration.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/_configuration.py new file mode 100644 index 000000000000..4c641ff8f4eb --- /dev/null +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/_configuration.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest import Configuration + +from .version import VERSION + + +class AnomalyDetectorClientConfiguration(Configuration): + """Configuration for AnomalyDetectorClient + Note that all parameters used to create this instance are saved as instance + attributes. + + :param endpoint: Supported Cognitive Services endpoints (protocol and + hostname, for example: https://westus2.api.cognitive.microsoft.com). + :type endpoint: str + :param credentials: Subscription credentials which uniquely identify + client subscription. + :type credentials: None + """ + + def __init__( + self, endpoint, credentials): + + if endpoint is None: + raise ValueError("Parameter 'endpoint' must not be None.") + if credentials is None: + raise ValueError("Parameter 'credentials' must not be None.") + base_url = '{Endpoint}/anomalydetector/v1.0' + + super(AnomalyDetectorClientConfiguration, self).__init__(base_url) + + # Starting Autorest.Python 4.0.64, make connection pool activated by default + self.keep_alive = True + + self.add_user_agent('azure-cognitiveservices-anomalydetector/{}'.format(VERSION)) + + self.endpoint = endpoint + self.credentials = credentials diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/__init__.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/__init__.py index 5d93442123bc..ebfd87212e6a 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/__init__.py +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/__init__.py @@ -10,26 +10,32 @@ # -------------------------------------------------------------------------- try: - from .api_error_py3 import APIError, APIErrorException - from .point_py3 import Point - from .request_py3 import Request - from .entire_detect_response_py3 import EntireDetectResponse - from .last_detect_response_py3 import LastDetectResponse + from ._models_py3 import APIError, APIErrorException + from ._models_py3 import ChangePointDetectRequest + from ._models_py3 import ChangePointDetectResponse + from ._models_py3 import EntireDetectResponse + from ._models_py3 import LastDetectResponse + from ._models_py3 import Point + from ._models_py3 import Request except (SyntaxError, ImportError): - from .api_error import APIError, APIErrorException - from .point import Point - from .request import Request - from .entire_detect_response import EntireDetectResponse - from .last_detect_response import LastDetectResponse -from .anomaly_detector_client_enums import ( + from ._models import APIError, APIErrorException + from ._models import ChangePointDetectRequest + from ._models import ChangePointDetectResponse + from ._models import EntireDetectResponse + from ._models import LastDetectResponse + from ._models import Point + from ._models import Request +from ._anomaly_detector_client_enums import ( Granularity, ) __all__ = [ 'APIError', 'APIErrorException', - 'Point', - 'Request', + 'ChangePointDetectRequest', + 'ChangePointDetectResponse', 'EntireDetectResponse', 'LastDetectResponse', + 'Point', + 'Request', 'Granularity', ] diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/anomaly_detector_client_enums.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_anomaly_detector_client_enums.py similarity index 96% rename from sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/anomaly_detector_client_enums.py rename to sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_anomaly_detector_client_enums.py index 7ccdf28e6f4e..50b02b1f3b23 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/anomaly_detector_client_enums.py +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_anomaly_detector_client_enums.py @@ -20,3 +20,4 @@ class Granularity(str, Enum): daily = "daily" hourly = "hourly" minutely = "minutely" + secondly = "secondly" diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_models.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_models.py new file mode 100644 index 000000000000..469f73e6c057 --- /dev/null +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_models.py @@ -0,0 +1,366 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class APIError(Model): + """Error information returned by the API. + + :param code: The error code. + :type code: object + :param message: A message explaining the error reported by the service. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'object'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(APIError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + + +class APIErrorException(HttpOperationError): + """Server responsed with exception of type: 'APIError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(APIErrorException, self).__init__(deserialize, response, 'APIError', *args) + + +class ChangePointDetectRequest(Model): + """ChangePointDetectRequest. + + All required parameters must be populated in order to send to Azure. + + :param series: Required. Time series data points. Points should be sorted + by timestamp in ascending order to match the change point detection + result. + :type series: list[~azure.cognitiveservices.anomalydetector.models.Point] + :param granularity: Required. Can only be one of yearly, monthly, weekly, + daily, hourly, minutely or secondly. Granularity is used for verify + whether input series is valid. Possible values include: 'yearly', + 'monthly', 'weekly', 'daily', 'hourly', 'minutely', 'secondly' + :type granularity: str or + ~azure.cognitiveservices.anomalydetector.models.Granularity + :param custom_interval: Custom Interval is used to set non-standard time + interval, for example, if the series is 5 minutes, request can be set as + {"granularity":"minutely", "customInterval":5}. + :type custom_interval: int + :param period: Optional argument, periodic value of a time series. If the + value is null or does not present, the API will determine the period + automatically. + :type period: int + :param stable_trend_window: Optional argument, advanced model parameter, a + default stableTrendWindow will be used in detection. + :type stable_trend_window: int + :param threshold: Optional argument, advanced model parameter, between + 0.0-1.0, the lower the value is, the larger the trend error will be which + means less change point will be accepted. + :type threshold: float + """ + + _validation = { + 'series': {'required': True}, + 'granularity': {'required': True}, + } + + _attribute_map = { + 'series': {'key': 'series', 'type': '[Point]'}, + 'granularity': {'key': 'granularity', 'type': 'Granularity'}, + 'custom_interval': {'key': 'customInterval', 'type': 'int'}, + 'period': {'key': 'period', 'type': 'int'}, + 'stable_trend_window': {'key': 'stableTrendWindow', 'type': 'int'}, + 'threshold': {'key': 'threshold', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(ChangePointDetectRequest, self).__init__(**kwargs) + self.series = kwargs.get('series', None) + self.granularity = kwargs.get('granularity', None) + self.custom_interval = kwargs.get('custom_interval', None) + self.period = kwargs.get('period', None) + self.stable_trend_window = kwargs.get('stable_trend_window', None) + self.threshold = kwargs.get('threshold', None) + + +class ChangePointDetectResponse(Model): + """ChangePointDetectResponse. + + All required parameters must be populated in order to send to Azure. + + :param period: Required. Frequency extracted from the series, zero means + no recurrent pattern has been found. + :type period: int + :param is_change_point: Required. isChangePoint contains change point + properties for each input point. True means an anomaly either negative or + positive has been detected. The index of the array is consistent with the + input series. + :type is_change_point: list[bool] + :param confidence_scores: Required. the change point confidence of each + point + :type confidence_scores: list[float] + """ + + _validation = { + 'period': {'required': True}, + 'is_change_point': {'required': True}, + 'confidence_scores': {'required': True}, + } + + _attribute_map = { + 'period': {'key': 'period', 'type': 'int'}, + 'is_change_point': {'key': 'isChangePoint', 'type': '[bool]'}, + 'confidence_scores': {'key': 'confidenceScores', 'type': '[float]'}, + } + + def __init__(self, **kwargs): + super(ChangePointDetectResponse, self).__init__(**kwargs) + self.period = kwargs.get('period', None) + self.is_change_point = kwargs.get('is_change_point', None) + self.confidence_scores = kwargs.get('confidence_scores', None) + + +class EntireDetectResponse(Model): + """EntireDetectResponse. + + All required parameters must be populated in order to send to Azure. + + :param period: Required. Frequency extracted from the series, zero means + no recurrent pattern has been found. + :type period: int + :param expected_values: Required. ExpectedValues contain expected value + for each input point. The index of the array is consistent with the input + series. + :type expected_values: list[float] + :param upper_margins: Required. UpperMargins contain upper margin of each + input point. UpperMargin is used to calculate upperBoundary, which equals + to expectedValue + (100 - marginScale)*upperMargin. Anomalies in response + can be filtered by upperBoundary and lowerBoundary. By adjusting + marginScale value, less significant anomalies can be filtered in client + side. The index of the array is consistent with the input series. + :type upper_margins: list[float] + :param lower_margins: Required. LowerMargins contain lower margin of each + input point. LowerMargin is used to calculate lowerBoundary, which equals + to expectedValue - (100 - marginScale)*lowerMargin. Points between the + boundary can be marked as normal ones in client side. The index of the + array is consistent with the input series. + :type lower_margins: list[float] + :param is_anomaly: Required. IsAnomaly contains anomaly properties for + each input point. True means an anomaly either negative or positive has + been detected. The index of the array is consistent with the input series. + :type is_anomaly: list[bool] + :param is_negative_anomaly: Required. IsNegativeAnomaly contains anomaly + status in negative direction for each input point. True means a negative + anomaly has been detected. A negative anomaly means the point is detected + as an anomaly and its real value is smaller than the expected one. The + index of the array is consistent with the input series. + :type is_negative_anomaly: list[bool] + :param is_positive_anomaly: Required. IsPositiveAnomaly contain anomaly + status in positive direction for each input point. True means a positive + anomaly has been detected. A positive anomaly means the point is detected + as an anomaly and its real value is larger than the expected one. The + index of the array is consistent with the input series. + :type is_positive_anomaly: list[bool] + """ + + _validation = { + 'period': {'required': True}, + 'expected_values': {'required': True}, + 'upper_margins': {'required': True}, + 'lower_margins': {'required': True}, + 'is_anomaly': {'required': True}, + 'is_negative_anomaly': {'required': True}, + 'is_positive_anomaly': {'required': True}, + } + + _attribute_map = { + 'period': {'key': 'period', 'type': 'int'}, + 'expected_values': {'key': 'expectedValues', 'type': '[float]'}, + 'upper_margins': {'key': 'upperMargins', 'type': '[float]'}, + 'lower_margins': {'key': 'lowerMargins', 'type': '[float]'}, + 'is_anomaly': {'key': 'isAnomaly', 'type': '[bool]'}, + 'is_negative_anomaly': {'key': 'isNegativeAnomaly', 'type': '[bool]'}, + 'is_positive_anomaly': {'key': 'isPositiveAnomaly', 'type': '[bool]'}, + } + + def __init__(self, **kwargs): + super(EntireDetectResponse, self).__init__(**kwargs) + self.period = kwargs.get('period', None) + self.expected_values = kwargs.get('expected_values', None) + self.upper_margins = kwargs.get('upper_margins', None) + self.lower_margins = kwargs.get('lower_margins', None) + self.is_anomaly = kwargs.get('is_anomaly', None) + self.is_negative_anomaly = kwargs.get('is_negative_anomaly', None) + self.is_positive_anomaly = kwargs.get('is_positive_anomaly', None) + + +class LastDetectResponse(Model): + """LastDetectResponse. + + All required parameters must be populated in order to send to Azure. + + :param period: Required. Frequency extracted from the series, zero means + no recurrent pattern has been found. + :type period: int + :param suggested_window: Required. Suggested input series points needed + for detecting the latest point. + :type suggested_window: int + :param expected_value: Required. Expected value of the latest point. + :type expected_value: float + :param upper_margin: Required. Upper margin of the latest point. + UpperMargin is used to calculate upperBoundary, which equals to + expectedValue + (100 - marginScale)*upperMargin. If the value of latest + point is between upperBoundary and lowerBoundary, it should be treated as + normal value. By adjusting marginScale value, anomaly status of latest + point can be changed. + :type upper_margin: float + :param lower_margin: Required. Lower margin of the latest point. + LowerMargin is used to calculate lowerBoundary, which equals to + expectedValue - (100 - marginScale)*lowerMargin. + :type lower_margin: float + :param is_anomaly: Required. Anomaly status of the latest point, true + means the latest point is an anomaly either in negative direction or + positive direction. + :type is_anomaly: bool + :param is_negative_anomaly: Required. Anomaly status in negative direction + of the latest point. True means the latest point is an anomaly and its + real value is smaller than the expected one. + :type is_negative_anomaly: bool + :param is_positive_anomaly: Required. Anomaly status in positive direction + of the latest point. True means the latest point is an anomaly and its + real value is larger than the expected one. + :type is_positive_anomaly: bool + """ + + _validation = { + 'period': {'required': True}, + 'suggested_window': {'required': True}, + 'expected_value': {'required': True}, + 'upper_margin': {'required': True}, + 'lower_margin': {'required': True}, + 'is_anomaly': {'required': True}, + 'is_negative_anomaly': {'required': True}, + 'is_positive_anomaly': {'required': True}, + } + + _attribute_map = { + 'period': {'key': 'period', 'type': 'int'}, + 'suggested_window': {'key': 'suggestedWindow', 'type': 'int'}, + 'expected_value': {'key': 'expectedValue', 'type': 'float'}, + 'upper_margin': {'key': 'upperMargin', 'type': 'float'}, + 'lower_margin': {'key': 'lowerMargin', 'type': 'float'}, + 'is_anomaly': {'key': 'isAnomaly', 'type': 'bool'}, + 'is_negative_anomaly': {'key': 'isNegativeAnomaly', 'type': 'bool'}, + 'is_positive_anomaly': {'key': 'isPositiveAnomaly', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(LastDetectResponse, self).__init__(**kwargs) + self.period = kwargs.get('period', None) + self.suggested_window = kwargs.get('suggested_window', None) + self.expected_value = kwargs.get('expected_value', None) + self.upper_margin = kwargs.get('upper_margin', None) + self.lower_margin = kwargs.get('lower_margin', None) + self.is_anomaly = kwargs.get('is_anomaly', None) + self.is_negative_anomaly = kwargs.get('is_negative_anomaly', None) + self.is_positive_anomaly = kwargs.get('is_positive_anomaly', None) + + +class Point(Model): + """Point. + + All required parameters must be populated in order to send to Azure. + + :param timestamp: Required. Timestamp of a data point (ISO8601 format). + :type timestamp: datetime + :param value: Required. The measurement of that point, should be float. + :type value: float + """ + + _validation = { + 'timestamp': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'value': {'key': 'value', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(Point, self).__init__(**kwargs) + self.timestamp = kwargs.get('timestamp', None) + self.value = kwargs.get('value', None) + + +class Request(Model): + """Request. + + All required parameters must be populated in order to send to Azure. + + :param series: Required. Time series data points. Points should be sorted + by timestamp in ascending order to match the anomaly detection result. If + the data is not sorted correctly or there is duplicated timestamp, the API + will not work. In such case, an error message will be returned. + :type series: list[~azure.cognitiveservices.anomalydetector.models.Point] + :param granularity: Required. Possible values include: 'yearly', + 'monthly', 'weekly', 'daily', 'hourly', 'minutely', 'secondly' + :type granularity: str or + ~azure.cognitiveservices.anomalydetector.models.Granularity + :param custom_interval: Custom Interval is used to set non-standard time + interval, for example, if the series is 5 minutes, request can be set as + {"granularity":"minutely", "customInterval":5}. + :type custom_interval: int + :param period: Optional argument, periodic value of a time series. If the + value is null or does not present, the API will determine the period + automatically. + :type period: int + :param max_anomaly_ratio: Optional argument, advanced model parameter, max + anomaly ratio in a time series. + :type max_anomaly_ratio: float + :param sensitivity: Optional argument, advanced model parameter, between + 0-99, the lower the value is, the larger the margin value will be which + means less anomalies will be accepted. + :type sensitivity: int + """ + + _validation = { + 'series': {'required': True}, + 'granularity': {'required': True}, + } + + _attribute_map = { + 'series': {'key': 'series', 'type': '[Point]'}, + 'granularity': {'key': 'granularity', 'type': 'Granularity'}, + 'custom_interval': {'key': 'customInterval', 'type': 'int'}, + 'period': {'key': 'period', 'type': 'int'}, + 'max_anomaly_ratio': {'key': 'maxAnomalyRatio', 'type': 'float'}, + 'sensitivity': {'key': 'sensitivity', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(Request, self).__init__(**kwargs) + self.series = kwargs.get('series', None) + self.granularity = kwargs.get('granularity', None) + self.custom_interval = kwargs.get('custom_interval', None) + self.period = kwargs.get('period', None) + self.max_anomaly_ratio = kwargs.get('max_anomaly_ratio', None) + self.sensitivity = kwargs.get('sensitivity', None) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_models_py3.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_models_py3.py new file mode 100644 index 000000000000..5f28270cc0a1 --- /dev/null +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/_models_py3.py @@ -0,0 +1,366 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class APIError(Model): + """Error information returned by the API. + + :param code: The error code. + :type code: object + :param message: A message explaining the error reported by the service. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'object'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, *, code=None, message: str=None, **kwargs) -> None: + super(APIError, self).__init__(**kwargs) + self.code = code + self.message = message + + +class APIErrorException(HttpOperationError): + """Server responsed with exception of type: 'APIError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(APIErrorException, self).__init__(deserialize, response, 'APIError', *args) + + +class ChangePointDetectRequest(Model): + """ChangePointDetectRequest. + + All required parameters must be populated in order to send to Azure. + + :param series: Required. Time series data points. Points should be sorted + by timestamp in ascending order to match the change point detection + result. + :type series: list[~azure.cognitiveservices.anomalydetector.models.Point] + :param granularity: Required. Can only be one of yearly, monthly, weekly, + daily, hourly, minutely or secondly. Granularity is used for verify + whether input series is valid. Possible values include: 'yearly', + 'monthly', 'weekly', 'daily', 'hourly', 'minutely', 'secondly' + :type granularity: str or + ~azure.cognitiveservices.anomalydetector.models.Granularity + :param custom_interval: Custom Interval is used to set non-standard time + interval, for example, if the series is 5 minutes, request can be set as + {"granularity":"minutely", "customInterval":5}. + :type custom_interval: int + :param period: Optional argument, periodic value of a time series. If the + value is null or does not present, the API will determine the period + automatically. + :type period: int + :param stable_trend_window: Optional argument, advanced model parameter, a + default stableTrendWindow will be used in detection. + :type stable_trend_window: int + :param threshold: Optional argument, advanced model parameter, between + 0.0-1.0, the lower the value is, the larger the trend error will be which + means less change point will be accepted. + :type threshold: float + """ + + _validation = { + 'series': {'required': True}, + 'granularity': {'required': True}, + } + + _attribute_map = { + 'series': {'key': 'series', 'type': '[Point]'}, + 'granularity': {'key': 'granularity', 'type': 'Granularity'}, + 'custom_interval': {'key': 'customInterval', 'type': 'int'}, + 'period': {'key': 'period', 'type': 'int'}, + 'stable_trend_window': {'key': 'stableTrendWindow', 'type': 'int'}, + 'threshold': {'key': 'threshold', 'type': 'float'}, + } + + def __init__(self, *, series, granularity, custom_interval: int=None, period: int=None, stable_trend_window: int=None, threshold: float=None, **kwargs) -> None: + super(ChangePointDetectRequest, self).__init__(**kwargs) + self.series = series + self.granularity = granularity + self.custom_interval = custom_interval + self.period = period + self.stable_trend_window = stable_trend_window + self.threshold = threshold + + +class ChangePointDetectResponse(Model): + """ChangePointDetectResponse. + + All required parameters must be populated in order to send to Azure. + + :param period: Required. Frequency extracted from the series, zero means + no recurrent pattern has been found. + :type period: int + :param is_change_point: Required. isChangePoint contains change point + properties for each input point. True means an anomaly either negative or + positive has been detected. The index of the array is consistent with the + input series. + :type is_change_point: list[bool] + :param confidence_scores: Required. the change point confidence of each + point + :type confidence_scores: list[float] + """ + + _validation = { + 'period': {'required': True}, + 'is_change_point': {'required': True}, + 'confidence_scores': {'required': True}, + } + + _attribute_map = { + 'period': {'key': 'period', 'type': 'int'}, + 'is_change_point': {'key': 'isChangePoint', 'type': '[bool]'}, + 'confidence_scores': {'key': 'confidenceScores', 'type': '[float]'}, + } + + def __init__(self, *, period: int, is_change_point, confidence_scores, **kwargs) -> None: + super(ChangePointDetectResponse, self).__init__(**kwargs) + self.period = period + self.is_change_point = is_change_point + self.confidence_scores = confidence_scores + + +class EntireDetectResponse(Model): + """EntireDetectResponse. + + All required parameters must be populated in order to send to Azure. + + :param period: Required. Frequency extracted from the series, zero means + no recurrent pattern has been found. + :type period: int + :param expected_values: Required. ExpectedValues contain expected value + for each input point. The index of the array is consistent with the input + series. + :type expected_values: list[float] + :param upper_margins: Required. UpperMargins contain upper margin of each + input point. UpperMargin is used to calculate upperBoundary, which equals + to expectedValue + (100 - marginScale)*upperMargin. Anomalies in response + can be filtered by upperBoundary and lowerBoundary. By adjusting + marginScale value, less significant anomalies can be filtered in client + side. The index of the array is consistent with the input series. + :type upper_margins: list[float] + :param lower_margins: Required. LowerMargins contain lower margin of each + input point. LowerMargin is used to calculate lowerBoundary, which equals + to expectedValue - (100 - marginScale)*lowerMargin. Points between the + boundary can be marked as normal ones in client side. The index of the + array is consistent with the input series. + :type lower_margins: list[float] + :param is_anomaly: Required. IsAnomaly contains anomaly properties for + each input point. True means an anomaly either negative or positive has + been detected. The index of the array is consistent with the input series. + :type is_anomaly: list[bool] + :param is_negative_anomaly: Required. IsNegativeAnomaly contains anomaly + status in negative direction for each input point. True means a negative + anomaly has been detected. A negative anomaly means the point is detected + as an anomaly and its real value is smaller than the expected one. The + index of the array is consistent with the input series. + :type is_negative_anomaly: list[bool] + :param is_positive_anomaly: Required. IsPositiveAnomaly contain anomaly + status in positive direction for each input point. True means a positive + anomaly has been detected. A positive anomaly means the point is detected + as an anomaly and its real value is larger than the expected one. The + index of the array is consistent with the input series. + :type is_positive_anomaly: list[bool] + """ + + _validation = { + 'period': {'required': True}, + 'expected_values': {'required': True}, + 'upper_margins': {'required': True}, + 'lower_margins': {'required': True}, + 'is_anomaly': {'required': True}, + 'is_negative_anomaly': {'required': True}, + 'is_positive_anomaly': {'required': True}, + } + + _attribute_map = { + 'period': {'key': 'period', 'type': 'int'}, + 'expected_values': {'key': 'expectedValues', 'type': '[float]'}, + 'upper_margins': {'key': 'upperMargins', 'type': '[float]'}, + 'lower_margins': {'key': 'lowerMargins', 'type': '[float]'}, + 'is_anomaly': {'key': 'isAnomaly', 'type': '[bool]'}, + 'is_negative_anomaly': {'key': 'isNegativeAnomaly', 'type': '[bool]'}, + 'is_positive_anomaly': {'key': 'isPositiveAnomaly', 'type': '[bool]'}, + } + + def __init__(self, *, period: int, expected_values, upper_margins, lower_margins, is_anomaly, is_negative_anomaly, is_positive_anomaly, **kwargs) -> None: + super(EntireDetectResponse, self).__init__(**kwargs) + self.period = period + self.expected_values = expected_values + self.upper_margins = upper_margins + self.lower_margins = lower_margins + self.is_anomaly = is_anomaly + self.is_negative_anomaly = is_negative_anomaly + self.is_positive_anomaly = is_positive_anomaly + + +class LastDetectResponse(Model): + """LastDetectResponse. + + All required parameters must be populated in order to send to Azure. + + :param period: Required. Frequency extracted from the series, zero means + no recurrent pattern has been found. + :type period: int + :param suggested_window: Required. Suggested input series points needed + for detecting the latest point. + :type suggested_window: int + :param expected_value: Required. Expected value of the latest point. + :type expected_value: float + :param upper_margin: Required. Upper margin of the latest point. + UpperMargin is used to calculate upperBoundary, which equals to + expectedValue + (100 - marginScale)*upperMargin. If the value of latest + point is between upperBoundary and lowerBoundary, it should be treated as + normal value. By adjusting marginScale value, anomaly status of latest + point can be changed. + :type upper_margin: float + :param lower_margin: Required. Lower margin of the latest point. + LowerMargin is used to calculate lowerBoundary, which equals to + expectedValue - (100 - marginScale)*lowerMargin. + :type lower_margin: float + :param is_anomaly: Required. Anomaly status of the latest point, true + means the latest point is an anomaly either in negative direction or + positive direction. + :type is_anomaly: bool + :param is_negative_anomaly: Required. Anomaly status in negative direction + of the latest point. True means the latest point is an anomaly and its + real value is smaller than the expected one. + :type is_negative_anomaly: bool + :param is_positive_anomaly: Required. Anomaly status in positive direction + of the latest point. True means the latest point is an anomaly and its + real value is larger than the expected one. + :type is_positive_anomaly: bool + """ + + _validation = { + 'period': {'required': True}, + 'suggested_window': {'required': True}, + 'expected_value': {'required': True}, + 'upper_margin': {'required': True}, + 'lower_margin': {'required': True}, + 'is_anomaly': {'required': True}, + 'is_negative_anomaly': {'required': True}, + 'is_positive_anomaly': {'required': True}, + } + + _attribute_map = { + 'period': {'key': 'period', 'type': 'int'}, + 'suggested_window': {'key': 'suggestedWindow', 'type': 'int'}, + 'expected_value': {'key': 'expectedValue', 'type': 'float'}, + 'upper_margin': {'key': 'upperMargin', 'type': 'float'}, + 'lower_margin': {'key': 'lowerMargin', 'type': 'float'}, + 'is_anomaly': {'key': 'isAnomaly', 'type': 'bool'}, + 'is_negative_anomaly': {'key': 'isNegativeAnomaly', 'type': 'bool'}, + 'is_positive_anomaly': {'key': 'isPositiveAnomaly', 'type': 'bool'}, + } + + def __init__(self, *, period: int, suggested_window: int, expected_value: float, upper_margin: float, lower_margin: float, is_anomaly: bool, is_negative_anomaly: bool, is_positive_anomaly: bool, **kwargs) -> None: + super(LastDetectResponse, self).__init__(**kwargs) + self.period = period + self.suggested_window = suggested_window + self.expected_value = expected_value + self.upper_margin = upper_margin + self.lower_margin = lower_margin + self.is_anomaly = is_anomaly + self.is_negative_anomaly = is_negative_anomaly + self.is_positive_anomaly = is_positive_anomaly + + +class Point(Model): + """Point. + + All required parameters must be populated in order to send to Azure. + + :param timestamp: Required. Timestamp of a data point (ISO8601 format). + :type timestamp: datetime + :param value: Required. The measurement of that point, should be float. + :type value: float + """ + + _validation = { + 'timestamp': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'value': {'key': 'value', 'type': 'float'}, + } + + def __init__(self, *, timestamp, value: float, **kwargs) -> None: + super(Point, self).__init__(**kwargs) + self.timestamp = timestamp + self.value = value + + +class Request(Model): + """Request. + + All required parameters must be populated in order to send to Azure. + + :param series: Required. Time series data points. Points should be sorted + by timestamp in ascending order to match the anomaly detection result. If + the data is not sorted correctly or there is duplicated timestamp, the API + will not work. In such case, an error message will be returned. + :type series: list[~azure.cognitiveservices.anomalydetector.models.Point] + :param granularity: Required. Possible values include: 'yearly', + 'monthly', 'weekly', 'daily', 'hourly', 'minutely', 'secondly' + :type granularity: str or + ~azure.cognitiveservices.anomalydetector.models.Granularity + :param custom_interval: Custom Interval is used to set non-standard time + interval, for example, if the series is 5 minutes, request can be set as + {"granularity":"minutely", "customInterval":5}. + :type custom_interval: int + :param period: Optional argument, periodic value of a time series. If the + value is null or does not present, the API will determine the period + automatically. + :type period: int + :param max_anomaly_ratio: Optional argument, advanced model parameter, max + anomaly ratio in a time series. + :type max_anomaly_ratio: float + :param sensitivity: Optional argument, advanced model parameter, between + 0-99, the lower the value is, the larger the margin value will be which + means less anomalies will be accepted. + :type sensitivity: int + """ + + _validation = { + 'series': {'required': True}, + 'granularity': {'required': True}, + } + + _attribute_map = { + 'series': {'key': 'series', 'type': '[Point]'}, + 'granularity': {'key': 'granularity', 'type': 'Granularity'}, + 'custom_interval': {'key': 'customInterval', 'type': 'int'}, + 'period': {'key': 'period', 'type': 'int'}, + 'max_anomaly_ratio': {'key': 'maxAnomalyRatio', 'type': 'float'}, + 'sensitivity': {'key': 'sensitivity', 'type': 'int'}, + } + + def __init__(self, *, series, granularity, custom_interval: int=None, period: int=None, max_anomaly_ratio: float=None, sensitivity: int=None, **kwargs) -> None: + super(Request, self).__init__(**kwargs) + self.series = series + self.granularity = granularity + self.custom_interval = custom_interval + self.period = period + self.max_anomaly_ratio = max_anomaly_ratio + self.sensitivity = sensitivity diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/api_error.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/api_error.py deleted file mode 100644 index 43212ed45cb7..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/api_error.py +++ /dev/null @@ -1,45 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError - - -class APIError(Model): - """Error information returned by the API. - - :param code: The error code. - :type code: object - :param message: A message explaining the error reported by the service. - :type message: str - """ - - _attribute_map = { - 'code': {'key': 'code', 'type': 'object'}, - 'message': {'key': 'message', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(APIError, self).__init__(**kwargs) - self.code = kwargs.get('code', None) - self.message = kwargs.get('message', None) - - -class APIErrorException(HttpOperationError): - """Server responsed with exception of type: 'APIError'. - - :param deserialize: A deserializer - :param response: Server response to be deserialized. - """ - - def __init__(self, deserialize, response, *args): - - super(APIErrorException, self).__init__(deserialize, response, 'APIError', *args) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/api_error_py3.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/api_error_py3.py deleted file mode 100644 index e47967991688..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/api_error_py3.py +++ /dev/null @@ -1,45 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError - - -class APIError(Model): - """Error information returned by the API. - - :param code: The error code. - :type code: object - :param message: A message explaining the error reported by the service. - :type message: str - """ - - _attribute_map = { - 'code': {'key': 'code', 'type': 'object'}, - 'message': {'key': 'message', 'type': 'str'}, - } - - def __init__(self, *, code=None, message: str=None, **kwargs) -> None: - super(APIError, self).__init__(**kwargs) - self.code = code - self.message = message - - -class APIErrorException(HttpOperationError): - """Server responsed with exception of type: 'APIError'. - - :param deserialize: A deserializer - :param response: Server response to be deserialized. - """ - - def __init__(self, deserialize, response, *args): - - super(APIErrorException, self).__init__(deserialize, response, 'APIError', *args) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/entire_detect_response.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/entire_detect_response.py deleted file mode 100644 index 037cb3153051..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/entire_detect_response.py +++ /dev/null @@ -1,86 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class EntireDetectResponse(Model): - """EntireDetectResponse. - - All required parameters must be populated in order to send to Azure. - - :param period: Required. Frequency extracted from the series, zero means - no recurrent pattern has been found. - :type period: int - :param expected_values: Required. ExpectedValues contain expected value - for each input point. The index of the array is consistent with the input - series. - :type expected_values: list[float] - :param upper_margins: Required. UpperMargins contain upper margin of each - input point. UpperMargin is used to calculate upperBoundary, which equals - to expectedValue + (100 - marginScale)*upperMargin. Anomalies in response - can be filtered by upperBoundary and lowerBoundary. By adjusting - marginScale value, less significant anomalies can be filtered in client - side. The index of the array is consistent with the input series. - :type upper_margins: list[float] - :param lower_margins: Required. LowerMargins contain lower margin of each - input point. LowerMargin is used to calculate lowerBoundary, which equals - to expectedValue - (100 - marginScale)*lowerMargin. Points between the - boundary can be marked as normal ones in client side. The index of the - array is consistent with the input series. - :type lower_margins: list[float] - :param is_anomaly: Required. IsAnomaly contains anomaly properties for - each input point. True means an anomaly either negative or positive has - been detected. The index of the array is consistent with the input series. - :type is_anomaly: list[bool] - :param is_negative_anomaly: Required. IsNegativeAnomaly contains anomaly - status in negative direction for each input point. True means a negative - anomaly has been detected. A negative anomaly means the point is detected - as an anomaly and its real value is smaller than the expected one. The - index of the array is consistent with the input series. - :type is_negative_anomaly: list[bool] - :param is_positive_anomaly: Required. IsPositiveAnomaly contain anomaly - status in positive direction for each input point. True means a positive - anomaly has been detected. A positive anomaly means the point is detected - as an anomaly and its real value is larger than the expected one. The - index of the array is consistent with the input series. - :type is_positive_anomaly: list[bool] - """ - - _validation = { - 'period': {'required': True}, - 'expected_values': {'required': True}, - 'upper_margins': {'required': True}, - 'lower_margins': {'required': True}, - 'is_anomaly': {'required': True}, - 'is_negative_anomaly': {'required': True}, - 'is_positive_anomaly': {'required': True}, - } - - _attribute_map = { - 'period': {'key': 'period', 'type': 'int'}, - 'expected_values': {'key': 'expectedValues', 'type': '[float]'}, - 'upper_margins': {'key': 'upperMargins', 'type': '[float]'}, - 'lower_margins': {'key': 'lowerMargins', 'type': '[float]'}, - 'is_anomaly': {'key': 'isAnomaly', 'type': '[bool]'}, - 'is_negative_anomaly': {'key': 'isNegativeAnomaly', 'type': '[bool]'}, - 'is_positive_anomaly': {'key': 'isPositiveAnomaly', 'type': '[bool]'}, - } - - def __init__(self, **kwargs): - super(EntireDetectResponse, self).__init__(**kwargs) - self.period = kwargs.get('period', None) - self.expected_values = kwargs.get('expected_values', None) - self.upper_margins = kwargs.get('upper_margins', None) - self.lower_margins = kwargs.get('lower_margins', None) - self.is_anomaly = kwargs.get('is_anomaly', None) - self.is_negative_anomaly = kwargs.get('is_negative_anomaly', None) - self.is_positive_anomaly = kwargs.get('is_positive_anomaly', None) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/entire_detect_response_py3.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/entire_detect_response_py3.py deleted file mode 100644 index 6b23e37e38af..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/entire_detect_response_py3.py +++ /dev/null @@ -1,86 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class EntireDetectResponse(Model): - """EntireDetectResponse. - - All required parameters must be populated in order to send to Azure. - - :param period: Required. Frequency extracted from the series, zero means - no recurrent pattern has been found. - :type period: int - :param expected_values: Required. ExpectedValues contain expected value - for each input point. The index of the array is consistent with the input - series. - :type expected_values: list[float] - :param upper_margins: Required. UpperMargins contain upper margin of each - input point. UpperMargin is used to calculate upperBoundary, which equals - to expectedValue + (100 - marginScale)*upperMargin. Anomalies in response - can be filtered by upperBoundary and lowerBoundary. By adjusting - marginScale value, less significant anomalies can be filtered in client - side. The index of the array is consistent with the input series. - :type upper_margins: list[float] - :param lower_margins: Required. LowerMargins contain lower margin of each - input point. LowerMargin is used to calculate lowerBoundary, which equals - to expectedValue - (100 - marginScale)*lowerMargin. Points between the - boundary can be marked as normal ones in client side. The index of the - array is consistent with the input series. - :type lower_margins: list[float] - :param is_anomaly: Required. IsAnomaly contains anomaly properties for - each input point. True means an anomaly either negative or positive has - been detected. The index of the array is consistent with the input series. - :type is_anomaly: list[bool] - :param is_negative_anomaly: Required. IsNegativeAnomaly contains anomaly - status in negative direction for each input point. True means a negative - anomaly has been detected. A negative anomaly means the point is detected - as an anomaly and its real value is smaller than the expected one. The - index of the array is consistent with the input series. - :type is_negative_anomaly: list[bool] - :param is_positive_anomaly: Required. IsPositiveAnomaly contain anomaly - status in positive direction for each input point. True means a positive - anomaly has been detected. A positive anomaly means the point is detected - as an anomaly and its real value is larger than the expected one. The - index of the array is consistent with the input series. - :type is_positive_anomaly: list[bool] - """ - - _validation = { - 'period': {'required': True}, - 'expected_values': {'required': True}, - 'upper_margins': {'required': True}, - 'lower_margins': {'required': True}, - 'is_anomaly': {'required': True}, - 'is_negative_anomaly': {'required': True}, - 'is_positive_anomaly': {'required': True}, - } - - _attribute_map = { - 'period': {'key': 'period', 'type': 'int'}, - 'expected_values': {'key': 'expectedValues', 'type': '[float]'}, - 'upper_margins': {'key': 'upperMargins', 'type': '[float]'}, - 'lower_margins': {'key': 'lowerMargins', 'type': '[float]'}, - 'is_anomaly': {'key': 'isAnomaly', 'type': '[bool]'}, - 'is_negative_anomaly': {'key': 'isNegativeAnomaly', 'type': '[bool]'}, - 'is_positive_anomaly': {'key': 'isPositiveAnomaly', 'type': '[bool]'}, - } - - def __init__(self, *, period: int, expected_values, upper_margins, lower_margins, is_anomaly, is_negative_anomaly, is_positive_anomaly, **kwargs) -> None: - super(EntireDetectResponse, self).__init__(**kwargs) - self.period = period - self.expected_values = expected_values - self.upper_margins = upper_margins - self.lower_margins = lower_margins - self.is_anomaly = is_anomaly - self.is_negative_anomaly = is_negative_anomaly - self.is_positive_anomaly = is_positive_anomaly diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/last_detect_response.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/last_detect_response.py deleted file mode 100644 index d1228b4c8872..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/last_detect_response.py +++ /dev/null @@ -1,84 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class LastDetectResponse(Model): - """LastDetectResponse. - - All required parameters must be populated in order to send to Azure. - - :param period: Required. Frequency extracted from the series, zero means - no recurrent pattern has been found. - :type period: int - :param suggested_window: Required. Suggested input series points needed - for detecting the latest point. - :type suggested_window: int - :param expected_value: Required. Expected value of the latest point. - :type expected_value: float - :param upper_margin: Required. Upper margin of the latest point. - UpperMargin is used to calculate upperBoundary, which equals to - expectedValue + (100 - marginScale)*upperMargin. If the value of latest - point is between upperBoundary and lowerBoundary, it should be treated as - normal value. By adjusting marginScale value, anomaly status of latest - point can be changed. - :type upper_margin: float - :param lower_margin: Required. Lower margin of the latest point. - LowerMargin is used to calculate lowerBoundary, which equals to - expectedValue - (100 - marginScale)*lowerMargin. - :type lower_margin: float - :param is_anomaly: Required. Anomaly status of the latest point, true - means the latest point is an anomaly either in negative direction or - positive direction. - :type is_anomaly: bool - :param is_negative_anomaly: Required. Anomaly status in negative direction - of the latest point. True means the latest point is an anomaly and its - real value is smaller than the expected one. - :type is_negative_anomaly: bool - :param is_positive_anomaly: Required. Anomaly status in positive direction - of the latest point. True means the latest point is an anomaly and its - real value is larger than the expected one. - :type is_positive_anomaly: bool - """ - - _validation = { - 'period': {'required': True}, - 'suggested_window': {'required': True}, - 'expected_value': {'required': True}, - 'upper_margin': {'required': True}, - 'lower_margin': {'required': True}, - 'is_anomaly': {'required': True}, - 'is_negative_anomaly': {'required': True}, - 'is_positive_anomaly': {'required': True}, - } - - _attribute_map = { - 'period': {'key': 'period', 'type': 'int'}, - 'suggested_window': {'key': 'suggestedWindow', 'type': 'int'}, - 'expected_value': {'key': 'expectedValue', 'type': 'float'}, - 'upper_margin': {'key': 'upperMargin', 'type': 'float'}, - 'lower_margin': {'key': 'lowerMargin', 'type': 'float'}, - 'is_anomaly': {'key': 'isAnomaly', 'type': 'bool'}, - 'is_negative_anomaly': {'key': 'isNegativeAnomaly', 'type': 'bool'}, - 'is_positive_anomaly': {'key': 'isPositiveAnomaly', 'type': 'bool'}, - } - - def __init__(self, **kwargs): - super(LastDetectResponse, self).__init__(**kwargs) - self.period = kwargs.get('period', None) - self.suggested_window = kwargs.get('suggested_window', None) - self.expected_value = kwargs.get('expected_value', None) - self.upper_margin = kwargs.get('upper_margin', None) - self.lower_margin = kwargs.get('lower_margin', None) - self.is_anomaly = kwargs.get('is_anomaly', None) - self.is_negative_anomaly = kwargs.get('is_negative_anomaly', None) - self.is_positive_anomaly = kwargs.get('is_positive_anomaly', None) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/last_detect_response_py3.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/last_detect_response_py3.py deleted file mode 100644 index e525762dfcfb..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/last_detect_response_py3.py +++ /dev/null @@ -1,84 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class LastDetectResponse(Model): - """LastDetectResponse. - - All required parameters must be populated in order to send to Azure. - - :param period: Required. Frequency extracted from the series, zero means - no recurrent pattern has been found. - :type period: int - :param suggested_window: Required. Suggested input series points needed - for detecting the latest point. - :type suggested_window: int - :param expected_value: Required. Expected value of the latest point. - :type expected_value: float - :param upper_margin: Required. Upper margin of the latest point. - UpperMargin is used to calculate upperBoundary, which equals to - expectedValue + (100 - marginScale)*upperMargin. If the value of latest - point is between upperBoundary and lowerBoundary, it should be treated as - normal value. By adjusting marginScale value, anomaly status of latest - point can be changed. - :type upper_margin: float - :param lower_margin: Required. Lower margin of the latest point. - LowerMargin is used to calculate lowerBoundary, which equals to - expectedValue - (100 - marginScale)*lowerMargin. - :type lower_margin: float - :param is_anomaly: Required. Anomaly status of the latest point, true - means the latest point is an anomaly either in negative direction or - positive direction. - :type is_anomaly: bool - :param is_negative_anomaly: Required. Anomaly status in negative direction - of the latest point. True means the latest point is an anomaly and its - real value is smaller than the expected one. - :type is_negative_anomaly: bool - :param is_positive_anomaly: Required. Anomaly status in positive direction - of the latest point. True means the latest point is an anomaly and its - real value is larger than the expected one. - :type is_positive_anomaly: bool - """ - - _validation = { - 'period': {'required': True}, - 'suggested_window': {'required': True}, - 'expected_value': {'required': True}, - 'upper_margin': {'required': True}, - 'lower_margin': {'required': True}, - 'is_anomaly': {'required': True}, - 'is_negative_anomaly': {'required': True}, - 'is_positive_anomaly': {'required': True}, - } - - _attribute_map = { - 'period': {'key': 'period', 'type': 'int'}, - 'suggested_window': {'key': 'suggestedWindow', 'type': 'int'}, - 'expected_value': {'key': 'expectedValue', 'type': 'float'}, - 'upper_margin': {'key': 'upperMargin', 'type': 'float'}, - 'lower_margin': {'key': 'lowerMargin', 'type': 'float'}, - 'is_anomaly': {'key': 'isAnomaly', 'type': 'bool'}, - 'is_negative_anomaly': {'key': 'isNegativeAnomaly', 'type': 'bool'}, - 'is_positive_anomaly': {'key': 'isPositiveAnomaly', 'type': 'bool'}, - } - - def __init__(self, *, period: int, suggested_window: int, expected_value: float, upper_margin: float, lower_margin: float, is_anomaly: bool, is_negative_anomaly: bool, is_positive_anomaly: bool, **kwargs) -> None: - super(LastDetectResponse, self).__init__(**kwargs) - self.period = period - self.suggested_window = suggested_window - self.expected_value = expected_value - self.upper_margin = upper_margin - self.lower_margin = lower_margin - self.is_anomaly = is_anomaly - self.is_negative_anomaly = is_negative_anomaly - self.is_positive_anomaly = is_positive_anomaly diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/point.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/point.py deleted file mode 100644 index 828ad19a112b..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/point.py +++ /dev/null @@ -1,39 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Point(Model): - """Point. - - All required parameters must be populated in order to send to Azure. - - :param timestamp: Required. Timestamp of a data point (ISO8601 format). - :type timestamp: datetime - :param value: Required. The measurement of that point, should be float. - :type value: float - """ - - _validation = { - 'timestamp': {'required': True}, - 'value': {'required': True}, - } - - _attribute_map = { - 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, - 'value': {'key': 'value', 'type': 'float'}, - } - - def __init__(self, **kwargs): - super(Point, self).__init__(**kwargs) - self.timestamp = kwargs.get('timestamp', None) - self.value = kwargs.get('value', None) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/point_py3.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/point_py3.py deleted file mode 100644 index d0196e275de8..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/point_py3.py +++ /dev/null @@ -1,39 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Point(Model): - """Point. - - All required parameters must be populated in order to send to Azure. - - :param timestamp: Required. Timestamp of a data point (ISO8601 format). - :type timestamp: datetime - :param value: Required. The measurement of that point, should be float. - :type value: float - """ - - _validation = { - 'timestamp': {'required': True}, - 'value': {'required': True}, - } - - _attribute_map = { - 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, - 'value': {'key': 'value', 'type': 'float'}, - } - - def __init__(self, *, timestamp, value: float, **kwargs) -> None: - super(Point, self).__init__(**kwargs) - self.timestamp = timestamp - self.value = value diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/request.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/request.py deleted file mode 100644 index c4a18346b05c..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/request.py +++ /dev/null @@ -1,69 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Request(Model): - """Request. - - All required parameters must be populated in order to send to Azure. - - :param series: Required. Time series data points. Points should be sorted - by timestamp in ascending order to match the anomaly detection result. If - the data is not sorted correctly or there is duplicated timestamp, the API - will not work. In such case, an error message will be returned. - :type series: list[~azure.cognitiveservices.anomalydetector.models.Point] - :param granularity: Required. Can only be one of yearly, monthly, weekly, - daily, hourly or minutely. Granularity is used for verify whether input - series is valid. Possible values include: 'yearly', 'monthly', 'weekly', - 'daily', 'hourly', 'minutely' - :type granularity: str or - ~azure.cognitiveservices.anomalydetector.models.Granularity - :param custom_interval: Custom Interval is used to set non-standard time - interval, for example, if the series is 5 minutes, request can be set as - {"granularity":"minutely", "customInterval":5}. - :type custom_interval: int - :param period: Optional argument, periodic value of a time series. If the - value is null or does not present, the API will determine the period - automatically. - :type period: int - :param max_anomaly_ratio: Optional argument, advanced model parameter, max - anomaly ratio in a time series. - :type max_anomaly_ratio: float - :param sensitivity: Optional argument, advanced model parameter, between - 0-99, the lower the value is, the larger the margin value will be which - means less anomalies will be accepted. - :type sensitivity: int - """ - - _validation = { - 'series': {'required': True}, - 'granularity': {'required': True}, - } - - _attribute_map = { - 'series': {'key': 'series', 'type': '[Point]'}, - 'granularity': {'key': 'granularity', 'type': 'Granularity'}, - 'custom_interval': {'key': 'customInterval', 'type': 'int'}, - 'period': {'key': 'period', 'type': 'int'}, - 'max_anomaly_ratio': {'key': 'maxAnomalyRatio', 'type': 'float'}, - 'sensitivity': {'key': 'sensitivity', 'type': 'int'}, - } - - def __init__(self, **kwargs): - super(Request, self).__init__(**kwargs) - self.series = kwargs.get('series', None) - self.granularity = kwargs.get('granularity', None) - self.custom_interval = kwargs.get('custom_interval', None) - self.period = kwargs.get('period', None) - self.max_anomaly_ratio = kwargs.get('max_anomaly_ratio', None) - self.sensitivity = kwargs.get('sensitivity', None) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/request_py3.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/request_py3.py deleted file mode 100644 index 908313b3f87b..000000000000 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/models/request_py3.py +++ /dev/null @@ -1,69 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Request(Model): - """Request. - - All required parameters must be populated in order to send to Azure. - - :param series: Required. Time series data points. Points should be sorted - by timestamp in ascending order to match the anomaly detection result. If - the data is not sorted correctly or there is duplicated timestamp, the API - will not work. In such case, an error message will be returned. - :type series: list[~azure.cognitiveservices.anomalydetector.models.Point] - :param granularity: Required. Can only be one of yearly, monthly, weekly, - daily, hourly or minutely. Granularity is used for verify whether input - series is valid. Possible values include: 'yearly', 'monthly', 'weekly', - 'daily', 'hourly', 'minutely' - :type granularity: str or - ~azure.cognitiveservices.anomalydetector.models.Granularity - :param custom_interval: Custom Interval is used to set non-standard time - interval, for example, if the series is 5 minutes, request can be set as - {"granularity":"minutely", "customInterval":5}. - :type custom_interval: int - :param period: Optional argument, periodic value of a time series. If the - value is null or does not present, the API will determine the period - automatically. - :type period: int - :param max_anomaly_ratio: Optional argument, advanced model parameter, max - anomaly ratio in a time series. - :type max_anomaly_ratio: float - :param sensitivity: Optional argument, advanced model parameter, between - 0-99, the lower the value is, the larger the margin value will be which - means less anomalies will be accepted. - :type sensitivity: int - """ - - _validation = { - 'series': {'required': True}, - 'granularity': {'required': True}, - } - - _attribute_map = { - 'series': {'key': 'series', 'type': '[Point]'}, - 'granularity': {'key': 'granularity', 'type': 'Granularity'}, - 'custom_interval': {'key': 'customInterval', 'type': 'int'}, - 'period': {'key': 'period', 'type': 'int'}, - 'max_anomaly_ratio': {'key': 'maxAnomalyRatio', 'type': 'float'}, - 'sensitivity': {'key': 'sensitivity', 'type': 'int'}, - } - - def __init__(self, *, series, granularity, custom_interval: int=None, period: int=None, max_anomaly_ratio: float=None, sensitivity: int=None, **kwargs) -> None: - super(Request, self).__init__(**kwargs) - self.series = series - self.granularity = granularity - self.custom_interval = custom_interval - self.period = period - self.max_anomaly_ratio = max_anomaly_ratio - self.sensitivity = sensitivity diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/operations/__init__.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/operations/__init__.py new file mode 100644 index 000000000000..ed756e4e57b2 --- /dev/null +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/operations/__init__.py @@ -0,0 +1,16 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._anomaly_detector_client_operations import AnomalyDetectorClientOperationsMixin + +__all__ = [ + 'AnomalyDetectorClientOperationsMixin', +] diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/anomaly_detector_client.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/operations/_anomaly_detector_client_operations.py similarity index 69% rename from sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/anomaly_detector_client.py rename to sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/operations/_anomaly_detector_client_operations.py index 6383d31e16d9..b8187294ac19 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/anomaly_detector_client.py +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/operations/_anomaly_detector_client_operations.py @@ -9,68 +9,11 @@ # regenerated. # -------------------------------------------------------------------------- -from msrest.service_client import SDKClient -from msrest import Configuration, Serializer, Deserializer -from .version import VERSION from msrest.pipeline import ClientRawResponse -from . import models +from .. import models -class AnomalyDetectorClientConfiguration(Configuration): - """Configuration for AnomalyDetectorClient - Note that all parameters used to create this instance are saved as instance - attributes. - - :param endpoint: Supported Cognitive Services endpoints (protocol and - hostname, for example: https://westus2.api.cognitive.microsoft.com). - :type endpoint: str - :param credentials: Subscription credentials which uniquely identify - client subscription. - :type credentials: None - """ - - def __init__( - self, endpoint, credentials): - - if endpoint is None: - raise ValueError("Parameter 'endpoint' must not be None.") - if credentials is None: - raise ValueError("Parameter 'credentials' must not be None.") - base_url = '{Endpoint}/anomalydetector/v1.0' - - super(AnomalyDetectorClientConfiguration, self).__init__(base_url) - - self.add_user_agent('azure-cognitiveservices-anomalydetector/{}'.format(VERSION)) - - self.endpoint = endpoint - self.credentials = credentials - - -class AnomalyDetectorClient(SDKClient): - """The Anomaly Detector API detects anomalies automatically in time series data. It supports two functionalities, one is for detecting the whole series with model trained by the timeseries, another is detecting last point with model trained by points before. By using this service, business customers can discover incidents and establish a logic flow for root cause analysis. - - :ivar config: Configuration for client. - :vartype config: AnomalyDetectorClientConfiguration - - :param endpoint: Supported Cognitive Services endpoints (protocol and - hostname, for example: https://westus2.api.cognitive.microsoft.com). - :type endpoint: str - :param credentials: Subscription credentials which uniquely identify - client subscription. - :type credentials: None - """ - - def __init__( - self, endpoint, credentials): - - self.config = AnomalyDetectorClientConfiguration(endpoint, credentials) - super(AnomalyDetectorClient, self).__init__(self.config.credentials, self.config) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self.api_version = '1.0' - self._serialize = Serializer(client_models) - self._deserialize = Deserializer(client_models) - +class AnomalyDetectorClientOperationsMixin(object): def entire_detect( self, body, custom_headers=None, raw=False, **operation_config): @@ -124,7 +67,6 @@ def entire_detect( raise models.APIErrorException(self._deserialize, response) deserialized = None - if response.status_code == 200: deserialized = self._deserialize('EntireDetectResponse', response) @@ -187,7 +129,6 @@ def last_detect( raise models.APIErrorException(self._deserialize, response) deserialized = None - if response.status_code == 200: deserialized = self._deserialize('LastDetectResponse', response) @@ -197,3 +138,63 @@ def last_detect( return deserialized last_detect.metadata = {'url': '/timeseries/last/detect'} + + def change_point_detect( + self, body, custom_headers=None, raw=False, **operation_config): + """Detect change point for the entire series. + + Evaluate change point score of every series point. + + :param body: Time series points and granularity is needed. Advanced + model parameters can also be set in the request if needed. + :type body: + ~azure.cognitiveservices.anomalydetector.models.ChangePointDetectRequest + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ChangePointDetectResponse or ClientRawResponse if raw=true + :rtype: + ~azure.cognitiveservices.anomalydetector.models.ChangePointDetectResponse + or ~msrest.pipeline.ClientRawResponse + :raises: + :class:`APIErrorException` + """ + # Construct URL + url = self.change_point_detect.metadata['url'] + path_format_arguments = { + 'Endpoint': self._serialize.url("self.config.endpoint", self.config.endpoint, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if custom_headers: + header_parameters.update(custom_headers) + + # Construct body + body_content = self._serialize.body(body, 'ChangePointDetectRequest') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.APIErrorException(self._deserialize, response) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ChangePointDetectResponse', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + change_point_detect.metadata = {'url': '/timeseries/changePoint/detect'} diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/version.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/version.py index 9bd1dfac7ecb..3e682bbd5fb1 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/version.py +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector/version.py @@ -9,5 +9,5 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "0.2.0" +VERSION = "0.3.0" diff --git a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/setup.py b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/setup.py index c385fc97b96a..4d86e35869b2 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/setup.py +++ b/sdk/cognitiveservices/azure-cognitiveservices-anomalydetector/setup.py @@ -36,7 +36,9 @@ pass # Version extraction inspired from 'requests' -with open(os.path.join(package_folder_path, 'version.py'), 'r') as fd: +with open(os.path.join(package_folder_path, 'version.py') + if os.path.exists(os.path.join(package_folder_path, 'version.py')) + else os.path.join(package_folder_path, '_version.py'), 'r') as fd: version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1) @@ -64,10 +66,10 @@ 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'License :: OSI Approved :: MIT License', ], zip_safe=False, diff --git a/sdk/cognitiveservices/azure-cognitiveservices-formrecognizer/README.md b/sdk/cognitiveservices/azure-cognitiveservices-formrecognizer/README.md index d760291ae1d6..4cc6114d9efc 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-formrecognizer/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-formrecognizer/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-knowledge-nspkg/README.md b/sdk/cognitiveservices/azure-cognitiveservices-knowledge-nspkg/README.md index 567bfab9efc6..c4335caea64c 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-knowledge-nspkg/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-knowledge-nspkg/README.md @@ -15,6 +15,6 @@ It provides the necessary files for other packages to extend the azure.cognitiveservices.knowledge namespace. If you are looking to install the Azure client libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ![image](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-cognitiveservices-knowledge-nspkg%2FREADME.png) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-knowledge-qnamaker/README.md b/sdk/cognitiveservices/azure-cognitiveservices-knowledge-qnamaker/README.md index e35ac41271bf..5ae6320a0d52 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-knowledge-qnamaker/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-knowledge-qnamaker/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure QnA Maker Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-language-luis/README.md b/sdk/cognitiveservices/azure-cognitiveservices-language-luis/README.md index bf537d8e7c08..819d05365080 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-language-luis/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-language-luis/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Cognitive Services LUIS Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-language-nspkg/README.md b/sdk/cognitiveservices/azure-cognitiveservices-language-nspkg/README.md index ea384708d02a..bb5e6747343b 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-language-nspkg/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-language-nspkg/README.md @@ -15,6 +15,6 @@ It provides the necessary files for other packages to extend the azure.cognitiveservices.language namespace. If you are looking to install the Azure client libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ![image](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-cognitiveservices-language-nspkg%2FREADME.png) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-language-spellcheck/README.md b/sdk/cognitiveservices/azure-cognitiveservices-language-spellcheck/README.md index 05a3709c88ae..0bf9fed34eee 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-language-spellcheck/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-language-spellcheck/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-language-textanalytics/README.md b/sdk/cognitiveservices/azure-cognitiveservices-language-textanalytics/README.md index 634089efc1cf..67b7536c73e3 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-language-textanalytics/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-language-textanalytics/README.md @@ -10,7 +10,7 @@ Library. This package has been tested with Python 2.7, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-nspkg/README.md b/sdk/cognitiveservices/azure-cognitiveservices-nspkg/README.md index b79663e4fcad..6d46064c9688 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-nspkg/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-nspkg/README.md @@ -14,6 +14,6 @@ It provides the necessary files for other packages to extend the azure.cognitiveservices namespace. If you are looking to install the Azure client libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ![image](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-cognitiveservices-nspkg%2FREADME.png) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-personalizer/README.md b/sdk/cognitiveservices/azure-cognitiveservices-personalizer/README.md index 5a93cde89472..dfeccb3e63a4 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-personalizer/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-personalizer/README.md @@ -5,7 +5,7 @@ This is the Microsoft Azure Personalizer Client Library. This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## What is Personalizer? @@ -17,7 +17,7 @@ For a more complete set of Azure libraries, see the ## Usage [Quickstart: Personalize client library for -Python](https://docs.microsoft.com/azure/cognitive-services/personalizer/python-quickstart-commandline-feedback-loop) +Python](https://docs.microsoft.com/azure/cognitive-services/personalizer/sdk-learning-loop?pivots=programming-language-python) ## Documentation diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-autosuggest/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-autosuggest/README.md index f467ecae01d1..822fa0431706 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-autosuggest/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-autosuggest/README.md @@ -5,7 +5,7 @@ This is the Microsoft Azure Auto Suggest Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-customimagesearch/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-customimagesearch/README.md index c0d8ca0ea53e..50e3316ad837 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-customimagesearch/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-customimagesearch/README.md @@ -6,7 +6,7 @@ Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-customsearch/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-customsearch/README.md index 5b1a90d12f44..e52d632aa76d 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-customsearch/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-customsearch/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-entitysearch/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-entitysearch/README.md index a2f54b64c616..71b20bfc6375 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-entitysearch/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-entitysearch/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-imagesearch/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-imagesearch/README.md index d04f172c15f1..5b15147b2614 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-imagesearch/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-imagesearch/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-newssearch/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-newssearch/README.md index 6669707245bd..564a19bd824d 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-newssearch/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-newssearch/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-nspkg/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-nspkg/README.md index 5d64f76ab1df..62779f544439 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-nspkg/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-nspkg/README.md @@ -14,6 +14,6 @@ It provides the necessary files for other packages to extend the azure.cognitiveservices.search namespace. If you are looking to install the Azure client libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ![image](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-cognitiveservices-search-nspkg%2FREADME.png) diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-videosearch/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-videosearch/README.md index 0753758a951e..33afe853abb0 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-videosearch/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-videosearch/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-visualsearch/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-visualsearch/README.md index daab410da238..d64ce579c7bc 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-visualsearch/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-visualsearch/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-search-websearch/README.md b/sdk/cognitiveservices/azure-cognitiveservices-search-websearch/README.md index be6690b4af2f..3a6c3c7b2c77 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-search-websearch/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-search-websearch/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-vision-contentmoderator/README.md b/sdk/cognitiveservices/azure-cognitiveservices-vision-contentmoderator/README.md index bbb98fd24181..e3a569e39e53 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-vision-contentmoderator/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-vision-contentmoderator/README.md @@ -6,7 +6,7 @@ Library. This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/CHANGELOG.md b/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/CHANGELOG.md index 1fe9cadd7a7d..9b33a9a08bf2 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/CHANGELOG.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/CHANGELOG.md @@ -117,7 +117,7 @@ This is a stable release of the Cognitive Services Custom Vision SDK. AzureRegion property was dropped in favor of an Endpoint property. If you were previously specifying an AzureRegion value, you should now specify - Endpoint='[https://{AzureRegion}.api.cognitive.microsoft.com](https://%7BAzureRegion%7D.api.cognitive.microsoft.com)' + Endpoint=`https://{AzureRegion}.api.cognitive.microsoft.com` instead. This change ensures better global coverage. - Added ONNX 1.2 as an export option - Added negative tag support. @@ -136,8 +136,7 @@ This is a stable release of the Cognitive Services Custom Vision SDK. **Breaking changes** - Expect many breaking changes. As a preview package, we don't detail, - but updated samples are available at: - + but updated samples are available at:[cognitive-services-python-sdk-samples](https://github.com/Azure-Samples/cognitive-services-python-sdk-samples) **Features** diff --git a/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/README.md b/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/README.md index b8e61c3f0782..f4976f181d40 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Custom Vision Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-vision-face/README.md b/sdk/cognitiveservices/azure-cognitiveservices-vision-face/README.md index 858f4fa58c79..d83c1e02b998 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-vision-face/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-vision-face/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Cognitive Services Face Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/cognitiveservices/azure-cognitiveservices-vision-nspkg/README.md b/sdk/cognitiveservices/azure-cognitiveservices-vision-nspkg/README.md index 14cc389bd3dc..cdc97b885c8e 100644 --- a/sdk/cognitiveservices/azure-cognitiveservices-vision-nspkg/README.md +++ b/sdk/cognitiveservices/azure-cognitiveservices-vision-nspkg/README.md @@ -14,6 +14,6 @@ It provides the necessary files for other packages to extend the azure.cognitiveservices.vision namespace. If you are looking to install the Azure client libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ![image](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-cognitiveservices-vision-nspkg%2FREADME.png) diff --git a/sdk/cognitiveservices/azure-mgmt-cognitiveservices/README.md b/sdk/cognitiveservices/azure-mgmt-cognitiveservices/README.md index 81f5fb518059..990ff66d1d8c 100644 --- a/sdk/cognitiveservices/azure-mgmt-cognitiveservices/README.md +++ b/sdk/cognitiveservices/azure-mgmt-cognitiveservices/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Cognitive Services Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/commerce/azure-mgmt-commerce/README.md b/sdk/commerce/azure-mgmt-commerce/README.md index 671cc26604af..df5163404716 100644 --- a/sdk/commerce/azure-mgmt-commerce/README.md +++ b/sdk/commerce/azure-mgmt-commerce/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/compute/azure-mgmt-compute/README.md b/sdk/compute/azure-mgmt-compute/README.md index 69b7ce951cdb..b3573bed18b2 100644 --- a/sdk/compute/azure-mgmt-compute/README.md +++ b/sdk/compute/azure-mgmt-compute/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Compute Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/compute/azure-mgmt-imagebuilder/README.md b/sdk/compute/azure-mgmt-imagebuilder/README.md index b48052132d49..d07c9b5032ce 100644 --- a/sdk/compute/azure-mgmt-imagebuilder/README.md +++ b/sdk/compute/azure-mgmt-imagebuilder/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Image Builder Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/compute/azure-mgmt-vmwarecloudsimple/README.md b/sdk/compute/azure-mgmt-vmwarecloudsimple/README.md index 000b8bdcbe4f..79322e38ca39 100644 --- a/sdk/compute/azure-mgmt-vmwarecloudsimple/README.md +++ b/sdk/compute/azure-mgmt-vmwarecloudsimple/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/consumption/azure-mgmt-consumption/README.md b/sdk/consumption/azure-mgmt-consumption/README.md index 455474f9e3a0..8f9bf036eb9b 100644 --- a/sdk/consumption/azure-mgmt-consumption/README.md +++ b/sdk/consumption/azure-mgmt-consumption/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/containerinstance/azure-mgmt-containerinstance/README.md b/sdk/containerinstance/azure-mgmt-containerinstance/README.md index 2a31c3badd6a..9ab292c9ef23 100644 --- a/sdk/containerinstance/azure-mgmt-containerinstance/README.md +++ b/sdk/containerinstance/azure-mgmt-containerinstance/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/containerregistry/azure-mgmt-containerregistry/README.md b/sdk/containerregistry/azure-mgmt-containerregistry/README.md index 059fa6c10b93..aa5e8d04021a 100644 --- a/sdk/containerregistry/azure-mgmt-containerregistry/README.md +++ b/sdk/containerregistry/azure-mgmt-containerregistry/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Container Registry Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/containerservice/azure-mgmt-containerservice/README.md b/sdk/containerservice/azure-mgmt-containerservice/README.md index 34717104b758..1bc232cc7a5b 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/README.md +++ b/sdk/containerservice/azure-mgmt-containerservice/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Container Service Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/core/azure-core/azure/core/pipeline/_base.py b/sdk/core/azure-core/azure/core/pipeline/_base.py index 905111135eaf..b67721dec26f 100644 --- a/sdk/core/azure-core/azure/core/pipeline/_base.py +++ b/sdk/core/azure-core/azure/core/pipeline/_base.py @@ -176,7 +176,7 @@ def prepare_requests(req): with concurrent.futures.ThreadPoolExecutor() as executor: # List comprehension to raise exceptions if happened - [ # pylint: disable=expression-not-assigned + [ # pylint: disable=expression-not-assigned, unnecessary-comprehension _ for _ in executor.map(prepare_requests, requests) ] diff --git a/sdk/core/azure-core/azure/core/pipeline/policies/_authentication_async.py b/sdk/core/azure-core/azure/core/pipeline/policies/_authentication_async.py index 05888359a154..b300d15e5e78 100644 --- a/sdk/core/azure-core/azure/core/pipeline/policies/_authentication_async.py +++ b/sdk/core/azure-core/azure/core/pipeline/policies/_authentication_async.py @@ -23,7 +23,7 @@ def __init__(self, credential, *scopes, **kwargs): super().__init__(credential, *scopes, **kwargs) self._lock = asyncio.Lock() - async def on_request(self, request: PipelineRequest): + async def on_request(self, request: PipelineRequest): # pylint:disable=invalid-overridden-method """Adds a bearer token Authorization header to request and sends request to next policy. :param request: The pipeline request object to be modified. diff --git a/sdk/core/azure-core/azure/core/pipeline/policies/_redirect_async.py b/sdk/core/azure-core/azure/core/pipeline/policies/_redirect_async.py index f9d688bdd4c3..43f52aa0af3b 100644 --- a/sdk/core/azure-core/azure/core/pipeline/policies/_redirect_async.py +++ b/sdk/core/azure-core/azure/core/pipeline/policies/_redirect_async.py @@ -48,7 +48,7 @@ class AsyncRedirectPolicy(RedirectPolicy, AsyncHTTPPolicy): :caption: Configuring an async redirect policy. """ - async def send(self, request): + async def send(self, request): # pylint:disable=invalid-overridden-method """Sends the PipelineRequest object to the next policy. Uses redirect settings to send the request to redirect endpoint if necessary. diff --git a/sdk/core/azure-core/azure/core/pipeline/policies/_retry_async.py b/sdk/core/azure-core/azure/core/pipeline/policies/_retry_async.py index 6efad6cf1627..28436a5fd738 100644 --- a/sdk/core/azure-core/azure/core/pipeline/policies/_retry_async.py +++ b/sdk/core/azure-core/azure/core/pipeline/policies/_retry_async.py @@ -80,7 +80,7 @@ class AsyncRetryPolicy(RetryPolicy, AsyncHTTPPolicy): :caption: Configuring an async retry policy. """ - async def _sleep_for_retry(self, response, transport): + async def _sleep_for_retry(self, response, transport): # pylint:disable=invalid-overridden-method """Sleep based on the Retry-After response header value. :param response: The PipelineResponse object. @@ -93,7 +93,7 @@ async def _sleep_for_retry(self, response, transport): return True return False - async def _sleep_backoff(self, settings, transport): + async def _sleep_backoff(self, settings, transport): # pylint:disable=invalid-overridden-method """Sleep using exponential backoff. Immediately returns if backoff is 0. :param dict settings: The retry settings. @@ -104,7 +104,7 @@ async def _sleep_backoff(self, settings, transport): return await transport.sleep(backoff) - async def sleep(self, settings, transport, response=None): + async def sleep(self, settings, transport, response=None): # pylint:disable=invalid-overridden-method """Sleep between retry attempts. This method will respect a server's ``Retry-After`` response header @@ -123,7 +123,7 @@ async def sleep(self, settings, transport, response=None): return await self._sleep_backoff(settings, transport) - async def send(self, request): + async def send(self, request): # pylint:disable=invalid-overridden-method """Uses the configured retry policy to send the request to the next policy in the pipeline. :param request: The PipelineRequest object diff --git a/sdk/core/azure-core/azure/core/pipeline/transport/_base.py b/sdk/core/azure-core/azure/core/pipeline/transport/_base.py index 0ec0275e47bf..eee08d7fa859 100644 --- a/sdk/core/azure-core/azure/core/pipeline/transport/_base.py +++ b/sdk/core/azure-core/azure/core/pipeline/transport/_base.py @@ -626,7 +626,7 @@ def parse_responses(response): with concurrent.futures.ThreadPoolExecutor() as executor: # List comprehension to raise exceptions if happened - [ # pylint: disable=expression-not-assigned + [ # pylint: disable=expression-not-assigned, unnecessary-comprehension _ for _ in executor.map(parse_responses, responses) ] diff --git a/sdk/core/azure-core/azure/core/pipeline/transport/_requests_asyncio.py b/sdk/core/azure-core/azure/core/pipeline/transport/_requests_asyncio.py index 4b3494c44931..d82d3ab1f3da 100644 --- a/sdk/core/azure-core/azure/core/pipeline/transport/_requests_asyncio.py +++ b/sdk/core/azure-core/azure/core/pipeline/transport/_requests_asyncio.py @@ -79,10 +79,10 @@ async def __aenter__(self): async def __aexit__(self, *exc_details): # pylint: disable=arguments-differ return super(AsyncioRequestsTransport, self).__exit__() - async def sleep(self, duration): + async def sleep(self, duration): # pylint:disable=invalid-overridden-method await asyncio.sleep(duration) - async def send(self, request: HttpRequest, **kwargs: Any) -> AsyncHttpResponse: # type: ignore + async def send(self, request: HttpRequest, **kwargs: Any) -> AsyncHttpResponse: # type: ignore # pylint:disable=invalid-overridden-method """Send the request using this HTTP sender. :param request: The HttpRequest diff --git a/sdk/core/azure-core/azure/core/pipeline/transport/_requests_trio.py b/sdk/core/azure-core/azure/core/pipeline/transport/_requests_trio.py index 67926d70420d..419a8c5d2c02 100644 --- a/sdk/core/azure-core/azure/core/pipeline/transport/_requests_trio.py +++ b/sdk/core/azure-core/azure/core/pipeline/transport/_requests_trio.py @@ -150,10 +150,10 @@ async def __aenter__(self): async def __aexit__(self, *exc_details): # pylint: disable=arguments-differ return super(TrioRequestsTransport, self).__exit__() - async def sleep(self, duration): + async def sleep(self, duration): # pylint:disable=invalid-overridden-method await trio.sleep(duration) - async def send(self, request: HttpRequest, **kwargs: Any) -> AsyncHttpResponse: # type: ignore + async def send(self, request: HttpRequest, **kwargs: Any) -> AsyncHttpResponse: # type: ignore # pylint:disable=invalid-overridden-method """Send the request using this HTTP sender. :param request: The HttpRequest diff --git a/sdk/core/azure-core/azure/core/polling/_async_poller.py b/sdk/core/azure-core/azure/core/polling/_async_poller.py index 935dc455987e..8c4a9b7567c6 100644 --- a/sdk/core/azure-core/azure/core/polling/_async_poller.py +++ b/sdk/core/azure-core/azure/core/polling/_async_poller.py @@ -69,7 +69,7 @@ def from_continuation_token(cls, continuation_token: str, **kwargs) -> Tuple[Any class AsyncNoPolling(_NoPolling): """An empty async poller that returns the deserialized initial response. """ - async def run(self): + async def run(self): # pylint:disable=invalid-overridden-method """Empty run, no polling. Just override initial run to add "async" """ diff --git a/sdk/core/azure-core/azure/core/polling/async_base_polling.py b/sdk/core/azure-core/azure/core/polling/async_base_polling.py index d8676b0e6634..c62ea4c00fa4 100644 --- a/sdk/core/azure-core/azure/core/polling/async_base_polling.py +++ b/sdk/core/azure-core/azure/core/polling/async_base_polling.py @@ -40,7 +40,7 @@ class AsyncLROBasePolling(LROBasePolling): """A subclass or LROBasePolling that redefine "run" as async. """ - async def run(self): + async def run(self): # pylint:disable=invalid-overridden-method try: await self._poll() except BadStatus as err: @@ -62,7 +62,7 @@ async def run(self): response=self._pipeline_response.http_response, error=err ) - async def _poll(self): + async def _poll(self): # pylint:disable=invalid-overridden-method """Poll status of operation so long as operation is incomplete and we have an endpoint to query. @@ -85,17 +85,17 @@ async def _poll(self): self._pipeline_response = await self.request_status(final_get_url) _raise_if_bad_http_status_and_method(self._pipeline_response.http_response) - async def _sleep(self, delay): + async def _sleep(self, delay): # pylint:disable=invalid-overridden-method await self._transport.sleep(delay) - async def _delay(self): + async def _delay(self): # pylint:disable=invalid-overridden-method """Check for a 'retry-after' header to set timeout, otherwise use configured timeout. """ delay = self._extract_delay() await self._sleep(delay) - async def update_status(self): + async def update_status(self): # pylint:disable=invalid-overridden-method """Update the current status of the LRO. """ self._pipeline_response = await self.request_status( @@ -104,7 +104,7 @@ async def update_status(self): _raise_if_bad_http_status_and_method(self._pipeline_response.http_response) self._status = self._operation.get_status(self._pipeline_response) - async def request_status(self, status_link): + async def request_status(self, status_link): # pylint:disable=invalid-overridden-method """Do a simple GET to this status link. This method re-inject 'x-ms-client-request-id'. diff --git a/sdk/core/azure-mgmt-core/azure/mgmt/core/policies/_base_async.py b/sdk/core/azure-mgmt-core/azure/mgmt/core/policies/_base_async.py index 90de3ea028d5..1d12e480049b 100644 --- a/sdk/core/azure-mgmt-core/azure/mgmt/core/policies/_base_async.py +++ b/sdk/core/azure-mgmt-core/azure/mgmt/core/policies/_base_async.py @@ -42,7 +42,7 @@ class AsyncARMAutoResourceProviderRegistrationPolicy( """Auto register an ARM resource provider if not done yet. """ - async def send(self, request: PipelineRequest): + async def send(self, request: PipelineRequest): # pylint: disable=invalid-overridden-method http_request = request.http_request response = await self.next.send(request) if response.http_response.status_code == 409: diff --git a/sdk/core/azure-mgmt-datalake-nspkg/README.md b/sdk/core/azure-mgmt-datalake-nspkg/README.md index e6e7262d21a2..630dbb80723b 100644 --- a/sdk/core/azure-mgmt-datalake-nspkg/README.md +++ b/sdk/core/azure-mgmt-datalake-nspkg/README.md @@ -10,7 +10,7 @@ To avoid issues with package servers that does not support `python_requires`, a It provides the necessary files for other packages to extend the azure.mgmt.datalake namespace. If you are looking to install the Azure client libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-mgmt-datalake-nspkg%2FREADME.png) diff --git a/sdk/core/azure-mgmt-nspkg/README.md b/sdk/core/azure-mgmt-nspkg/README.md index 94656e90f433..efe943522fff 100644 --- a/sdk/core/azure-mgmt-nspkg/README.md +++ b/sdk/core/azure-mgmt-nspkg/README.md @@ -10,7 +10,7 @@ To avoid issues with package servers that does not support `python_requires`, a It provides the necessary files for other packages to extend the azure.mgmt namespace. If you are looking to install the Azure client libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-mgmt-nspkg%2FREADME.png) diff --git a/sdk/core/azure-nspkg/README.md b/sdk/core/azure-nspkg/README.md index d42e2ddfa929..e560d8b95da0 100644 --- a/sdk/core/azure-nspkg/README.md +++ b/sdk/core/azure-nspkg/README.md @@ -10,7 +10,7 @@ To avoid issues with package servers that does not support `python_requires`, a It provides the necessary files for other packages to extend the azure namespace. If you are looking to install the Azure client libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-nspkg%2FREADME.png) diff --git a/sdk/core/azure-servicemanagement-legacy/README.md b/sdk/core/azure-servicemanagement-legacy/README.md index 7b35f3f7e68a..bb3a8445abf2 100644 --- a/sdk/core/azure-servicemanagement-legacy/README.md +++ b/sdk/core/azure-servicemanagement-legacy/README.md @@ -6,7 +6,7 @@ All packages in this bundle have been tested with Python 2.7, 3.3, 3.4 and 3.5. For the newer Azure Resource Management (ARM) libraries, see [azure-mgmt](https://pypi.python.org/pypi/azure-mgmt). -For a more complete set of Azure libraries, see the [azure](https://pypi.python.org/pypi/azure) bundle package. +For a more complete set of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Compatibility diff --git a/sdk/core/azure/CHANGELOG.md b/sdk/core/azure/CHANGELOG.md index 1a94900db0cd..4295ce1e8de3 100644 --- a/sdk/core/azure/CHANGELOG.md +++ b/sdk/core/azure/CHANGELOG.md @@ -85,9 +85,7 @@ The complete list of packages installed is: - [azure-mgmt-trafficmanager v0.30.x](https://pypi.python.org/pypi/azure-mgmt-trafficmanager/0.30.0) - [azure-mgmt-web v0.32.x](https://pypi.python.org/pypi/azure-mgmt-web/0.32.0) -More packages are available, but they are in preview with not enough tests currently and are not included in this bundle. More details here: -http://azure-sdk-for-python.readthedocs.io/en/latest/installation.html - +More packages are available, but they are in preview with not enough tests currently and are not included in this bundle. ## 2016-08-30 Version 2.0.0rc6 / 0.30.0rc6 @@ -507,8 +505,6 @@ version before installing the latest release. * Azure Storage has moved. https://github.com/Azure/azure-storage-python - http://azure-storage.readthedocs.org/en/latest/ - **Bugfixes** * #437 Make delete_storage_account return async request id @@ -611,9 +607,6 @@ easy production AND consumption of SAS for blob, queue and table storage. BlobService/QueueService/TableService with account_name only (no account_key or sas_token) - See http://azure-sdk-for-python.readthedocs.org/en/latest/storage.html for - more details on using SAS with Azure Storage. - **Other changes** * Create/list/delete job functionality added to SchedulerManagementService @@ -670,8 +663,6 @@ The other changes in this release are: your azure publish settings file * Ability to adjust the global http timeout * Service bus event hub support (create/update/delete hubs + send events) -* Documentation for API Reference is now available at - http://azure-sdk-for-python.readthedocs.org/en/documentation/index.html **Bugfixes** diff --git a/sdk/cosmos/azure-cosmos/CHANGELOG.md b/sdk/cosmos/azure-cosmos/CHANGELOG.md index 090a2f07f8a0..d25e3b97934b 100644 --- a/sdk/cosmos/azure-cosmos/CHANGELOG.md +++ b/sdk/cosmos/azure-cosmos/CHANGELOG.md @@ -1,12 +1,16 @@ ## 4.0.1 (Unreleased) - Added deprecation warning for "lazy" indexing mode. The backend no longer allows creating containers with this mode and will set them to consistent instead. -- Fix for bug where options headers were not added to upsert_item function. Issue #11791 - thank you @aalapatirvbd. -- Fixed error raised when a non string ID is used in an item. It now raises TypeError rather than AttributeError. Issue #11793 - thank you @Rabbit994. -** Bug fixes ** +**New features** +- Added the ability to set the analytical storage TTL when creating a new container. + +**Bug fixes** - Fixed support for dicts as inputs for get_client APIs. - Fixed Python 2/3 compatibility in query iterators. +- Fixed type hint error. Issue #12570 - Thanks @sl-sandy. +- Fixed bug where options headers were not added to upsert_item function. Issue #11791 - thank you @aalapatirvbd. +- Fixed error raised when a non string ID is used in an item. It now raises TypeError rather than AttributeError. Issue #11793 - thank you @Rabbit994. ## 4.0.0 (2020-05-20) @@ -246,4 +250,3 @@ Version 4.0.0b1 is the first preview of our efforts to create a user-friendly an - Supports proxy connection - diff --git a/sdk/cosmos/azure-cosmos/azure/cosmos/container.py b/sdk/cosmos/azure-cosmos/azure/cosmos/container.py index f5883c860091..9e1d86f24dca 100644 --- a/sdk/cosmos/azure-cosmos/azure/cosmos/container.py +++ b/sdk/cosmos/azure-cosmos/azure/cosmos/container.py @@ -282,7 +282,7 @@ def query_items_change_feed( def query_items( self, query, # type: str - parameters=None, # type: Optional[List[str]] + parameters=None, # type: Optional[List[Dict[str, object]]] partition_key=None, # type: Optional[Any] enable_cross_partition_query=None, # type: Optional[bool] max_item_count=None, # type: Optional[int] @@ -299,7 +299,9 @@ def query_items( the WHERE clause. :param query: The Azure Cosmos DB SQL query to execute. - :param parameters: Optional array of parameters to the query. Ignored if no query is provided. + :param parameters: Optional array of parameters to the query. + Each parameter is a dict() with 'name' and 'value' keys. + Ignored if no query is provided. :param partition_key: Specifies the partition key value for the item. :param enable_cross_partition_query: Allows sending of more than one request to execute the query in the Azure Cosmos DB service. diff --git a/sdk/cosmos/azure-cosmos/azure/cosmos/database.py b/sdk/cosmos/azure-cosmos/azure/cosmos/database.py index e69ab1f251e7..bd0798128770 100644 --- a/sdk/cosmos/azure-cosmos/azure/cosmos/database.py +++ b/sdk/cosmos/azure-cosmos/azure/cosmos/database.py @@ -177,6 +177,9 @@ def create_container( has changed, and act according to the condition specified by the `match_condition` parameter. :keyword ~azure.core.MatchConditions match_condition: The match condition to use upon the etag. :keyword Callable response_hook: A callable invoked with the response metadata. + :keyword analytical_storage_ttl: Analytical store time to live (TTL) for items in the container. A value of + None leaves analytical storage off and a value of -1 turns analytical storage on with no TTL. Please + note that analytical storage can only be enabled on Synapse Link enabled accounts. :returns: A `ContainerProxy` instance representing the new container. :raises ~azure.cosmos.exceptions.CosmosHttpResponseError: The container creation failed. :rtype: ~azure.cosmos.ContainerProxy @@ -216,6 +219,10 @@ def create_container( if conflict_resolution_policy is not None: definition["conflictResolutionPolicy"] = conflict_resolution_policy + analytical_storage_ttl = kwargs.pop("analytical_storage_ttl", None) + if analytical_storage_ttl is not None: + definition["analyticalStorageTtl"] = analytical_storage_ttl + request_options = build_options(kwargs) response_hook = kwargs.pop('response_hook', None) if populate_query_metrics is not None: @@ -266,11 +273,15 @@ def create_container_if_not_exists( has changed, and act according to the condition specified by the `match_condition` parameter. :keyword ~azure.core.MatchConditions match_condition: The match condition to use upon the etag. :keyword Callable response_hook: A callable invoked with the response metadata. + :keyword analytical_storage_ttl: Analytical store time to live (TTL) for items in the container. A value of + None leaves analytical storage off and a value of -1 turns analytical storage on with no TTL. Please + note that analytical storage can only be enabled on Synapse Link enabled accounts. :returns: A `ContainerProxy` instance representing the container. :raises ~azure.cosmos.exceptions.CosmosHttpResponseError: The container read or creation failed. :rtype: ~azure.cosmos.ContainerProxy """ + analytical_storage_ttl = kwargs.pop("analytical_storage_ttl", None) try: container_proxy = self.get_container_client(id) container_proxy.read( @@ -287,7 +298,8 @@ def create_container_if_not_exists( populate_query_metrics=populate_query_metrics, offer_throughput=offer_throughput, unique_key_policy=unique_key_policy, - conflict_resolution_policy=conflict_resolution_policy + conflict_resolution_policy=conflict_resolution_policy, + analytical_storage_ttl=analytical_storage_ttl ) @distributed_trace diff --git a/sdk/cosmos/azure-cosmos/test/test_crud.py b/sdk/cosmos/azure-cosmos/test/test_crud.py index 977120df66f2..0a1a75cfebc9 100644 --- a/sdk/cosmos/azure-cosmos/test/test_crud.py +++ b/sdk/cosmos/azure-cosmos/test/test_crud.py @@ -2605,6 +2605,71 @@ def test_get_resource_with_dictionary_and_object(self): read_permission = created_user.get_permission(created_permission.properties) self.assertEqual(read_permission.id, created_permission.id) + # Temporarily commenting analytical storage tests until emulator support comes. + # def test_create_container_with_analytical_store_off(self): + # # don't run test, for the time being, if running against the emulator + # if 'localhost' in self.host or '127.0.0.1' in self.host: + # return + + # created_db = self.databaseForTest + # collection_id = 'test_create_container_with_analytical_store_off_' + str(uuid.uuid4()) + # collection_indexing_policy = {'indexingMode': 'consistent'} + # created_recorder = RecordDiagnostics() + # created_collection = created_db.create_container(id=collection_id, + # indexing_policy=collection_indexing_policy, + # partition_key=PartitionKey(path="/pk", kind="Hash"), + # response_hook=created_recorder) + # properties = created_collection.read() + # ttl_key = "analyticalStorageTtl" + # self.assertTrue(ttl_key not in properties or properties[ttl_key] == None) + + # def test_create_container_with_analytical_store_on(self): + # # don't run test, for the time being, if running against the emulator + # if 'localhost' in self.host or '127.0.0.1' in self.host: + # return + + # created_db = self.databaseForTest + # collection_id = 'test_create_container_with_analytical_store_on_' + str(uuid.uuid4()) + # collection_indexing_policy = {'indexingMode': 'consistent'} + # created_recorder = RecordDiagnostics() + # created_collection = created_db.create_container(id=collection_id, + # analytical_storage_ttl=-1, + # indexing_policy=collection_indexing_policy, + # partition_key=PartitionKey(path="/pk", kind="Hash"), + # response_hook=created_recorder) + # properties = created_collection.read() + # ttl_key = "analyticalStorageTtl" + # self.assertTrue(ttl_key in properties and properties[ttl_key] == -1) + + # def test_create_container_if_not_exists_with_analytical_store_on(self): + # # don't run test, for the time being, if running against the emulator + # if 'localhost' in self.host or '127.0.0.1' in self.host: + # return + + # # first, try when we know the container doesn't exist. + # created_db = self.databaseForTest + # collection_id = 'test_create_container_if_not_exists_with_analytical_store_on_' + str(uuid.uuid4()) + # collection_indexing_policy = {'indexingMode': 'consistent'} + # created_recorder = RecordDiagnostics() + # created_collection = created_db.create_container_if_not_exists(id=collection_id, + # analytical_storage_ttl=-1, + # indexing_policy=collection_indexing_policy, + # partition_key=PartitionKey(path="/pk", kind="Hash"), + # response_hook=created_recorder) + # properties = created_collection.read() + # ttl_key = "analyticalStorageTtl" + # self.assertTrue(ttl_key in properties and properties[ttl_key] == -1) + + # # next, try when we know the container DOES exist. This way both code paths are tested. + # created_collection = created_db.create_container_if_not_exists(id=collection_id, + # analytical_storage_ttl=-1, + # indexing_policy=collection_indexing_policy, + # partition_key=PartitionKey(path="/pk", kind="Hash"), + # response_hook=created_recorder) + # properties = created_collection.read() + # ttl_key = "analyticalStorageTtl" + # self.assertTrue(ttl_key in properties and properties[ttl_key] == -1) + def _MockExecuteFunction(self, function, *args, **kwargs): self.last_headers.append(args[4].headers[HttpHeaders.PartitionKey] if HttpHeaders.PartitionKey in args[4].headers else '') diff --git a/sdk/cosmos/azure-cosmos/tox.ini b/sdk/cosmos/azure-cosmos/tox.ini index 4de20e13f2b5..5c1604df1cf3 100644 --- a/sdk/cosmos/azure-cosmos/tox.ini +++ b/sdk/cosmos/azure-cosmos/tox.ini @@ -7,7 +7,8 @@ envlist = py27, py34 [base] -deps = pytest, -rdev_requirements.txt +deps = pytest + -rdev_requirements.txt [pytest] python_files=test/**.py diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/README.md b/sdk/cosmos/azure-mgmt-cosmosdb/README.md index 9933f9f294c2..0db73b9494c8 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/README.md +++ b/sdk/cosmos/azure-mgmt-cosmosdb/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Cosmos DB Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/cosmos/azure-mgmt-documentdb/README.md b/sdk/cosmos/azure-mgmt-documentdb/README.md index 1ff01ec8f231..dda32cacf036 100644 --- a/sdk/cosmos/azure-mgmt-documentdb/README.md +++ b/sdk/cosmos/azure-mgmt-documentdb/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Compatibility @@ -32,12 +32,6 @@ If you see azure==0.11.0 (or any version below 1.0), uninstall it first: pip uninstall azure ``` -## Usage - -For code examples, see [DocumentDB -Management](https://azure-sdk-for-python.readthedocs.org/en/latest/sample_azure-mgmt-documentdb.html) -on readthedocs.org. - ## Provide Feedback If you encounter any bugs or have suggestions, please file an issue in diff --git a/sdk/costmanagement/azure-mgmt-costmanagement/README.md b/sdk/costmanagement/azure-mgmt-costmanagement/README.md index 8e49cdc26b15..3cc377aea090 100644 --- a/sdk/costmanagement/azure-mgmt-costmanagement/README.md +++ b/sdk/costmanagement/azure-mgmt-costmanagement/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/customproviders/azure-mgmt-customproviders/README.md b/sdk/customproviders/azure-mgmt-customproviders/README.md index 93410f61ef1a..87a6b3aac1a8 100644 --- a/sdk/customproviders/azure-mgmt-customproviders/README.md +++ b/sdk/customproviders/azure-mgmt-customproviders/README.md @@ -2,14 +2,7 @@ This is the Microsoft Azure CustomProviders Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/sdk) - - -# Usage - -For code examples, see [CustomProviders Management](https://docs.microsoft.com/python/api/overview/azure/customproviders) -on docs.microsoft.com. - +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Provide Feedback diff --git a/sdk/databox/azure-mgmt-databox/README.md b/sdk/databox/azure-mgmt-databox/README.md index 0e1793fdab92..764eec3842cc 100644 --- a/sdk/databox/azure-mgmt-databox/README.md +++ b/sdk/databox/azure-mgmt-databox/README.md @@ -2,14 +2,7 @@ This is the Microsoft Azure DataBox Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/sdk) - - -# Usage - -For code examples, see [DataBox Management](https://docs.microsoft.com/python/api/overview/azure/databox) -on docs.microsoft.com. - +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Provide Feedback diff --git a/sdk/databoxedge/azure-mgmt-databoxedge/README.md b/sdk/databoxedge/azure-mgmt-databoxedge/README.md index 68b7cb552e9c..c021537f4a4a 100644 --- a/sdk/databoxedge/azure-mgmt-databoxedge/README.md +++ b/sdk/databoxedge/azure-mgmt-databoxedge/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/databricks/azure-mgmt-databricks/README.md b/sdk/databricks/azure-mgmt-databricks/README.md index abdbb0a4c3af..4db51a30a366 100644 --- a/sdk/databricks/azure-mgmt-databricks/README.md +++ b/sdk/databricks/azure-mgmt-databricks/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/datafactory/azure-mgmt-datafactory/README.md b/sdk/datafactory/azure-mgmt-datafactory/README.md index 3e020b923eff..49bc3de33568 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/README.md +++ b/sdk/datafactory/azure-mgmt-datafactory/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Data Factory Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/sdk) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/datalake/azure-mgmt-datalake-analytics/README.md b/sdk/datalake/azure-mgmt-datalake-analytics/README.md index e90c728d4daf..92b81c89352a 100644 --- a/sdk/datalake/azure-mgmt-datalake-analytics/README.md +++ b/sdk/datalake/azure-mgmt-datalake-analytics/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Data Lake Analytics Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/datalake/azure-mgmt-datalake-store/README.md b/sdk/datalake/azure-mgmt-datalake-store/README.md index 3ffd21fd8ac2..3003ada2fac5 100644 --- a/sdk/datalake/azure-mgmt-datalake-store/README.md +++ b/sdk/datalake/azure-mgmt-datalake-store/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Compatibility diff --git a/sdk/datamigration/azure-mgmt-datamigration/README.md b/sdk/datamigration/azure-mgmt-datamigration/README.md index 9e1fa5873162..1e5d1d8535ce 100644 --- a/sdk/datamigration/azure-mgmt-datamigration/README.md +++ b/sdk/datamigration/azure-mgmt-datamigration/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/datashare/azure-mgmt-datashare/README.md b/sdk/datashare/azure-mgmt-datashare/README.md index 509fd2571308..ac7fb5bc72ab 100644 --- a/sdk/datashare/azure-mgmt-datashare/README.md +++ b/sdk/datashare/azure-mgmt-datashare/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure MyService Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/deploymentmanager/azure-mgmt-deploymentmanager/README.md b/sdk/deploymentmanager/azure-mgmt-deploymentmanager/README.md index f2fae873f2b8..bdb1056d1445 100644 --- a/sdk/deploymentmanager/azure-mgmt-deploymentmanager/README.md +++ b/sdk/deploymentmanager/azure-mgmt-deploymentmanager/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/devtestlabs/azure-mgmt-devtestlabs/README.md b/sdk/devtestlabs/azure-mgmt-devtestlabs/README.md index 1a0d8fa18c9d..d5719979f7e9 100644 --- a/sdk/devtestlabs/azure-mgmt-devtestlabs/README.md +++ b/sdk/devtestlabs/azure-mgmt-devtestlabs/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/digitaltwins/azure-mgmt-digitaltwins/README.md b/sdk/digitaltwins/azure-mgmt-digitaltwins/README.md index 893fbb4df974..1cb4e7a0b386 100644 --- a/sdk/digitaltwins/azure-mgmt-digitaltwins/README.md +++ b/sdk/digitaltwins/azure-mgmt-digitaltwins/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure DigitalTwins Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/edgegateway/azure-mgmt-edgegateway/README.md b/sdk/edgegateway/azure-mgmt-edgegateway/README.md index dca6a4e7c466..18e626197d2a 100644 --- a/sdk/edgegateway/azure-mgmt-edgegateway/README.md +++ b/sdk/edgegateway/azure-mgmt-edgegateway/README.md @@ -13,7 +13,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/eventgrid/azure-eventgrid/README.md b/sdk/eventgrid/azure-eventgrid/README.md index daec8a164692..5aa35412bfe1 100644 --- a/sdk/eventgrid/azure-eventgrid/README.md +++ b/sdk/eventgrid/azure-eventgrid/README.md @@ -5,7 +5,7 @@ This is the Microsoft Azure Event Grid Client Library. This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/eventgrid/azure-mgmt-eventgrid/README.md b/sdk/eventgrid/azure-mgmt-eventgrid/README.md index c0d223ed7a4c..6f020755a975 100644 --- a/sdk/eventgrid/azure-mgmt-eventgrid/README.md +++ b/sdk/eventgrid/azure-mgmt-eventgrid/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure EventGrid Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/eventhub/azure-eventhub/azure/eventhub/_utils.py b/sdk/eventhub/azure-eventhub/azure/eventhub/_utils.py index e37349a94b06..7b6a95d6cdd7 100644 --- a/sdk/eventhub/azure-eventhub/azure/eventhub/_utils.py +++ b/sdk/eventhub/azure-eventhub/azure/eventhub/_utils.py @@ -181,7 +181,7 @@ def trace_link_message(events, parent_span=None): Will extract DiagnosticId if available. """ - trace_events = events if isinstance(events, Iterable) else (events,) + trace_events = events if isinstance(events, Iterable) else (events,) # pylint:disable=isinstance-second-argument-not-valid-type try: # pylint:disable=too-many-nested-blocks span_impl_type = settings.tracing_implementation() # type: Type[AbstractSpan] if span_impl_type is not None: diff --git a/sdk/eventhub/azure-eventhub/conftest.py b/sdk/eventhub/azure-eventhub/conftest.py index 6377d9a062d6..41a52d7790ed 100644 --- a/sdk/eventhub/azure-eventhub/conftest.py +++ b/sdk/eventhub/azure-eventhub/conftest.py @@ -3,15 +3,22 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. #-------------------------------------------------------------------------- - +import sys import os import pytest import logging -import sys import uuid import warnings from logging.handlers import RotatingFileHandler +from azure.identity import EnvironmentCredential +from azure.mgmt.resource import ResourceManagementClient +from azure.mgmt.eventhub import EventHubManagementClient +from azure.eventhub import EventHubProducerClient +from uamqp import ReceiveClient +from uamqp.authentication import SASTokenAuth + + # Ignore async tests for Python < 3.5 collect_ignore = [] if sys.version_info < (3, 5): @@ -19,15 +26,14 @@ collect_ignore.append("tests/unittest/asynctests") collect_ignore.append("features") collect_ignore.append("samples/async_samples") - collect_ignore.append("examples/async_examples") - -from azure.servicebus._control_client import ServiceBusService, EventHub -from azure.eventhub import EventHubProducerClient -import uamqp -from uamqp import authentication - PARTITION_COUNT = 2 CONN_STR = "Endpoint=sb://{}/;SharedAccessKeyName={};SharedAccessKey={};EntityPath={}" +RES_GROUP_PREFIX = "eh-res-group" +NAMESPACE_PREFIX = "eh-ns" +EVENTHUB_PREFIX = "eh" +EVENTHUB_DEFAULT_AUTH_RULE_NAME = 'RootManageSharedAccessKey' +LOCATION = "westus" + def pytest_addoption(parser): parser.addoption( @@ -66,59 +72,81 @@ def get_logger(filename, level=logging.INFO): log = get_logger(None, logging.DEBUG) -def create_eventhub(eventhub_config, client=None): - hub_name = str(uuid.uuid4()) - hub_value = EventHub(partition_count=PARTITION_COUNT) - client = client or ServiceBusService( - service_namespace=eventhub_config['namespace'], - shared_access_key_name=eventhub_config['key_name'], - shared_access_key_value=eventhub_config['access_key']) - if client.create_event_hub(hub_name, hub=hub_value, fail_on_exist=True): - return hub_name - raise ValueError("EventHub creation failed.") - - -def cleanup_eventhub(eventhub_config, hub_name, client=None): - client = client or ServiceBusService( - service_namespace=eventhub_config['namespace'], - shared_access_key_name=eventhub_config['key_name'], - shared_access_key_value=eventhub_config['access_key']) - client.delete_event_hub(hub_name) +@pytest.fixture(scope="session") +def resource_group(): + try: + SUBSCRIPTION_ID = os.environ["AZURE_SUBSCRIPTION_ID"] + except KeyError: + pytest.skip('AZURE_SUBSCRIPTION_ID undefined') + return + resource_client = ResourceManagementClient(EnvironmentCredential(), SUBSCRIPTION_ID) + resource_group_name = RES_GROUP_PREFIX + str(uuid.uuid4()) + try: + rg = resource_client.resource_groups.create_or_update( + resource_group_name, {"location": LOCATION} + ) + yield rg + finally: + try: + resource_client.resource_groups.begin_delete(resource_group_name) + except: + warnings.warn(UserWarning("resource group teardown failed")) @pytest.fixture(scope="session") -def live_eventhub_config(): +def eventhub_namespace(resource_group): try: - config = {} - config['hostname'] = os.environ['EVENT_HUB_HOSTNAME'] - config['event_hub'] = os.environ['EVENT_HUB_NAME'] - config['key_name'] = os.environ['EVENT_HUB_SAS_POLICY'] - config['access_key'] = os.environ['EVENT_HUB_SAS_KEY'] - config['namespace'] = os.environ['EVENT_HUB_NAMESPACE'] - config['consumer_group'] = "$Default" - config['partition'] = "0" - config['connection_str'] = CONN_STR + SUBSCRIPTION_ID = os.environ["AZURE_SUBSCRIPTION_ID"] except KeyError: - pytest.skip("Live EventHub configuration not found.") - else: - return config + pytest.skip('AZURE_SUBSCRIPTION_ID defined') + return + resource_client = EventHubManagementClient(EnvironmentCredential(), SUBSCRIPTION_ID) + namespace_name = NAMESPACE_PREFIX + str(uuid.uuid4()) + try: + namespace = resource_client.namespaces.begin_create_or_update( + resource_group.name, namespace_name, {"location": LOCATION} + ).result() + key = resource_client.namespaces.list_keys(resource_group.name, namespace_name, EVENTHUB_DEFAULT_AUTH_RULE_NAME) + connection_string = key.primary_connection_string + key_name = key.key_name + primary_key = key.primary_key + yield namespace.name, connection_string, key_name, primary_key + finally: + try: + resource_client.namespaces.begin_delete(resource_group.name, namespace_name).wait() + except: + warnings.warn(UserWarning("eventhub namespace teardown failed")) @pytest.fixture() -def live_eventhub(live_eventhub_config): # pylint: disable=redefined-outer-name - client = ServiceBusService( - service_namespace=live_eventhub_config['namespace'], - shared_access_key_name=live_eventhub_config['key_name'], - shared_access_key_value=live_eventhub_config['access_key']) +def live_eventhub(resource_group, eventhub_namespace): # pylint: disable=redefined-outer-name + try: + SUBSCRIPTION_ID = os.environ["AZURE_SUBSCRIPTION_ID"] + except KeyError: + pytest.skip('AZURE_SUBSCRIPTION_ID defined') + return + resource_client = EventHubManagementClient(EnvironmentCredential(), SUBSCRIPTION_ID) + eventhub_name = EVENTHUB_PREFIX + str(uuid.uuid4()) + eventhub_ns_name, connection_string, key_name, primary_key = eventhub_namespace try: - hub_name = create_eventhub(live_eventhub_config, client=client) - print("Created EventHub {}".format(hub_name)) - live_eventhub_config['event_hub'] = hub_name + eventhub = resource_client.event_hubs.create_or_update( + resource_group.name, eventhub_ns_name, eventhub_name, {"partition_count": PARTITION_COUNT} + ) + live_eventhub_config = { + 'resource_group': resource_group.name, + 'hostname': "{}.servicebus.windows.net".format(eventhub_ns_name), + 'key_name': key_name, + 'access_key': primary_key, + 'namespace': eventhub_ns_name, + 'event_hub': eventhub.name, + 'consumer_group': '$Default', + 'partition': '0', + 'connection_str': connection_string + ";EntityPath="+eventhub.name + } yield live_eventhub_config finally: try: - cleanup_eventhub(live_eventhub_config, hub_name, client=client) - print("Deleted EventHub {}".format(hub_name)) + resource_client.event_hubs.delete(resource_group.name, eventhub_ns_name, eventhub_name) except: warnings.warn(UserWarning("eventhub teardown failed")) @@ -133,55 +161,48 @@ def connection_str(live_eventhub): @pytest.fixture() -def invalid_hostname(live_eventhub_config): +def invalid_hostname(live_eventhub): return CONN_STR.format( "invalid123.servicebus.windows.net", - live_eventhub_config['key_name'], - live_eventhub_config['access_key'], - live_eventhub_config['event_hub']) + live_eventhub['key_name'], + live_eventhub['access_key'], + live_eventhub['event_hub']) @pytest.fixture() -def invalid_key(live_eventhub_config): +def invalid_key(live_eventhub): return CONN_STR.format( - live_eventhub_config['hostname'], - live_eventhub_config['key_name'], + live_eventhub['hostname'], + live_eventhub['key_name'], "invalid", - live_eventhub_config['event_hub']) + live_eventhub['event_hub']) @pytest.fixture() -def invalid_policy(live_eventhub_config): +def invalid_policy(live_eventhub): return CONN_STR.format( - live_eventhub_config['hostname'], + live_eventhub['hostname'], "invalid", - live_eventhub_config['access_key'], - live_eventhub_config['event_hub']) - - -@pytest.fixture() -def aad_credential(): - try: - return os.environ['AZURE_CLIENT_ID'], os.environ['AZURE_CLIENT_SECRET'], os.environ['AZURE_TENANT_ID'] - except KeyError: - pytest.skip('No Azure Active Directory credential found') + live_eventhub['access_key'], + live_eventhub['event_hub']) @pytest.fixture() -def connstr_receivers(connection_str, live_eventhub_config): +def connstr_receivers(live_eventhub): + connection_str = live_eventhub["connection_str"] partitions = [str(i) for i in range(PARTITION_COUNT)] receivers = [] for p in partitions: - uri = "sb://{}/{}".format(live_eventhub_config['hostname'], live_eventhub_config['event_hub']) - sas_auth = authentication.SASTokenAuth.from_shared_access_key( - uri, live_eventhub_config['key_name'], live_eventhub_config['access_key']) + uri = "sb://{}/{}".format(live_eventhub['hostname'], live_eventhub['event_hub']) + sas_auth = SASTokenAuth.from_shared_access_key( + uri, live_eventhub['key_name'], live_eventhub['access_key']) source = "amqps://{}/{}/ConsumerGroups/{}/Partitions/{}".format( - live_eventhub_config['hostname'], - live_eventhub_config['event_hub'], - live_eventhub_config['consumer_group'], + live_eventhub['hostname'], + live_eventhub['event_hub'], + live_eventhub['consumer_group'], p) - receiver = uamqp.ReceiveClient(source, auth=sas_auth, debug=False, timeout=0, prefetch=500) + receiver = ReceiveClient(source, auth=sas_auth, debug=False, timeout=0, prefetch=500) receiver.open() receivers.append(receiver) yield connection_str, receivers @@ -190,7 +211,8 @@ def connstr_receivers(connection_str, live_eventhub_config): @pytest.fixture() -def connstr_senders(connection_str): +def connstr_senders(live_eventhub): + connection_str = live_eventhub["connection_str"] client = EventHubProducerClient.from_connection_string(connection_str) partitions = client.get_partition_ids() diff --git a/sdk/eventhub/azure-eventhub/dev_requirements.txt b/sdk/eventhub/azure-eventhub/dev_requirements.txt index b7dc2798b680..d068041b7bd9 100644 --- a/sdk/eventhub/azure-eventhub/dev_requirements.txt +++ b/sdk/eventhub/azure-eventhub/dev_requirements.txt @@ -1,7 +1,8 @@ -e ../../../tools/azure-sdk-tools ../../core/azure-core -e ../../identity/azure-identity --e ../../servicebus/azure-servicebus +-e ../azure-mgmt-eventhub +-e ../../resources/azure-mgmt-resource aiohttp>=3.0; python_version >= '3.5' docutils>=0.14 pygments>=2.2.0 diff --git a/sdk/eventhub/azure-eventhub/tests/eventhub_preparer.py b/sdk/eventhub/azure-eventhub/tests/eventhub_preparer.py new file mode 100644 index 000000000000..d9e99ed2c1ab --- /dev/null +++ b/sdk/eventhub/azure-eventhub/tests/eventhub_preparer.py @@ -0,0 +1,294 @@ +#------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +#-------------------------------------------------------------------------- + +# This EventHubs resource preparer is for future use after the tests are all compatible with +# The resource preparer. + +import functools + +from azure.mgmt.eventhub import EventHubManagementClient +from azure.mgmt.eventhub.models import Eventhub, AccessRights + +from azure_devtools.scenario_tests.exceptions import AzureTestError + +from devtools_testutils import ( + ResourceGroupPreparer, AzureMgmtPreparer, FakeResource +) + +from devtools_testutils.resource_testcase import RESOURCE_GROUP_PARAM + +EVENTHUB_DEFAULT_AUTH_RULE_NAME = 'RootManageSharedAccessKey' +EVENTHUB_NAMESPACE_PARAM = 'eventhub_namespace' +EVENTHUB_PARAM = 'eventhub' +EVENTHUB_AUTHORIZATION_RULE_PARAM = 'eventhub_authorization_rule' + +# Service Bus Namespace Preparer and its shorthand decorator +class EventHubNamespacePreparer(AzureMgmtPreparer): + def __init__(self, + name_prefix='', + use_cache=False, + sku='Standard', location='westus', + parameter_name=EVENTHUB_NAMESPACE_PARAM, + resource_group_parameter_name=RESOURCE_GROUP_PARAM, + disable_recording=True, playback_fake_resource=None, + client_kwargs=None, random_name_enabled=True): + super(EventHubNamespacePreparer, self).__init__(name_prefix, 24, + random_name_enabled=random_name_enabled, + disable_recording=disable_recording, + playback_fake_resource=playback_fake_resource, + client_kwargs=client_kwargs) + self.location = location + self.sku = sku + self.resource_group_parameter_name = resource_group_parameter_name + self.parameter_name = parameter_name + self.connection_string = '' + if random_name_enabled: + self.resource_moniker = self.name_prefix + "ehname" + + self.set_cache(use_cache, sku, location) + + def create_resource(self, name, **kwargs): + if self.is_live: + self.client = self.create_mgmt_client(EventHubManagementClient) # type: EventHubManagementClient + group = self._get_resource_group(**kwargs) + namespace_async_operation = self.client.namespaces.begin_create_or_update( + group.name, + name, + { + 'sku': {'name': self.sku}, + 'location': self.location, + } + ) + self.resource = namespace_async_operation.result() + + key = self.client.namespaces.list_keys(group.name, name, EVENTHUB_DEFAULT_AUTH_RULE_NAME) + self.connection_string = key.primary_connection_string + self.key_name = key.key_name + self.primary_key = key.primary_key + else: + self.resource = FakeResource(name=name, id=name) + self.connection_string = 'Endpoint=sb://{}.servicebus.windows.net/;SharedAccessKeyName=test;SharedAccessKey=THISISATESTKEYXXXXXXXXXXXXXXXXXXXXXXXXXXXX='.format(name) + self.key_name = EVENTHUB_DEFAULT_AUTH_RULE_NAME + self.primary_key = 'ZmFrZV9hY29jdW50X2tleQ==' + return { + self.parameter_name: self.resource, + '{}_connection_string'.format(self.parameter_name): self.connection_string, + '{}_key_name'.format(self.parameter_name): self.key_name, + '{}_primary_key'.format(self.parameter_name): self.primary_key, + '{}_management_client'.format(self.parameter_name): self.client + } + + def remove_resource(self, name, **kwargs): + if self.is_live: + group = self._get_resource_group(**kwargs) + self.client.namespaces.begin_delete(group.name, name).wait() + + def _get_resource_group(self, **kwargs): + try: + return kwargs.get(self.resource_group_parameter_name) + except KeyError: + template = 'To create an event hub a resource group is required. Please add ' \ + 'decorator @{} in front of this event hub preparer.' + raise AzureTestError(template.format(ResourceGroupPreparer.__name__)) + + +# Shared base class for event hub sub-resources that require a namespace and RG to exist. +class _EventHubChildResourcePreparer(AzureMgmtPreparer): + def __init__(self, + name_prefix='', + resource_group_parameter_name=RESOURCE_GROUP_PARAM, + eventhub_namespace_parameter_name=EVENTHUB_NAMESPACE_PARAM, + disable_recording=True, playback_fake_resource=None, + client_kwargs=None, random_name_enabled=True): + super(_EventHubChildResourcePreparer, self).__init__(name_prefix, 24, + random_name_enabled=random_name_enabled, + disable_recording=disable_recording, + playback_fake_resource=playback_fake_resource, + client_kwargs=client_kwargs) + self.resource_group_parameter_name = resource_group_parameter_name + self.eventhub_namespace_parameter_name = eventhub_namespace_parameter_name + + def _get_resource_group(self, **kwargs): + try: + return kwargs.get(self.resource_group_parameter_name) + except KeyError: + template = 'To create this event hub child resource event hub a resource group is required. Please add ' \ + 'decorator @{} in front of this event hub preparer.' + raise AzureTestError(template.format(ResourceGroupPreparer.__name__)) + + def _get_namespace(self, **kwargs): + try: + return kwargs.get(self.eventhub_namespace_parameter_name) + except KeyError: + template = 'To create this event hub child resource a event hub namespace is required. Please add ' \ + 'decorator @{} in front of this event hub preparer.' + raise AzureTestError(template.format(EventHubNamespacePreparer.__name__)) + + +class EventHubPreparer(_EventHubChildResourcePreparer): + def __init__(self, + name_prefix='', + use_cache=False, + parameter_name=EVENTHUB_PARAM, + resource_group_parameter_name=RESOURCE_GROUP_PARAM, + eventhub_namespace_parameter_name=EVENTHUB_NAMESPACE_PARAM, + disable_recording=True, playback_fake_resource=None, + client_kwargs=None, random_name_enabled=True): + super(EventHubPreparer, self).__init__(name_prefix, + random_name_enabled=random_name_enabled, + resource_group_parameter_name=resource_group_parameter_name, + eventhub_namespace_parameter_name=eventhub_namespace_parameter_name, + disable_recording=disable_recording, + playback_fake_resource=playback_fake_resource, + client_kwargs=client_kwargs) + self.parameter_name = parameter_name + if random_name_enabled: + self.resource_moniker = self.name_prefix + "eventhub" + self.set_cache(use_cache) + + def create_resource(self, name, **kwargs): + if self.is_live: + self.client = self.create_mgmt_client(EventHubManagementClient) + group = self._get_resource_group(**kwargs) + namespace = self._get_namespace(**kwargs) + self.resource = self.client.event_hubs.create_or_update( + group.name, + namespace.name, + name, + {} + ) + else: + self.resource = FakeResource(name=name, id=name) + return { + self.parameter_name: self.resource, + } + + def remove_resource(self, name, **kwargs): + if self.is_live: + group = self._get_resource_group(**kwargs) + namespace = self._get_namespace(**kwargs) + self.client.event_hubs.delete(group.name, namespace.name, name, polling=False) + + +class EventHubNamespaceAuthorizationRulePreparer(_EventHubChildResourcePreparer): + def __init__(self, + name_prefix='', + use_cache=False, + access_rights=[AccessRights.manage, AccessRights.send, AccessRights.listen], + parameter_name=EVENTHUB_AUTHORIZATION_RULE_PARAM, + resource_group_parameter_name=RESOURCE_GROUP_PARAM, + eventhub_namespace_parameter_name=EVENTHUB_NAMESPACE_PARAM, + disable_recording=True, playback_fake_resource=None, + client_kwargs=None, random_name_enabled=True): + super(EventHubNamespaceAuthorizationRulePreparer, self).__init__(name_prefix, + random_name_enabled=random_name_enabled, + resource_group_parameter_name=resource_group_parameter_name, + eventhub_namespace_parameter_name=eventhub_namespace_parameter_name, + disable_recording=disable_recording, + playback_fake_resource=playback_fake_resource, + client_kwargs=client_kwargs) + self.parameter_name = parameter_name + self.access_rights = access_rights + if random_name_enabled: + self.resource_moniker = self.name_prefix + "sbnameauth" + self.set_cache(use_cache, access_rights) + + def create_resource(self, name, **kwargs): + if self.is_live: + self.client = self.create_mgmt_client(EventHubManagementClient) + group = self._get_resource_group(**kwargs) + namespace = self._get_namespace(**kwargs) + self.resource = self.client.namespaces.create_or_update_authorization_rule( + group.name, + namespace.name, + name, + self.access_rights + ) + + key = self.client.namespaces.list_keys(group.name, namespace.name, name) + connection_string = key.primary_connection_string + else: + self.resource = FakeResource(name=name, id=name) + connection_string = 'https://microsoft.com' + return { + self.parameter_name: self.resource, + '{}_connection_string'.format(self.parameter_name): connection_string, + } + + def remove_resource(self, name, **kwargs): + if self.is_live: + group = self._get_resource_group(**kwargs) + namespace = self._get_namespace(**kwargs) + self.client.namespaces.delete_authorization_rule(group.name, namespace.name, name, polling=False) + + +class EventHubAuthorizationRulePreparer(_EventHubChildResourcePreparer): + def __init__(self, + name_prefix='', + use_cache=False, + access_rights=[AccessRights.manage, AccessRights.send, AccessRights.listen], + parameter_name=EVENTHUB_AUTHORIZATION_RULE_PARAM, + resource_group_parameter_name=RESOURCE_GROUP_PARAM, + eventhub_namespace_parameter_name=EVENTHUB_NAMESPACE_PARAM, + eventhub_parameter_name=EVENTHUB_PARAM, + disable_recording=True, playback_fake_resource=None, + client_kwargs=None, random_name_enabled=True): + super(EventHubAuthorizationRulePreparer, self).__init__(name_prefix, + random_name_enabled=random_name_enabled, + resource_group_parameter_name=resource_group_parameter_name, + eventhub_namespace_parameter_name=eventhub_namespace_parameter_name, + disable_recording=disable_recording, + playback_fake_resource=playback_fake_resource, + client_kwargs=client_kwargs) + self.parameter_name = parameter_name + self.access_rights = access_rights + self.eventhub_parameter_name = eventhub_parameter_name + if random_name_enabled: + self.resource_moniker = self.name_prefix + "evnethubauth" + self.set_cache(use_cache, access_rights) + + def create_resource(self, name, **kwargs): + if self.is_live: + self.client = self.create_mgmt_client(EventHubManagementClient) + group = self._get_resource_group(**kwargs) + namespace = self._get_namespace(**kwargs) + eventhub = self._get_eventhub(**kwargs) + self.resource = self.client.event_hubs.create_or_update_authorization_rule( + group.name, + namespace.name, + eventhub.name, + name, + self.access_rights + ) + + key = self.client.event_hubs.list_keys(group.name, namespace.name, eventhub.name, name) + connection_string = key.primary_connection_string + else: + self.resource = FakeResource(name=name, id=name) + connection_string = 'https://microsoft.com' + return { + self.parameter_name: self.resource, + '{}_connection_string'.format(self.parameter_name): connection_string, + } + + def remove_resource(self, name, **kwargs): + if self.is_live: + group = self._get_resource_group(**kwargs) + namespace = self._get_namespace(**kwargs) + eventhub = self._get_eventhub(**kwargs) + self.client.event_hubs.delete_authorization_rule(group.name, namespace.name, eventhub.name, name, polling=False) + + def _get_eventhub(self, **kwargs): + try: + return kwargs.get(self.eventhub_parameter_name) + except KeyError: + template = 'To create this event hub authorization rule a event hub is required. Please add ' \ + 'decorator @{} in front of this event hub preparer.' + raise AzureTestError(template.format(EventHubPreparer.__name__)) + + +CachedEventHubNamespacePreparer = functools.partial(EventHubNamespacePreparer, use_cache=True) +CachedEventHubPreparer = functools.partial(EventHubPreparer, use_cache=True) diff --git a/sdk/eventhub/azure-eventhub/tests/livetest/asynctests/test_auth_async.py b/sdk/eventhub/azure-eventhub/tests/livetest/asynctests/test_auth_async.py index 96842a2298fa..1a055feacfde 100644 --- a/sdk/eventhub/azure-eventhub/tests/livetest/asynctests/test_auth_async.py +++ b/sdk/eventhub/azure-eventhub/tests/livetest/asynctests/test_auth_async.py @@ -7,19 +7,14 @@ import pytest import asyncio +from azure.identity.aio import EnvironmentCredential from azure.eventhub import EventData from azure.eventhub.aio import EventHubConsumerClient, EventHubProducerClient @pytest.mark.liveTest @pytest.mark.asyncio -async def test_client_secret_credential_async(aad_credential, live_eventhub): - try: - from azure.identity.aio import EnvironmentCredential - except ImportError: - pytest.skip("No azure identity library") - return - +async def test_client_secret_credential_async(live_eventhub): credential = EnvironmentCredential() producer_client = EventHubProducerClient(fully_qualified_namespace=live_eventhub['hostname'], eventhub_name=live_eventhub['event_hub'], diff --git a/sdk/eventhub/azure-eventhub/tests/livetest/asynctests/test_negative_async.py b/sdk/eventhub/azure-eventhub/tests/livetest/asynctests/test_negative_async.py index 09ef3a14be4d..eb1fc0beb663 100644 --- a/sdk/eventhub/azure-eventhub/tests/livetest/asynctests/test_negative_async.py +++ b/sdk/eventhub/azure-eventhub/tests/livetest/asynctests/test_negative_async.py @@ -40,11 +40,11 @@ async def test_send_with_invalid_hostname_async(invalid_hostname, connstr_receiv ["hostname", "key_name", "access_key", "event_hub", "partition"]) @pytest.mark.liveTest @pytest.mark.asyncio -async def test_receive_with_invalid_param_async(live_eventhub_config, invalid_place): - eventhub_config = live_eventhub_config.copy() +async def test_receive_with_invalid_param_async(live_eventhub, invalid_place): + eventhub_config = live_eventhub.copy() if invalid_place != "partition": eventhub_config[invalid_place] = "invalid " + invalid_place - conn_str = live_eventhub_config["connection_str"].format( + conn_str = live_eventhub["connection_str"].format( eventhub_config['hostname'], eventhub_config['key_name'], eventhub_config['access_key'], diff --git a/sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_auth.py b/sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_auth.py index aba361ed645f..3959164d902d 100644 --- a/sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_auth.py +++ b/sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_auth.py @@ -7,15 +7,12 @@ import time import threading +from azure.identity import EnvironmentCredential from azure.eventhub import EventData, EventHubProducerClient, EventHubConsumerClient @pytest.mark.liveTest -def test_client_secret_credential(aad_credential, live_eventhub): - try: - from azure.identity import EnvironmentCredential - except: - pytest.skip("No azure identity library") +def test_client_secret_credential(live_eventhub): credential = EnvironmentCredential() producer_client = EventHubProducerClient(fully_qualified_namespace=live_eventhub['hostname'], eventhub_name=live_eventhub['event_hub'], diff --git a/sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_negative.py b/sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_negative.py index 5228f1aa4148..d3b775381796 100644 --- a/sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_negative.py +++ b/sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_negative.py @@ -50,13 +50,8 @@ def on_event(partition_context, event): @pytest.mark.liveTest -def test_send_batch_with_invalid_key(live_eventhub): - conn_str = live_eventhub["connection_str"].format( - live_eventhub['hostname'], - live_eventhub['key_name'], - 'invalid', - live_eventhub['event_hub']) - client = EventHubProducerClient.from_connection_string(conn_str) +def test_send_batch_with_invalid_key(invalid_key): + client = EventHubProducerClient.from_connection_string(invalid_key) try: with pytest.raises(ConnectError): batch = EventDataBatch() diff --git a/sdk/eventhub/azure-mgmt-eventhub/README.md b/sdk/eventhub/azure-mgmt-eventhub/README.md index 379b41e66b9f..24486fa49041 100644 --- a/sdk/eventhub/azure-mgmt-eventhub/README.md +++ b/sdk/eventhub/azure-mgmt-eventhub/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure EventHub Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/eventhub/tests.yml b/sdk/eventhub/tests.yml index 8b3513f01bad..d4f7da2e5f17 100644 --- a/sdk/eventhub/tests.yml +++ b/sdk/eventhub/tests.yml @@ -33,3 +33,4 @@ jobs: AZURE_CLIENT_ID: $(python-eh-livetest-event-hub-aad-client-id) AZURE_TENANT_ID: $(python-eh-livetest-event-hub-aad-tenant-id) AZURE_CLIENT_SECRET: $(python-eh-livetest-event-hub-aad-secret) + AZURE_SUBSCRIPTION_ID: $(python-eh-livetest-event-hub-subscription-id) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md index bb9eff4930e9..10f1ec619f9f 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md +++ b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md @@ -2,6 +2,21 @@ ## 1.0.0b5 (Unreleased) +**Breaking Changes** + +- Values are now capitalized for enums `FormContentType`, `LengthUnit`, `TrainingStatus`, and `CustomFormModelStatus` +- `document_name` renamed to `name` on `TrainingDocumentInfo` +- Keyword argument `include_sub_folders` renamed to `include_subfolders` on `begin_training` methods + +**New features** + +- `FormField` now has attribute `value_type` which contains the semantic data type of the field value. The options for +`value_type` are described in the enum `FieldValueType` + +**Fixes and improvements** + +- Fixes a bug where error code and message weren't being returned on `HttpResponseError` if operation failed during polling + ## 1.0.0b4 (2020-07-07) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/README.md b/sdk/formrecognizer/azure-ai-formrecognizer/README.md index be8d1fc27afa..ea258a9f16d3 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/README.md +++ b/sdk/formrecognizer/azure-ai-formrecognizer/README.md @@ -193,7 +193,7 @@ all the recognize methods. ``` -form_url_jpg = "" +form_url = "" poller = form_recognizer_client.begin_recognize_custom_forms_from_url(model_id=model_id, form_url=form_url) result = poller.result() ``` @@ -289,7 +289,7 @@ for submodel in model.submodels: # Training result information for doc in model.training_documents: - print("Document name: {}".format(doc.document_name)) + print("Document name: {}".format(doc.name)) print("Document status: {}".format(doc.status)) print("Document page count: {}".format(doc.page_count)) print("Document errors: {}".format(doc.errors)) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/__init__.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/__init__.py index 81f78c10f742..bca982f60763 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/__init__.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/__init__.py @@ -31,6 +31,7 @@ CustomFormModel, CustomFormSubmodel, CustomFormModelField, + FieldValueType ) @@ -59,6 +60,7 @@ 'CustomFormModel', 'CustomFormSubmodel', 'CustomFormModelField', + 'FieldValueType' ] __VERSION__ = VERSION diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_recognizer_client.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_recognizer_client.py index e4bc9786023f..3962901aba96 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_recognizer_client.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_recognizer_client.py @@ -94,7 +94,7 @@ def begin_recognize_receipts(self, receipt, **kwargs): 'image/jpeg', 'image/png' or 'image/tiff'. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields :param receipt: JPEG, PNG, PDF and TIFF type file stream or bytes. Currently only supports US sales receipts. @@ -152,7 +152,7 @@ def begin_recognize_receipts_from_url(self, receipt_url, **kwargs): The input document must be the location (URL) of the receipt to be analyzed. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields :param str receipt_url: The URL of the receipt to analyze. The input must be a valid, encoded URL of one of the supported formats: JPEG, PNG, PDF and TIFF. Currently only supports diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_training_client.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_training_client.py index 094284051091..32ddbbeb1366 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_training_client.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_training_client.py @@ -111,7 +111,7 @@ def begin_training(self, training_files_url, use_training_labels, **kwargs): :keyword str prefix: A case-sensitive prefix string to filter documents in the source path for training. For example, when using a Azure storage blob URI, use the prefix to restrict sub folders for training. - :keyword bool include_sub_folders: A flag to indicate if sub folders within the set of prefix folders + :keyword bool include_subfolders: A flag to indicate if subfolders within the set of prefix folders will also need to be included when searching for content to be preprocessed. Not supported if training with labels. :keyword int polling_interval: Waiting time between two polls for LRO operations @@ -157,7 +157,7 @@ def callback(raw_response): use_label_file=use_training_labels, source_filter=TrainSourceFilter( prefix=kwargs.pop("prefix", ""), - include_sub_folders=kwargs.pop("include_sub_folders", False), + include_sub_folders=kwargs.pop("include_subfolders", False), ) ), cls=lambda pipeline_response, _, response_headers: pipeline_response, diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py index 1a8fa595e169..60d95f90a427 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py @@ -12,6 +12,16 @@ import six +def adjust_value_type(value_type): + if value_type == "array": + value_type = "list" + if value_type == "number": + value_type = "float" + if value_type == "object": + value_type = "dictionary" + return value_type + + def adjust_confidence(score): """Adjust confidence when not returned. """ @@ -75,41 +85,55 @@ def get_field_value(field, value, read_result): # pylint: disable=too-many-retu return None +class FieldValueType(str, Enum): + """Semantic data type of the field value. + """ + + STRING = "string" + DATE = "date" + TIME = "time" + PHONE_NUMBER = "phoneNumber" + FLOAT = "float" + INTEGER = "integer" + LIST = "list" + DICTIONARY = "dictionary" + + class LengthUnit(str, Enum): """The unit used by the width, height and bounding box properties. For images, the unit is "pixel". For PDF, the unit is "inch". """ - pixel = "pixel" - inch = "inch" + PIXEL = "pixel" + INCH = "inch" class TrainingStatus(str, Enum): """Status of the training operation. """ - succeeded = "succeeded" - partially_succeeded = "partiallySucceeded" - failed = "failed" + SUCCEEDED = "succeeded" + PARTIALLY_SUCCEEDED = "partiallySucceeded" + FAILED = "failed" class CustomFormModelStatus(str, Enum): """Status indicating the model's readiness for use. """ - creating = "creating" - ready = "ready" - invalid = "invalid" + CREATING = "creating" + READY = "ready" + INVALID = "invalid" class FormContentType(str, Enum): """Content type for upload """ - application_pdf = "application/pdf" #: Content Type 'application/pdf'. - image_jpeg = "image/jpeg" #: Content Type 'image/jpeg'. - image_png = "image/png" #: Content Type 'image/png'. - image_tiff = "image/tiff" #: Content Type 'image/tiff'. + APPLICATION_PDF = "application/pdf" #: Content Type 'application/pdf'. + IMAGE_JPEG = "image/jpeg" #: Content Type 'image/jpeg'. + IMAGE_PNG = "image/png" #: Content Type 'image/png'. + IMAGE_TIFF = "image/tiff" #: Content Type 'image/tiff'. class Point(namedtuple("Point", "x y")): @@ -188,21 +212,24 @@ def __repr__(self): class FormField(object): """Represents a field recognized in an input form. + :ivar str value_type: The type of `value` found on FormField. Described in + :class:`~azure.ai.formrecognizer.FieldValueType`, possible types include: 'string', + 'date', 'time', 'phoneNumber', 'float', 'integer', 'dictionary', or 'list'. :ivar ~azure.ai.formrecognizer.FieldData label_data: Contains the text, bounding box, and field elements for the field label. :ivar ~azure.ai.formrecognizer.FieldData value_data: Contains the text, bounding box, and field elements for the field value. :ivar str name: The unique name of the field or label. :ivar value: - The value for the recognized field. Possible types include: 'string', - 'date', 'time', 'phoneNumber', 'number', 'integer', 'object', or 'array'. + The value for the recognized field. Its semantic data type is described by `value_type`. :vartype value: str, int, float, :class:`~datetime.date`, :class:`~datetime.time`, - :class:`~azure.ai.formrecognizer.FormField`, or list[:class:`~azure.ai.formrecognizer.FormField`] + dict[str, :class:`~azure.ai.formrecognizer.FormField`], or list[:class:`~azure.ai.formrecognizer.FormField`] :ivar float confidence: Measures the degree of certainty of the recognition result. Value is between [0.0, 1.0]. """ def __init__(self, **kwargs): + self.value_type = kwargs.get("value_type", None) self.label_data = kwargs.get("label_data", None) self.value_data = kwargs.get("value_data", None) self.name = kwargs.get("name", None) @@ -212,6 +239,7 @@ def __init__(self, **kwargs): @classmethod def _from_generated(cls, field, value, read_result): return cls( + value_type=adjust_value_type(value.type) if value else None, label_data=FieldData._from_generated(field, read_result), value_data=FieldData._from_generated(value, read_result), value=get_field_value(field, value, read_result), @@ -222,6 +250,7 @@ def _from_generated(cls, field, value, read_result): @classmethod def _from_generated_unlabeled(cls, field, idx, page, read_result): return cls( + value_type="string", # unlabeled only returns string label_data=FieldData._from_generated_unlabeled(field.key, page, read_result), value_data=FieldData._from_generated_unlabeled(field.value, page, read_result), value=field.value.text, @@ -230,8 +259,8 @@ def _from_generated_unlabeled(cls, field, idx, page, read_result): ) def __repr__(self): - return "FormField(label_data={}, value_data={}, name={}, value={}, confidence={})".format( - repr(self.label_data), repr(self.value_data), self.name, repr(self.value), self.confidence + return "FormField(value_type={}, label_data={}, value_data={}, name={}, value={}, confidence={})".format( + self.value_type, repr(self.label_data), repr(self.value_data), self.name, repr(self.value), self.confidence )[:1024] @@ -648,7 +677,7 @@ class TrainingDocumentInfo(object): """Report for an individual document used for training a custom model. - :ivar str document_name: + :ivar str name: The name of the document. :ivar str status: The :class:`~azure.ai.formrecognizer.TrainingStatus` @@ -661,7 +690,7 @@ class TrainingDocumentInfo(object): """ def __init__(self, **kwargs): - self.document_name = kwargs.get("document_name", None) + self.name = kwargs.get("name", None) self.status = kwargs.get("status", None) self.page_count = kwargs.get("page_count", None) self.errors = kwargs.get("errors", []) @@ -669,15 +698,15 @@ def __init__(self, **kwargs): @classmethod def _from_generated(cls, train_result): return [cls( - document_name=doc.document_name, + name=doc.document_name, status=doc.status, page_count=doc.pages, errors=FormRecognizerError._from_generated(doc.errors) ) for doc in train_result.training_documents] if train_result.training_documents else None def __repr__(self): - return "TrainingDocumentInfo(document_name={}, status={}, page_count={}, errors={})".format( - self.document_name, self.status, self.page_count, repr(self.errors) + return "TrainingDocumentInfo(name={}, status={}, page_count={}, errors={})".format( + self.name, self.status, self.page_count, repr(self.errors) )[:1024] diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_polling.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_polling.py index f1ef5267a283..dcd915789ce0 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_polling.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_polling.py @@ -5,7 +5,7 @@ # ------------------------------------ from typing import TYPE_CHECKING -from azure.core.exceptions import HttpResponseError +from azure.core.exceptions import HttpResponseError, ODataV4Format from azure.core.polling.base_polling import ( LocationPolling, OperationResourcePolling, @@ -18,9 +18,10 @@ def raise_error(response, errors, message): - for err in errors: - message += "({}) {}\n".format(err["code"], err["message"]) - raise HttpResponseError(message=message, response=response) + error_message = "({}) {}{}".format(errors[0]["code"], errors[0]["message"], message) + error = HttpResponseError(message=error_message, response=response) + error.error = ODataV4Format(errors[0]) + raise error class TrainingPolling(LocationPolling): @@ -51,7 +52,7 @@ def get_status(self, pipeline_response): # pylint: disable=no-self-use if train_result: errors = train_result.get("errors") if errors: - message = "Invalid model created with ID={}\n".format(body["modelInfo"]["modelId"]) + message = "\nInvalid model created with ID={}".format(body["modelInfo"]["modelId"]) raise_error(response, errors, message) return "Failed" if status.lower() != "creating": diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_recognizer_client_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_recognizer_client_async.py index c4cc7aa1798a..6a54d5752812 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_recognizer_client_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_recognizer_client_async.py @@ -102,7 +102,7 @@ async def begin_recognize_receipts( 'image/jpeg', 'image/png' or 'image/tiff'. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields :param receipt: JPEG, PNG, PDF and TIFF type file stream or bytes. Currently only supports US sales receipts. @@ -166,7 +166,7 @@ async def begin_recognize_receipts_from_url( The input document must be the location (URL) of the receipt to be analyzed. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields :param str receipt_url: The URL of the receipt to analyze. The input must be a valid, encoded URL of one of the supported formats: JPEG, PNG, PDF and TIFF. Currently only supports diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_training_client_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_training_client_async.py index dee6a28d66ba..f68400d36d26 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_training_client_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_training_client_async.py @@ -120,7 +120,7 @@ async def begin_training( :keyword str prefix: A case-sensitive prefix string to filter documents in the source path for training. For example, when using a Azure storage blob URI, use the prefix to restrict sub folders for training. - :keyword bool include_sub_folders: A flag to indicate if sub folders within the set of prefix folders + :keyword bool include_subfolders: A flag to indicate if subfolders within the set of prefix folders will also need to be included when searching for content to be preprocessed. Not supported if training with labels. :keyword int polling_interval: Waiting time between two polls for LRO operations @@ -170,7 +170,7 @@ def callback(raw_response): use_label_file=use_training_labels, source_filter=TrainSourceFilter( prefix=kwargs.pop("prefix", ""), - include_sub_folders=kwargs.pop("include_sub_folders", False) + include_sub_folders=kwargs.pop("include_subfolders", False) ) ), cls=lambda pipeline_response, _, response_headers: pipeline_response, diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_recognize_receipts_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_recognize_receipts_async.py index c9caa01b8903..dbc363ea71ea 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_recognize_receipts_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_recognize_receipts_async.py @@ -15,7 +15,7 @@ from receipts, see sample_strongly_typed_recognized_form_async.py. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields USAGE: python sample_recognize_receipts_async.py diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_recognize_receipts_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_recognize_receipts_from_url_async.py index a7732c34121e..737920bd8527 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_recognize_receipts_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_recognize_receipts_from_url_async.py @@ -15,7 +15,7 @@ from receipts, see sample_strongly_typed_recognized_form_async.py. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields USAGE: python sample_recognize_receipts_from_url_async.py diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_strongly_typing_recognized_form_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_strongly_typing_recognized_form_async.py index 7bcd77c0320e..c33cc856c059 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_strongly_typing_recognized_form_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_strongly_typing_recognized_form_async.py @@ -16,7 +16,7 @@ fields' names and types. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields USAGE: python sample_strongly_typed_recognized_form_async.py @@ -36,7 +36,7 @@ class Receipt(object): If a specific field is not found on the receipt, it will return None. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields """ def __init__(self, form): diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_train_model_with_labels_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_train_model_with_labels_async.py index 22c5f43ec41a..a2832d4a9c5b 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_train_model_with_labels_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_train_model_with_labels_async.py @@ -71,7 +71,7 @@ async def train_model_with_labels(self): # Training result information for doc in model.training_documents: - print("Document name: {}".format(doc.document_name)) + print("Document name: {}".format(doc.name)) print("Document status: {}".format(doc.status)) print("Document page count: {}".format(doc.page_count)) print("Document errors: {}".format(doc.errors)) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_train_model_without_labels_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_train_model_without_labels_async.py index 10f8dc7a2e4e..9123d380255b 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_train_model_without_labels_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/async_samples/sample_train_model_without_labels_async.py @@ -67,7 +67,7 @@ async def train_model_without_labels(self): # [END training_async] # Training result information for doc in model.training_documents: - print("Document name: {}".format(doc.document_name)) + print("Document name: {}".format(doc.name)) print("Document status: {}".format(doc.status)) print("Document page count: {}".format(doc.page_count)) print("Document errors: {}".format(doc.errors)) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_recognize_receipts.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_recognize_receipts.py index c2061ce14da9..3a699e8ee765 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_recognize_receipts.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_recognize_receipts.py @@ -15,7 +15,7 @@ from receipts, see sample_strongly_typed_recognized_form.py. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields USAGE: python sample_recognize_receipts.py diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_recognize_receipts_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_recognize_receipts_from_url.py index 3ee25b4dd4ae..c0d9c6d8cbb3 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_recognize_receipts_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_recognize_receipts_from_url.py @@ -15,7 +15,7 @@ from receipts, see sample_strongly_typed_recognized_form.py. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields USAGE: python sample_recognize_receipts_from_url.py diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_strongly_typing_recognized_form.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_strongly_typing_recognized_form.py index a552b8b75420..4069402af13d 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_strongly_typing_recognized_form.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_strongly_typing_recognized_form.py @@ -16,7 +16,7 @@ fields' names and types. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields USAGE: python sample_strongly_typed_recognized_form.py @@ -35,7 +35,7 @@ class Receipt(object): If a specific field is not found on the receipt, it will return None. See fields found on a receipt here: - https://aka.ms/azsdk/python/formrecognizer/receiptfields + https://aka.ms/formrecognizer/receiptfields """ def __init__(self, form): diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_train_model_with_labels.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_train_model_with_labels.py index 9163ae85bc8e..7877d51058d9 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_train_model_with_labels.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_train_model_with_labels.py @@ -66,7 +66,7 @@ def train_model_with_labels(self): # Training result information for doc in model.training_documents: - print("Document name: {}".format(doc.document_name)) + print("Document name: {}".format(doc.name)) print("Document status: {}".format(doc.status)) print("Document page count: {}".format(doc.page_count)) print("Document errors: {}".format(doc.errors)) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_train_model_without_labels.py b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_train_model_without_labels.py index 800e05bdd3a0..117edcf94739 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_train_model_without_labels.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/samples/sample_train_model_without_labels.py @@ -63,7 +63,7 @@ def train_model_without_labels(self): # [END training] # Training result information for doc in model.training_documents: - print("Document name: {}".format(doc.document_name)) + print("Document name: {}".format(doc.name)) print("Document status: {}".format(doc.status)) print("Document page count: {}".format(doc.page_count)) print("Document errors: {}".format(doc.errors)) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content.py index 1c3f693af9e7..f4e86ac4c03f 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content.py @@ -50,7 +50,7 @@ def test_passing_enum_content_type(self, client): myfile = fd.read() poller = client.begin_recognize_content( myfile, - content_type=FormContentType.application_pdf + content_type=FormContentType.APPLICATION_PDF ) result = poller.result() self.assertIsNotNone(result) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_async.py index 9c13de807c60..9a2dc3cd153a 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_async.py @@ -29,34 +29,38 @@ async def test_content_bad_endpoint(self, resource_group, location, form_recogni myfile = fd.read() with self.assertRaises(ServiceRequestError): client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) - poller = await client.begin_recognize_content(myfile) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myfile) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_authentication_successful_key(self, client): with open(self.invoice_pdf, "rb") as fd: myfile = fd.read() - poller = await client.begin_recognize_content(myfile) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myfile) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_content_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - poller = await client.begin_recognize_content(b"xxx", content_type="application/pdf") - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(b"xxx", content_type="application/pdf") + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_passing_enum_content_type(self, client): with open(self.invoice_pdf, "rb") as fd: myfile = fd.read() - poller = await client.begin_recognize_content( - myfile, - content_type=FormContentType.application_pdf - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content( + myfile, + content_type=FormContentType.APPLICATION_PDF + ) + result = await poller.result() self.assertIsNotNone(result) @GlobalFormRecognizerAccountPreparer() @@ -64,50 +68,55 @@ async def test_passing_enum_content_type(self, client): async def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_content( - damaged_pdf, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content( + damaged_pdf, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers with self.assertRaises(ValueError): - poller = await client.begin_recognize_content( - damaged_pdf, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content( + damaged_pdf, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_content( - damaged_pdf, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content( + damaged_pdf, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers with self.assertRaises(ValueError): - poller = await client.begin_recognize_content( - damaged_pdf, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content( + damaged_pdf, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_blank_page(self, client): with open(self.blank_pdf, "rb") as fd: blank = fd.read() - poller = await client.begin_recognize_content( - blank, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content( + blank, + ) + result = await poller.result() self.assertIsNotNone(result) @GlobalFormRecognizerAccountPreparer() @@ -116,18 +125,20 @@ async def test_passing_bad_content_type_param_passed(self, client): with open(self.invoice_pdf, "rb") as fd: myfile = fd.read() with self.assertRaises(ValueError): - poller = await client.begin_recognize_content( - myfile, - content_type="application/jpeg" - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content( + myfile, + content_type="application/jpeg" + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_stream_passing_url(self, client): with self.assertRaises(TypeError): - poller = await client.begin_recognize_content("https://badurl.jpg", content_type="application/json") - result = await poller.result() + async with client: + poller = await client.begin_recognize_content("https://badurl.jpg", content_type="application/json") + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -136,10 +147,11 @@ async def test_auto_detect_unsupported_stream_content(self, client): myfile = fd.read() with self.assertRaises(ValueError): - poller = await client.begin_recognize_content( - myfile - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content( + myfile + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -155,8 +167,9 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_layout) - poller = await client.begin_recognize_content(myform, cls=callback) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myform, cls=callback) + result = await poller.result() raw_response = responses[0] layout = responses[1] page_results = raw_response.analyze_result.page_results @@ -171,8 +184,9 @@ async def test_content_stream_pdf(self, client): with open(self.invoice_pdf, "rb") as fd: myform = fd.read() - poller = await client.begin_recognize_content(myform) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myform) + result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) @@ -195,8 +209,9 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_layout) - poller = await client.begin_recognize_content(myform, cls=callback) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myform, cls=callback) + result = await poller.result() raw_response = responses[0] layout = responses[1] page_results = raw_response.analyze_result.page_results @@ -211,8 +226,9 @@ async def test_content_stream_jpg(self, client): with open(self.form_jpg, "rb") as fd: myform = fd.read() - poller = await client.begin_recognize_content(myform) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myform) + result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) @@ -229,8 +245,9 @@ async def test_content_stream_jpg(self, client): async def test_content_multipage(self, client): with open(self.multipage_invoice_pdf, "rb") as fd: invoice = fd.read() - poller = await client.begin_recognize_content(invoice) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(invoice) + result = await poller.result() self.assertEqual(len(result), 3) self.assertFormPagesHasValues(result) @@ -249,8 +266,9 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_layout) - poller = await client.begin_recognize_content(myform, cls=callback) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myform, cls=callback) + result = await poller.result() raw_response = responses[0] layout = responses[1] page_results = raw_response.analyze_result.page_results @@ -265,13 +283,13 @@ def callback(raw_response, _, headers): async def test_content_continuation_token(self, client): with open(self.form_jpg, "rb") as fd: myfile = fd.read() - initial_poller = await client.begin_recognize_content(myfile) - cont_token = initial_poller.continuation_token() - - poller = await client.begin_recognize_content(myfile, continuation_token=cont_token) - result = await poller.result() - self.assertIsNotNone(result) - await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error + async with client: + initial_poller = await client.begin_recognize_content(myfile) + cont_token = initial_poller.continuation_token() + poller = await client.begin_recognize_content(myfile, continuation_token=cont_token) + result = await poller.result() + self.assertIsNotNone(result) + await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error @GlobalFormRecognizerAccountPreparer() @@ -279,8 +297,9 @@ async def test_content_continuation_token(self, client): async def test_content_multipage_table_span_pdf(self, client): with open(self.multipage_table_pdf, "rb") as fd: myfile = fd.read() - poller = await client.begin_recognize_content(myfile) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myfile) + result = await poller.result() self.assertEqual(len(result), 2) layout = result[0] self.assertEqual(layout.page_number, 1) @@ -312,9 +331,9 @@ def callback(raw_response, _, headers): extracted_layout = prepare_content_result(analyze_result) responses.append(analyze_result) responses.append(extracted_layout) - - poller = await client.begin_recognize_content(myform, cls=callback) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content(myform, cls=callback) + result = await poller.result() raw_response = responses[0] layout = responses[1] page_results = raw_response.analyze_result.page_results diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url.py index 6726de20b83f..6c22b94259b1 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url.py @@ -23,10 +23,10 @@ class TestContentFromUrl(FormRecognizerTest): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() def test_content_encoded_url(self, client): - try: + with pytest.raises(HttpResponseError) as e: poller = client.begin_recognize_content_from_url("https://fakeuri.com/blank%20space") - except HttpResponseError as e: - self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) + client.close() + self.assertIn("https://fakeuri.com/blank%20space", e.value.response.request.body) @GlobalFormRecognizerAccountPreparer() def test_content_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url_async.py index 0c94b7a9fb66..10e727bf120f 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url_async.py @@ -24,37 +24,41 @@ class TestContentFromUrlAsync(AsyncFormRecognizerTest): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_encoded_url(self, client): - try: + with pytest.raises(HttpResponseError) as e: poller = await client.begin_recognize_content_from_url("https://fakeuri.com/blank%20space") - except HttpResponseError as e: - self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) + await client.close() + self.assertIn("https://fakeuri.com/blank%20space", e.value.response.request.body) @GlobalFormRecognizerAccountPreparer() async def test_content_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): with self.assertRaises(ServiceRequestError): client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) - poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_url_auth_successful_key(self, client): - poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_content_url_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_bad_url(self, client): with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_content_from_url("https://badurl.jpg") - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url("https://badurl.jpg") + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -63,8 +67,9 @@ async def test_content_url_pass_stream(self, client): receipt = fd.read(4) # makes the recording smaller with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_content_from_url(receipt) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(receipt) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -77,8 +82,9 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_layout) - poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf, cls=callback) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf, cls=callback) + result = await poller.result() raw_response = responses[0] layout = responses[1] page_results = raw_response.analyze_result.page_results @@ -90,8 +96,9 @@ def callback(raw_response, _, headers): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_url_pdf(self, client): - poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) + result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) @@ -111,8 +118,9 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_layout) - poller = await client.begin_recognize_content_from_url(self.form_url_jpg, cls=callback) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.form_url_jpg, cls=callback) + result = await poller.result() raw_response = responses[0] layout = responses[1] page_results = raw_response.analyze_result.page_results @@ -124,8 +132,9 @@ def callback(raw_response, _, headers): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_url_jpg(self, client): - poller = await client.begin_recognize_content_from_url(self.form_url_jpg) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.form_url_jpg) + result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) @@ -140,8 +149,9 @@ async def test_content_url_jpg(self, client): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_multipage_url(self, client): - poller = await client.begin_recognize_content_from_url(self.multipage_url_pdf) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.multipage_url_pdf) + result = await poller.result() self.assertEqual(len(result), 3) self.assertFormPagesHasValues(result) @@ -156,8 +166,9 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_layout) - poller = await client.begin_recognize_content_from_url(self.multipage_url_pdf, cls=callback) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.multipage_url_pdf, cls=callback) + result = await poller.result() raw_response = responses[0] layout = responses[1] page_results = raw_response.analyze_result.page_results @@ -170,19 +181,21 @@ def callback(raw_response, _, headers): @GlobalClientPreparer() @pytest.mark.live_test_only async def test_content_continuation_token(self, client): - initial_poller = await client.begin_recognize_content_from_url(self.form_url_jpg) - cont_token = initial_poller.continuation_token() + async with client: + initial_poller = await client.begin_recognize_content_from_url(self.form_url_jpg) + cont_token = initial_poller.continuation_token() - poller = await client.begin_recognize_content_from_url(self.form_url_jpg, continuation_token=cont_token) - result = await poller.result() - self.assertIsNotNone(result) - await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error + poller = await client.begin_recognize_content_from_url(self.form_url_jpg, continuation_token=cont_token) + result = await poller.result() + self.assertIsNotNone(result) + await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_content_multipage_table_span_pdf(self, client): - poller = await client.begin_recognize_content_from_url(self.multipage_table_url_pdf) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.multipage_table_url_pdf) + result = await poller.result() self.assertEqual(len(result), 2) layout = result[0] self.assertEqual(layout.page_number, 1) @@ -212,8 +225,9 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_layout) - poller = await client.begin_recognize_content_from_url(self.multipage_table_url_pdf, cls=callback) - result = await poller.result() + async with client: + poller = await client.begin_recognize_content_from_url(self.multipage_table_url_pdf, cls=callback) + result = await poller.result() raw_response = responses[0] layout = responses[1] page_results = raw_response.analyze_result.page_results diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model.py index 08073e8b3c7b..12614c9dc58a 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model.py @@ -62,9 +62,11 @@ def test_copy_model_fail(self, client, container_sas_url, location, resource_id) # give an incorrect region target = client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) - with self.assertRaises(HttpResponseError): + with pytest.raises(HttpResponseError) as e: poller = client.begin_copy_model(model.model_id, target=target) copy = poller.result() + self.assertIsNotNone(e.value.error.code) + self.assertIsNotNone(e.value.error.message) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, copy=True) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model_async.py index cd0ee6cb8ff3..b9f3ef1242a8 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model_async.py @@ -24,27 +24,29 @@ class TestCopyModelAsync(AsyncFormRecognizerTest): @GlobalClientPreparer(training=True) async def test_copy_model_none_model_id(self, client, container_sas_url): with self.assertRaises(ValueError): - await client.begin_copy_model(model_id=None, target={}) + async with client: + await client.begin_copy_model(model_id=None, target={}) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_copy_model_empty_model_id(self, client, container_sas_url): with self.assertRaises(ValueError): - await client.begin_copy_model(model_id="", target={}) + async with client: + await client.begin_copy_model(model_id="", target={}) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, copy=True) async def test_copy_model_successful(self, client, container_sas_url, location, resource_id): + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() + target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + copy_poller = await client.begin_copy_model(model.model_id, target=target) + copy = await copy_poller.result() - copy_poller = await client.begin_copy_model(model.model_id, target=target) - copy = await copy_poller.result() - - copied_model = await client.get_custom_model(copy.model_id) + copied_model = await client.get_custom_model(copy.model_id) self.assertEqual(copy.status, "ready") self.assertIsNotNone(copy.training_started_on) @@ -56,51 +58,53 @@ async def test_copy_model_successful(self, client, container_sas_url, location, @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, copy=True) async def test_copy_model_fail(self, client, container_sas_url, location, resource_id): + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - - # give an incorrect region - target = await client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) + # give an incorrect region + target = await client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) - with self.assertRaises(HttpResponseError): - poller = await client.begin_copy_model(model.model_id, target=target) - copy = await poller.result() + with pytest.raises(HttpResponseError) as e: + poller = await client.begin_copy_model(model.model_id, target=target) + copy = await poller.result() + self.assertIsNotNone(e.value.error.code) + self.assertIsNotNone(e.value.error.message) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, copy=True) async def test_copy_model_fail_bad_model_id(self, client, container_sas_url, location, resource_id): pytest.skip("service team will tell us when to enable this test") + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() - poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() - - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) - with self.assertRaises(HttpResponseError): - # give bad model_id - poller = await client.begin_copy_model("00000000-0000-0000-0000-000000000000", target=target) - copy = await poller.result() + with self.assertRaises(HttpResponseError): + # give bad model_id + poller = await client.begin_copy_model("00000000-0000-0000-0000-000000000000", target=target) + copy = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, copy=True) async def test_copy_model_transform(self, client, container_sas_url, location, resource_id): - - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) - - raw_response = [] - def callback(response, _, headers): copy_result = client._client._deserialize(CopyOperationResult, response) model_info = CustomFormModelInfo._from_generated(copy_result, target["modelId"]) raw_response.append(copy_result) raw_response.append(model_info) - poller = await client.begin_copy_model(model.model_id, target=target, cls=callback) - copy = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() + + target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + + raw_response = [] + + poller = await client.begin_copy_model(model.model_id, target=target, cls=callback) + copy = await poller.result() actual = raw_response[0] copy = raw_response[1] @@ -112,8 +116,8 @@ def callback(response, _, headers): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, copy=True) async def test_copy_authorization(self, client, container_sas_url, location, resource_id): - - target = await client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) + async with client: + target = await client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) self.assertIsNotNone(target["modelId"]) self.assertIsNotNone(target["accessToken"]) @@ -125,18 +129,18 @@ async def test_copy_authorization(self, client, container_sas_url, location, res @GlobalClientPreparer(training=True, copy=True) @pytest.mark.live_test_only async def test_copy_continuation_token(self, client, container_sas_url, location, resource_id): + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() - poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() + target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + initial_poller = await client.begin_copy_model(model.model_id, target=target) + cont_token = initial_poller.continuation_token() + poller = await client.begin_copy_model(model.model_id, target=target, continuation_token=cont_token) + result = await poller.result() + self.assertIsNotNone(result) - initial_poller = await client.begin_copy_model(model.model_id, target=target) - cont_token = initial_poller.continuation_token() - poller = await client.begin_copy_model(model.model_id, target=target, continuation_token=cont_token) - result = await poller.result() - self.assertIsNotNone(result) - - copied_model = await client.get_custom_model(result.model_id) - self.assertIsNotNone(copied_model) - await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error + copied_model = await client.get_custom_model(result.model_id) + self.assertIsNotNone(copied_model) + await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py index 5d62713ac4fc..9cacd7473387 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py @@ -133,7 +133,7 @@ def test_custom_form_unlabeled(self, client, container_sas_url): poller = fr_client.begin_recognize_custom_forms( model.model_id, stream, - content_type=FormContentType.image_jpeg + content_type=FormContentType.IMAGE_JPEG ) form = poller.result() @@ -158,7 +158,7 @@ def test_custom_form_multipage_unlabeled(self, client, container_sas_url): poller = fr_client.begin_recognize_custom_forms( model.model_id, stream, - content_type=FormContentType.application_pdf + content_type=FormContentType.APPLICATION_PDF ) forms = poller.result() @@ -188,7 +188,7 @@ def test_custom_form_labeled(self, client, container_sas_url): with open(self.form_jpg, "rb") as fd: myfile = fd.read() - poller = fr_client.begin_recognize_custom_forms(model.model_id, myfile, content_type=FormContentType.image_jpeg) + poller = fr_client.begin_recognize_custom_forms(model.model_id, myfile, content_type=FormContentType.IMAGE_JPEG) form = poller.result() self.assertEqual(form[0].form_type, "form-"+model.model_id) @@ -216,7 +216,7 @@ def test_custom_form_multipage_labeled(self, client, container_sas_url): poller = fr_client.begin_recognize_custom_forms( model.model_id, myfile, - content_type=FormContentType.application_pdf + content_type=FormContentType.APPLICATION_PDF ) forms = poller.result() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_async.py index 614df3e0df50..f1333b0b7e88 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_async.py @@ -26,13 +26,15 @@ class TestCustomFormsAsync(AsyncFormRecognizerTest): async def test_custom_form_none_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) with self.assertRaises(ValueError): - await client.begin_recognize_custom_forms(model_id=None, form=b"xx") + async with client: + await client.begin_recognize_custom_forms(model_id=None, form=b"xx") @GlobalFormRecognizerAccountPreparer() async def test_custom_form_empty_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) with self.assertRaises(ValueError): - await client.begin_recognize_custom_forms(model_id="", form=b"xx") + async with client: + await client.begin_recognize_custom_forms(model_id="", form=b"xx") @GlobalFormRecognizerAccountPreparer() async def test_custom_form_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): @@ -40,23 +42,26 @@ async def test_custom_form_bad_endpoint(self, resource_group, location, form_rec myfile = fd.read() with self.assertRaises(ServiceRequestError): client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) - poller = await client.begin_recognize_custom_forms(model_id="xx", form=myfile) - result = await poller.result() + async with client: + poller = await client.begin_recognize_custom_forms(model_id="xx", form=myfile) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - poller = await client.begin_recognize_custom_forms(model_id="xx", form=b"xx", content_type="image/jpeg") - result = await poller.result() + async with client: + poller = await client.begin_recognize_custom_forms(model_id="xx", form=b"xx", content_type="image/jpeg") + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_passing_unsupported_url_content_type(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) with self.assertRaises(TypeError): - poller = await client.begin_recognize_custom_forms(model_id="xx", form="https://badurl.jpg", content_type="application/json") - result = await poller.result() + async with client: + poller = await client.begin_recognize_custom_forms(model_id="xx", form="https://badurl.jpg", content_type="application/json") + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_auto_detect_unsupported_stream_content(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): @@ -66,42 +71,46 @@ async def test_auto_detect_unsupported_stream_content(self, resource_group, loca myfile = fd.read() with self.assertRaises(ValueError): - poller = await client.begin_recognize_custom_forms( - model_id="xxx", - form=myfile, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_custom_forms( + model_id="xxx", + form=myfile, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_custom_form_damaged_file(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - - with self.assertRaises(HttpResponseError): - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - b"\x25\x50\x44\x46\x55\x55\x55", - ) - result = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() + + with self.assertRaises(HttpResponseError): + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + b"\x25\x50\x44\x46\x55\x55\x55", + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_custom_form_unlabeled_blank_page(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - - poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() - with open(self.blank_pdf, "rb") as fd: blank = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - blank - ) - form = await poller.result() + + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + blank + ) + form = await poller.result() self.assertEqual(len(form), 1) self.assertEqual(form[0].page_range.first_page_number, 1) @@ -112,17 +121,19 @@ async def test_custom_form_unlabeled_blank_page(self, client, container_sas_url) @GlobalClientPreparer(training=True) async def test_custom_form_labeled_blank_page(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - - poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await poller.result() - with open(self.blank_pdf, "rb") as fd: blank = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - blank - ) - form = await poller.result() + + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + blank + ) + form = await poller.result() self.assertEqual(len(form), 1) self.assertEqual(form[0].page_range.first_page_number, 1) @@ -134,14 +145,16 @@ async def test_custom_form_labeled_blank_page(self, client, container_sas_url): async def test_custom_form_unlabeled(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - with open(self.form_jpg, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms(model.model_id, myfile, content_type=FormContentType.image_jpeg) - form = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms(model.model_id, myfile, content_type=FormContentType.IMAGE_JPEG) + form = await poller.result() self.assertEqual(form[0].form_type, "form-0") self.assertFormPagesHasValues(form[0].pages) for label, field in form[0].fields.items(): @@ -155,19 +168,20 @@ async def test_custom_form_unlabeled(self, client, container_sas_url): @GlobalClientPreparer(training=True, multipage=True) async def test_custom_form_multipage_unlabeled(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - with open(self.multipage_invoice_pdf, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - content_type=FormContentType.application_pdf - ) - forms = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + content_type=FormContentType.APPLICATION_PDF + ) + forms = await poller.result() for form in forms: if form.form_type is None: @@ -186,14 +200,16 @@ async def test_custom_form_multipage_unlabeled(self, client, container_sas_url): async def test_custom_form_labeled(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await training_poller.result() - with open(self.form_jpg, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms(model.model_id, myfile, content_type=FormContentType.image_jpeg) - form = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms(model.model_id, myfile, content_type=FormContentType.IMAGE_JPEG) + form = await poller.result() self.assertEqual(form[0].form_type, "form-"+model.model_id) self.assertFormPagesHasValues(form[0].pages) @@ -207,22 +223,23 @@ async def test_custom_form_labeled(self, client, container_sas_url): @GlobalClientPreparer(training=True, multipage=True) async def test_custom_form_multipage_labeled(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - - training_poller = await client.begin_training( - container_sas_url, - use_training_labels=True - ) - model = await training_poller.result() - with open(self.multipage_invoice_pdf, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - content_type=FormContentType.application_pdf - ) - forms = await poller.result() + async with client: + training_poller = await client.begin_training( + container_sas_url, + use_training_labels=True + ) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + content_type=FormContentType.APPLICATION_PDF + ) + forms = await poller.result() for form in forms: self.assertEqual(form.form_type, "form-"+model.model_id) @@ -239,9 +256,6 @@ async def test_custom_form_multipage_labeled(self, client, container_sas_url): async def test_form_unlabeled_transform(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - responses = [] def callback(raw_response, _, headers): @@ -253,13 +267,18 @@ def callback(raw_response, _, headers): with open(self.form_jpg, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] @@ -277,9 +296,6 @@ def callback(raw_response, _, headers): async def test_custom_forms_multipage_unlabeled_transform(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - responses = [] def callback(raw_response, _, headers): @@ -291,13 +307,18 @@ def callback(raw_response, _, headers): with open(self.multipage_invoice_pdf, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] read_results = actual.analyze_result.read_results @@ -316,9 +337,6 @@ def callback(raw_response, _, headers): async def test_form_labeled_transform(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_polling = await client.begin_training(container_sas_url, use_training_labels=True) - model = await training_polling.result() - responses = [] def callback(raw_response, _, headers): @@ -330,13 +348,18 @@ def callback(raw_response, _, headers): with open(self.form_jpg, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + training_polling = await client.begin_training(container_sas_url, use_training_labels=True) + model = await training_polling.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] @@ -354,9 +377,6 @@ def callback(raw_response, _, headers): async def test_custom_forms_multipage_labeled_transform(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await training_poller.result() - responses = [] def callback(raw_response, _, headers): @@ -368,13 +388,18 @@ def callback(raw_response, _, headers): with open(self.multipage_invoice_pdf, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] @@ -394,35 +419,34 @@ def callback(raw_response, _, headers): @pytest.mark.live_test_only async def test_custom_form_continuation_token(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - - poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() - with open(self.form_jpg, "rb") as fd: myfile = fd.read() - initial_poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile - ) - - cont_token = initial_poller.continuation_token() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - continuation_token=cont_token - ) - result = await poller.result() - self.assertIsNotNone(result) - await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error + + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() + + async with fr_client: + initial_poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile + ) + + cont_token = initial_poller.continuation_token() + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + continuation_token=cont_token + ) + result = await poller.result() + self.assertIsNotNone(result) + await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, multipage2=True) async def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() - responses = [] def callback(raw_response, _, headers): @@ -434,13 +458,18 @@ def callback(raw_response, _, headers): with open(self.multipage_vendor_pdf, "rb") as fd: myfile = fd.read() - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] read_results = actual.analyze_result.read_results @@ -459,27 +488,29 @@ def callback(raw_response, _, headers): async def test_custom_form_multipage_vendor_set_labeled_transform(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await poller.result() - responses = [] + with open(self.multipage_vendor_pdf, "rb") as fd: + myfile = fd.read() + def callback(raw_response, _, headers): analyze_result = fr_client._client._deserialize(AnalyzeOperationResult, raw_response) form = prepare_form_result(analyze_result, model.model_id) responses.append(analyze_result) responses.append(form) - with open(self.multipage_vendor_pdf, "rb") as fd: - myfile = fd.read() - - poller = await fr_client.begin_recognize_custom_forms( - model.model_id, - myfile, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms( + model.model_id, + myfile, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] read_results = actual.analyze_result.read_results diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url.py index d132c934c6ee..971acdf34bad 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url.py @@ -81,12 +81,14 @@ def test_custom_form_bad_url(self, client, container_sas_url): poller = client.begin_training(container_sas_url, use_training_labels=True) model = poller.result() - with self.assertRaises(HttpResponseError): + with pytest.raises(HttpResponseError) as e: poller = fr_client.begin_recognize_custom_forms_from_url( model.model_id, form_url="https://badurl.jpg" ) form = poller.result() + self.assertIsNotNone(e.value.error.code) + self.assertIsNotNone(e.value.error.message) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url_async.py index 010c3a07449f..983e301f6f4f 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url_async.py @@ -24,47 +24,54 @@ class TestCustomFormsFromUrlAsync(AsyncFormRecognizerTest): @GlobalFormRecognizerAccountPreparer() async def test_custom_forms_encoded_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) - try: - poller = await client.begin_recognize_custom_forms_from_url( - model_id="00000000-0000-0000-0000-000000000000", - form_url="https://fakeuri.com/blank%20space" - ) - except HttpResponseError as e: - self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) + with pytest.raises(HttpResponseError) as e: + async with client: + poller = await client.begin_recognize_custom_forms_from_url( + model_id="00000000-0000-0000-0000-000000000000", + form_url="https://fakeuri.com/blank%20space" + ) + self.assertIn("https://fakeuri.com/blank%20space", e.value.response.request.body) @GlobalFormRecognizerAccountPreparer() async def test_custom_form_none_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) with self.assertRaises(ValueError): - await client.begin_recognize_custom_forms_from_url(model_id=None, form_url="https://badurl.jpg") + async with client: + await client.begin_recognize_custom_forms_from_url(model_id=None, form_url="https://badurl.jpg") @GlobalFormRecognizerAccountPreparer() async def test_custom_form_empty_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) with self.assertRaises(ValueError): - await client.begin_recognize_custom_forms_from_url(model_id="", form_url="https://badurl.jpg") + async with client: + await client.begin_recognize_custom_forms_from_url(model_id="", form_url="https://badurl.jpg") @GlobalFormRecognizerAccountPreparer() async def test_custom_form_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): with self.assertRaises(ServiceRequestError): client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) - poller = await client.begin_recognize_custom_forms_from_url(model_id="xx", form_url=self.form_url_jpg) - result = await poller.result() + async with client: + poller = await client.begin_recognize_custom_forms_from_url(model_id="xx", form_url=self.form_url_jpg) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_url_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - poller = await client.begin_recognize_custom_forms_from_url(model_id="xx", form_url=self.form_url_jpg) - result = await poller.result() + async with client: + poller = await client.begin_recognize_custom_forms_from_url(model_id="xx", form_url=self.form_url_jpg) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_passing_bad_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) - with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_custom_forms_from_url(model_id="xx", form_url="https://badurl.jpg") - result = await poller.result() + with pytest.raises(HttpResponseError) as e: + async with client: + poller = await client.begin_recognize_custom_forms_from_url(model_id="xx", form_url="https://badurl.jpg") + result = await poller.result() + self.assertIsNotNone(e.value.error.code) + self.assertIsNotNone(e.value.error.message) @GlobalFormRecognizerAccountPreparer() async def test_pass_stream_into_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): @@ -72,37 +79,42 @@ async def test_pass_stream_into_url(self, resource_group, location, form_recogni with open(self.unsupported_content_py, "rb") as fd: with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_custom_forms_from_url( - model_id="xxx", - form_url=fd, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_custom_forms_from_url( + model_id="xxx", + form_url=fd, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_form_bad_url(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await training_poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await training_poller.result() - with self.assertRaises(HttpResponseError): - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - form_url="https://badurl.jpg" - ) - result = await poller.result() + with self.assertRaises(HttpResponseError): + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + form_url="https://badurl.jpg" + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_form_unlabeled(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() - poller = await fr_client.begin_recognize_custom_forms_from_url(model.model_id, self.form_url_jpg) - form = await poller.result() + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url(model.model_id, self.form_url_jpg) + form = await poller.result() self.assertEqual(form[0].form_type, "form-0") self.assertFormPagesHasValues(form[0].pages) @@ -118,14 +130,16 @@ async def test_form_unlabeled(self, client, container_sas_url): async def test_custom_form_multipage_unlabeled(self, client, container_sas_url, blob_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - blob_sas_url, - ) - forms = await poller.result() + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + blob_sas_url, + ) + forms = await poller.result() for form in forms: if form.form_type is None: @@ -144,11 +158,13 @@ async def test_custom_form_multipage_unlabeled(self, client, container_sas_url, async def test_form_labeled(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await training_poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await training_poller.result() - poller = await fr_client.begin_recognize_custom_forms_from_url(model.model_id, self.form_url_jpg) - form = await poller.result() + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url(model.model_id, self.form_url_jpg) + form = await poller.result() self.assertEqual(form[0].form_type, "form-"+model.model_id) self.assertFormPagesHasValues(form[0].pages) @@ -163,17 +179,19 @@ async def test_form_labeled(self, client, container_sas_url): async def test_form_multipage_labeled(self, client, container_sas_url, blob_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training( - container_sas_url, - use_training_labels=True - ) - model = await training_poller.result() + async with client: + training_poller = await client.begin_training( + container_sas_url, + use_training_labels=True + ) + model = await training_poller.result() - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - blob_sas_url - ) - forms = await poller.result() + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + blob_sas_url + ) + forms = await poller.result() for form in forms: self.assertEqual(form.form_type, "form-"+model.model_id) @@ -188,10 +206,6 @@ async def test_form_multipage_labeled(self, client, container_sas_url, blob_sas_ @GlobalClientPreparer(training=True) async def test_form_unlabeled_transform(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - responses = [] def callback(raw_response, _, headers): @@ -200,13 +214,18 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(form) - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - self.form_url_jpg, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + self.form_url_jpg, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] @@ -224,9 +243,6 @@ def callback(raw_response, _, headers): async def test_multipage_unlabeled_transform(self, client, container_sas_url, blob_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await training_poller.result() - responses = [] def callback(raw_response, _, headers): @@ -235,14 +251,19 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(form) - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - blob_sas_url, - include_field_elements=True, - cls=callback - ) + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await training_poller.result() - form = await poller.result() + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + blob_sas_url, + include_field_elements=True, + cls=callback + ) + + form = await poller.result() actual = responses[0] recognized_form = responses[1] read_results = actual.analyze_result.read_results @@ -260,9 +281,6 @@ def callback(raw_response, _, headers): async def test_form_labeled_transform(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await training_poller.result() - responses = [] def callback(raw_response, _, headers): @@ -271,13 +289,18 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(form) - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - self.form_url_jpg, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + self.form_url_jpg, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] @@ -295,9 +318,6 @@ def callback(raw_response, _, headers): async def test_multipage_labeled_transform(self, client, container_sas_url, blob_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await training_poller.result() - responses = [] def callback(raw_response, _, headers): @@ -306,13 +326,18 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(form) - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - blob_sas_url, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await training_poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + blob_sas_url, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] @@ -333,31 +358,30 @@ def callback(raw_response, _, headers): async def test_custom_form_continuation_token(self, client, container_sas_url): fr_client = client.get_form_recognizer_client() - poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() - - initial_poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - self.form_url_jpg - ) - cont_token = initial_poller.continuation_token() - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - self.form_url_jpg, - continuation_token=cont_token - ) - result = await poller.result() - self.assertIsNotNone(result) - await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() + + async with fr_client: + initial_poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + self.form_url_jpg + ) + cont_token = initial_poller.continuation_token() + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + self.form_url_jpg, + continuation_token=cont_token + ) + result = await poller.result() + self.assertIsNotNone(result) + await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, multipage2=True, blob_sas_url=True) async def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, container_sas_url, blob_sas_url): fr_client = client.get_form_recognizer_client() - poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() - responses = [] def callback(raw_response, _, headers): @@ -366,13 +390,18 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(form) - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - blob_sas_url, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + blob_sas_url, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] read_results = actual.analyze_result.read_results @@ -391,9 +420,6 @@ def callback(raw_response, _, headers): async def test_custom_form_multipage_vendor_set_labeled_transform(self, client, container_sas_url, blob_sas_url): fr_client = client.get_form_recognizer_client() - poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await poller.result() - responses = [] def callback(raw_response, _, headers): @@ -402,13 +428,18 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(form) - poller = await fr_client.begin_recognize_custom_forms_from_url( - model.model_id, - blob_sas_url, - include_field_elements=True, - cls=callback - ) - form = await poller.result() + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await poller.result() + + async with fr_client: + poller = await fr_client.begin_recognize_custom_forms_from_url( + model.model_id, + blob_sas_url, + include_field_elements=True, + cls=callback + ) + form = await poller.result() actual = responses[0] recognized_form = responses[1] read_results = actual.analyze_result.read_results diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt.py index 1f10a73a4342..7191ee407113 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt.py @@ -91,7 +91,7 @@ def test_mgmt_model_labeled(self, client, container_sas_url): self.assertEqual(labeled_model_from_train.training_completed_on, labeled_model_from_get.training_completed_on) self.assertEqual(labeled_model_from_train.errors, labeled_model_from_get.errors) for a, b in zip(labeled_model_from_train.training_documents, labeled_model_from_get.training_documents): - self.assertEqual(a.document_name, b.document_name) + self.assertEqual(a.name, b.name) self.assertEqual(a.errors, b.errors) self.assertEqual(a.page_count, b.page_count) self.assertEqual(a.status, b.status) @@ -127,7 +127,7 @@ def test_mgmt_model_unlabeled(self, client, container_sas_url): self.assertEqual(unlabeled_model_from_train.training_completed_on, unlabeled_model_from_get.training_completed_on) self.assertEqual(unlabeled_model_from_train.errors, unlabeled_model_from_get.errors) for a, b in zip(unlabeled_model_from_train.training_documents, unlabeled_model_from_get.training_documents): - self.assertEqual(a.document_name, b.document_name) + self.assertEqual(a.name, b.name) self.assertEqual(a.errors, b.errors) self.assertEqual(a.page_count, b.page_count) self.assertEqual(a.status, b.status) @@ -163,8 +163,7 @@ def test_get_form_recognizer_client(self, resource_group, location, form_recogni @GlobalFormRecognizerAccountPreparer() def test_api_version_form_training_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - transport = RequestsTransport() with self.assertRaises(ValueError): - ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), transport=transport, api_version="2.1") + ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), api_version="2.1") - ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), transport=transport, api_version="2.0") + ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), api_version="2.0") diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt_async.py index 6278cf8861d1..2dcfe223eee3 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt_async.py @@ -26,63 +26,73 @@ async def test_active_directory_auth_async(self): token = self.generate_oauth_token() endpoint = self.get_oauth_endpoint() client = FormTrainingClient(endpoint, token) - props = await client.get_account_properties() + async with client: + props = await client.get_account_properties() self.assertIsNotNone(props) @GlobalFormRecognizerAccountPreparer() async def test_account_properties_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - result = await client.get_account_properties() + async with client: + result = await client.get_account_properties() @GlobalFormRecognizerAccountPreparer() async def test_get_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - result = await client.get_custom_model("xx") + async with client: + result = await client.get_custom_model("xx") @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_get_model_empty_model_id(self, client): with self.assertRaises(ValueError): - result = await client.get_custom_model("") + async with client: + result = await client.get_custom_model("") @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_get_model_none_model_id(self, client): with self.assertRaises(ValueError): - result = await client.get_custom_model(None) + async with client: + result = await client.get_custom_model(None) @GlobalFormRecognizerAccountPreparer() async def test_list_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - result = client.list_custom_models() - async for res in result: - test = res + async with client: + result = client.list_custom_models() + async for res in result: + test = res @GlobalFormRecognizerAccountPreparer() async def test_delete_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - result = await client.delete_model("xx") + async with client: + result = await client.delete_model("xx") @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_delete_model_none_model_id(self, client): with self.assertRaises(ValueError): - result = await client.delete_model(None) + async with client: + result = await client.delete_model(None) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_delete_model_empty_model_id(self, client): with self.assertRaises(ValueError): - result = await client.delete_model("") + async with client: + result = await client.delete_model("") @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_account_properties(self, client): - properties = await client.get_account_properties() + async with client: + properties = await client.get_account_properties() self.assertIsNotNone(properties.custom_model_limit) self.assertIsNotNone(properties.custom_model_count) @@ -90,70 +100,71 @@ async def test_account_properties(self, client): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_mgmt_model_labeled(self, client, container_sas_url): - - poller = await client.begin_training(container_sas_url, use_training_labels=True) - labeled_model_from_train = await poller.result() - labeled_model_from_get = await client.get_custom_model(labeled_model_from_train.model_id) - - self.assertEqual(labeled_model_from_train.model_id, labeled_model_from_get.model_id) - self.assertEqual(labeled_model_from_train.status, labeled_model_from_get.status) - self.assertEqual(labeled_model_from_train.training_started_on, labeled_model_from_get.training_started_on) - self.assertEqual(labeled_model_from_train.training_completed_on, labeled_model_from_get.training_completed_on) - self.assertEqual(labeled_model_from_train.errors, labeled_model_from_get.errors) - for a, b in zip(labeled_model_from_train.training_documents, labeled_model_from_get.training_documents): - self.assertEqual(a.document_name, b.document_name) - self.assertEqual(a.errors, b.errors) - self.assertEqual(a.page_count, b.page_count) - self.assertEqual(a.status, b.status) - for a, b in zip(labeled_model_from_train.submodels, labeled_model_from_get.submodels): - for field1, field2 in zip(a.fields.items(), b.fields.items()): - self.assertEqual(a.fields[field1[0]].name, b.fields[field2[0]].name) - self.assertEqual(a.fields[field1[0]].accuracy, b.fields[field2[0]].accuracy) - - models_list = client.list_custom_models() - async for model in models_list: - self.assertIsNotNone(model.model_id) - self.assertIsNotNone(model.status) - self.assertIsNotNone(model.training_started_on) - self.assertIsNotNone(model.training_completed_on) - - await client.delete_model(labeled_model_from_train.model_id) - - with self.assertRaises(ResourceNotFoundError): - await client.get_custom_model(labeled_model_from_train.model_id) + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=True) + labeled_model_from_train = await poller.result() + labeled_model_from_get = await client.get_custom_model(labeled_model_from_train.model_id) + + self.assertEqual(labeled_model_from_train.model_id, labeled_model_from_get.model_id) + self.assertEqual(labeled_model_from_train.status, labeled_model_from_get.status) + self.assertEqual(labeled_model_from_train.training_started_on, labeled_model_from_get.training_started_on) + self.assertEqual(labeled_model_from_train.training_completed_on, labeled_model_from_get.training_completed_on) + self.assertEqual(labeled_model_from_train.errors, labeled_model_from_get.errors) + for a, b in zip(labeled_model_from_train.training_documents, labeled_model_from_get.training_documents): + self.assertEqual(a.name, b.name) + self.assertEqual(a.errors, b.errors) + self.assertEqual(a.page_count, b.page_count) + self.assertEqual(a.status, b.status) + for a, b in zip(labeled_model_from_train.submodels, labeled_model_from_get.submodels): + for field1, field2 in zip(a.fields.items(), b.fields.items()): + self.assertEqual(a.fields[field1[0]].name, b.fields[field2[0]].name) + self.assertEqual(a.fields[field1[0]].accuracy, b.fields[field2[0]].accuracy) + + models_list = client.list_custom_models() + async for model in models_list: + self.assertIsNotNone(model.model_id) + self.assertIsNotNone(model.status) + self.assertIsNotNone(model.training_started_on) + self.assertIsNotNone(model.training_completed_on) + + await client.delete_model(labeled_model_from_train.model_id) + + with self.assertRaises(ResourceNotFoundError): + await client.get_custom_model(labeled_model_from_train.model_id) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_mgmt_model_unlabeled(self, client, container_sas_url): - poller = await client.begin_training(container_sas_url, use_training_labels=False) - unlabeled_model_from_train = await poller.result() - unlabeled_model_from_get = await client.get_custom_model(unlabeled_model_from_train.model_id) - - self.assertEqual(unlabeled_model_from_train.model_id, unlabeled_model_from_get.model_id) - self.assertEqual(unlabeled_model_from_train.status, unlabeled_model_from_get.status) - self.assertEqual(unlabeled_model_from_train.training_started_on, unlabeled_model_from_get.training_started_on) - self.assertEqual(unlabeled_model_from_train.training_completed_on, unlabeled_model_from_get.training_completed_on) - self.assertEqual(unlabeled_model_from_train.errors, unlabeled_model_from_get.errors) - for a, b in zip(unlabeled_model_from_train.training_documents, unlabeled_model_from_get.training_documents): - self.assertEqual(a.document_name, b.document_name) - self.assertEqual(a.errors, b.errors) - self.assertEqual(a.page_count, b.page_count) - self.assertEqual(a.status, b.status) - for a, b in zip(unlabeled_model_from_train.submodels, unlabeled_model_from_get.submodels): - for field1, field2 in zip(a.fields.items(), b.fields.items()): - self.assertEqual(a.fields[field1[0]].label, b.fields[field2[0]].label) - - models_list = client.list_custom_models() - async for model in models_list: - self.assertIsNotNone(model.model_id) - self.assertIsNotNone(model.status) - self.assertIsNotNone(model.training_started_on) - self.assertIsNotNone(model.training_completed_on) - - await client.delete_model(unlabeled_model_from_train.model_id) - - with self.assertRaises(ResourceNotFoundError): - await client.get_custom_model(unlabeled_model_from_train.model_id) + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + unlabeled_model_from_train = await poller.result() + unlabeled_model_from_get = await client.get_custom_model(unlabeled_model_from_train.model_id) + + self.assertEqual(unlabeled_model_from_train.model_id, unlabeled_model_from_get.model_id) + self.assertEqual(unlabeled_model_from_train.status, unlabeled_model_from_get.status) + self.assertEqual(unlabeled_model_from_train.training_started_on, unlabeled_model_from_get.training_started_on) + self.assertEqual(unlabeled_model_from_train.training_completed_on, unlabeled_model_from_get.training_completed_on) + self.assertEqual(unlabeled_model_from_train.errors, unlabeled_model_from_get.errors) + for a, b in zip(unlabeled_model_from_train.training_documents, unlabeled_model_from_get.training_documents): + self.assertEqual(a.name, b.name) + self.assertEqual(a.errors, b.errors) + self.assertEqual(a.page_count, b.page_count) + self.assertEqual(a.status, b.status) + for a, b in zip(unlabeled_model_from_train.submodels, unlabeled_model_from_get.submodels): + for field1, field2 in zip(a.fields.items(), b.fields.items()): + self.assertEqual(a.fields[field1[0]].label, b.fields[field2[0]].label) + + models_list = client.list_custom_models() + async for model in models_list: + self.assertIsNotNone(model.model_id) + self.assertIsNotNone(model.status) + self.assertIsNotNone(model.training_started_on) + self.assertIsNotNone(model.training_completed_on) + + await client.delete_model(unlabeled_model_from_train.model_id) + + with self.assertRaises(ResourceNotFoundError): + await client.get_custom_model(unlabeled_model_from_train.model_id) @GlobalFormRecognizerAccountPreparer() async def test_get_form_recognizer_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py index 1c7a0bbfd4e6..8c14a8f120f8 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py @@ -51,7 +51,7 @@ def test_passing_enum_content_type(self, client): myfile = fd.read() poller = client.begin_recognize_receipts( myfile, - content_type=FormContentType.image_png + content_type=FormContentType.IMAGE_PNG ) result = poller.result() self.assertIsNotNone(result) @@ -310,10 +310,10 @@ def test_receipt_jpg_include_field_elements(self, client): for field, value in receipt.__dict__.items(): if field not in ["receipt_items", "page_range", "pages", "fields", "form_type"]: form_field = getattr(receipt, field) - self.assertTextContentHasValues(form_field.value_data.field_elements, receipt.page_range.first_page_number) + self.assertFieldElementsHasValues(form_field.value_data.field_elements, receipt.page_range.first_page_number) for field, value in receipt.fields.items(): - self.assertTextContentHasValues(value.value_data.field_elements, receipt.page_range.first_page_number) + self.assertFieldElementsHasValues(value.value_data.field_elements, receipt.page_range.first_page_number) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py index 0bb248a0f2d5..7c7e76545f03 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py @@ -30,34 +30,38 @@ async def test_receipt_bad_endpoint(self, resource_group, location, form_recogni myfile = fd.read() with self.assertRaises(ServiceRequestError): client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) - poller = await client.begin_recognize_receipts(myfile) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts(myfile) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_authentication_successful_key(self, client): with open(self.receipt_jpg, "rb") as fd: myfile = fd.read() - poller = await client.begin_recognize_receipts(myfile) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts(myfile) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - poller = await client.begin_recognize_receipts(b"xx", content_type="image/jpeg") - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts(b"xx", content_type="image/jpeg") + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_passing_enum_content_type(self, client): with open(self.receipt_png, "rb") as fd: myfile = fd.read() - poller = await client.begin_recognize_receipts( - myfile, - content_type=FormContentType.image_png - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + myfile, + content_type=FormContentType.IMAGE_PNG + ) + result = await poller.result() self.assertIsNotNone(result) @GlobalFormRecognizerAccountPreparer() @@ -65,40 +69,44 @@ async def test_passing_enum_content_type(self, client): async def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_receipts( - damaged_pdf, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + damaged_pdf, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers with self.assertRaises(ValueError): - poller = await client.begin_recognize_receipts( - damaged_pdf, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + damaged_pdf, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_receipts( - damaged_pdf, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + damaged_pdf, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_damaged_file_bytes_io_fails_autodetect(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers with self.assertRaises(ValueError): - poller = await client.begin_recognize_receipts( - damaged_pdf, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + damaged_pdf, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -106,10 +114,11 @@ async def test_blank_page(self, client): with open(self.blank_pdf, "rb") as fd: blank = fd.read() - poller = await client.begin_recognize_receipts( - blank, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + blank, + ) + result = await poller.result() self.assertIsNotNone(result) @GlobalFormRecognizerAccountPreparer() @@ -118,18 +127,20 @@ async def test_passing_bad_content_type_param_passed(self, client): with open(self.receipt_jpg, "rb") as fd: myfile = fd.read() with self.assertRaises(ValueError): - poller = await client.begin_recognize_receipts( - myfile, - content_type="application/jpeg" - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + myfile, + content_type="application/jpeg" + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_passing_unsupported_url_content_type(self, client): with self.assertRaises(TypeError): - poller = await client.begin_recognize_receipts("https://badurl.jpg", content_type="application/json") - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts("https://badurl.jpg", content_type="application/json") + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -138,10 +149,11 @@ async def test_auto_detect_unsupported_stream_content(self, client): myfile = fd.read() with self.assertRaises(ValueError): - poller = await client.begin_recognize_receipts( - myfile, - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + myfile, + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -158,12 +170,13 @@ def callback(raw_response, _, headers): with open(self.receipt_png, "rb") as fd: myfile = fd.read() - poller = await client.begin_recognize_receipts( - receipt=myfile, - include_field_elements=True, - cls=callback - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + receipt=myfile, + include_field_elements=True, + cls=callback + ) + result = await poller.result() raw_response = responses[0] returned_model = responses[1] @@ -212,12 +225,13 @@ def callback(raw_response, _, headers): with open(self.receipt_jpg, "rb") as fd: myfile = fd.read() - poller = await client.begin_recognize_receipts( - receipt=myfile, - include_field_elements=True, - cls=callback - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + receipt=myfile, + include_field_elements=True, + cls=callback + ) + result = await poller.result() raw_response = responses[0] returned_model = responses[1] @@ -260,8 +274,9 @@ async def test_receipt_jpg(self, client): with open(self.receipt_jpg, "rb") as fd: receipt = fd.read() - poller = await client.begin_recognize_receipts(receipt) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts(receipt) + result = await poller.result() self.assertEqual(len(result), 1) receipt = result[0] @@ -288,8 +303,9 @@ async def test_receipt_png(self, client): with open(self.receipt_png, "rb") as fd: receipt = fd.read() - poller = await client.begin_recognize_receipts(receipt) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts(receipt) + result = await poller.result() self.assertEqual(len(result), 1) receipt = result[0] self.assertEqual(receipt.fields.get("MerchantAddress").value, '123 Main Street Redmond, WA 98052') @@ -311,8 +327,9 @@ async def test_receipt_png(self, client): async def test_receipt_jpg_include_field_elements(self, client): with open(self.receipt_jpg, "rb") as fd: receipt = fd.read() - poller = await client.begin_recognize_receipts(receipt, include_field_elements=True) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts(receipt, include_field_elements=True) + result = await poller.result() self.assertEqual(len(result), 1) receipt = result[0] @@ -321,18 +338,19 @@ async def test_receipt_jpg_include_field_elements(self, client): for field, value in receipt.__dict__.items(): if field not in ["receipt_items", "page_range", "pages", "fields", "form_type"]: form_field = getattr(receipt, field) - self.assertTextContentHasValues(form_field.value_data.field_elements, receipt.page_range.first_page_number) + self.assertFieldElementsHasValues(form_field.value_data.field_elements, receipt.page_range.first_page_number) for field, value in receipt.fields.items(): - self.assertTextContentHasValues(value.value_data.field_elements, receipt.page_range.first_page_number) + self.assertFieldElementsHasValues(value.value_data.field_elements, receipt.page_range.first_page_number) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_receipt_multipage(self, client): with open(self.multipage_invoice_pdf, "rb") as fd: receipt = fd.read() - poller = await client.begin_recognize_receipts(receipt, include_field_elements=True) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts(receipt, include_field_elements=True) + result = await poller.result() self.assertEqual(len(result), 3) receipt = result[0] @@ -374,12 +392,13 @@ def callback(raw_response, _, headers): with open(self.multipage_invoice_pdf, "rb") as fd: myfile = fd.read() - poller = await client.begin_recognize_receipts( - receipt=myfile, - include_field_elements=True, - cls=callback - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts( + receipt=myfile, + include_field_elements=True, + cls=callback + ) + result = await poller.result() raw_response = responses[0] returned_model = responses[1] @@ -427,9 +446,10 @@ async def test_receipt_continuation_token(self, client): with open(self.receipt_jpg, "rb") as fd: receipt = fd.read() - initial_poller = await client.begin_recognize_receipts(receipt) - cont_token = initial_poller.continuation_token() - poller = await client.begin_recognize_receipts(receipt, continuation_token=cont_token) - result = await poller.result() - self.assertIsNotNone(result) - await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error + async with client: + initial_poller = await client.begin_recognize_receipts(receipt) + cont_token = initial_poller.continuation_token() + poller = await client.begin_recognize_receipts(receipt, continuation_token=cont_token) + result = await poller.result() + self.assertIsNotNone(result) + await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url.py index add6887ce04e..fe67c03087de 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url.py @@ -201,10 +201,10 @@ def test_receipt_url_include_field_elements(self, client): for field, value in receipt.__dict__.items(): if field not in ["receipt_items", "page_range", "pages", "fields", "form_type"]: field = getattr(receipt, field) - self.assertTextContentHasValues(field.value_data.field_elements, receipt.page_range.first_page_number) + self.assertFieldElementsHasValues(field.value_data.field_elements, receipt.page_range.first_page_number) for field, value in receipt.fields.items(): - self.assertTextContentHasValues(value.value_data.field_elements, receipt.page_range.first_page_number) + self.assertFieldElementsHasValues(value.value_data.field_elements, receipt.page_range.first_page_number) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url_async.py index 259e8c67a14e..632f2dde5506 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url_async.py @@ -27,12 +27,13 @@ async def test_polling_interval(self, resource_group, location, form_recognizer_ client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key), polling_interval=7) self.assertEqual(client._client._config.polling_interval, 7) - poller = await client.begin_recognize_receipts_from_url(self.receipt_url_jpg, polling_interval=6) - await poller.wait() - self.assertEqual(poller._polling_method._timeout, 6) - poller2 = await client.begin_recognize_receipts_from_url(self.receipt_url_jpg) - await poller2.wait() - self.assertEqual(poller2._polling_method._timeout, 7) # goes back to client default + async with client: + poller = await client.begin_recognize_receipts_from_url(self.receipt_url_jpg, polling_interval=6) + await poller.wait() + self.assertEqual(poller._polling_method._timeout, 6) + poller2 = await client.begin_recognize_receipts_from_url(self.receipt_url_jpg) + await poller2.wait() + self.assertEqual(poller2._polling_method._timeout, 7) # goes back to client default @pytest.mark.live_test_only @GlobalFormRecognizerAccountPreparer() @@ -40,52 +41,57 @@ async def test_active_directory_auth_async(self): token = self.generate_oauth_token() endpoint = self.get_oauth_endpoint() client = FormRecognizerClient(endpoint, token) - poller = await client.begin_recognize_receipts_from_url( - self.receipt_url_jpg - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.receipt_url_jpg + ) + result = await poller.result() self.assertIsNotNone(result) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_receipts_encoded_url(self, client): - try: - poller = await client.begin_recognize_receipts_from_url("https://fakeuri.com/blank%20space") - except HttpResponseError as e: - self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) + with pytest.raises(HttpResponseError) as e: + async with client: + poller = await client.begin_recognize_receipts_from_url("https://fakeuri.com/blank%20space") + self.assertIn("https://fakeuri.com/blank%20space", e.value.response.request.body) @GlobalFormRecognizerAccountPreparer() async def test_receipt_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): with self.assertRaises(ServiceRequestError): client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) - poller = await client.begin_recognize_receipts_from_url( - self.receipt_url_jpg - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.receipt_url_jpg + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_receipt_url_auth_successful_key(self, client): - poller = await client.begin_recognize_receipts_from_url( - self.receipt_url_jpg - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.receipt_url_jpg + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() async def test_receipt_url_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - poller = await client.begin_recognize_receipts_from_url( - self.receipt_url_jpg - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.receipt_url_jpg + ) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_receipt_bad_url(self, client): with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_receipts_from_url("https://badurl.jpg") - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url("https://badurl.jpg") + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -95,8 +101,9 @@ async def test_receipt_url_pass_stream(self, client): receipt = fd.read(4) # makes the recording smaller with self.assertRaises(HttpResponseError): - poller = await client.begin_recognize_receipts_from_url(receipt) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url(receipt) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -110,12 +117,13 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_receipt) - poller = await client.begin_recognize_receipts_from_url( - self.receipt_url_jpg, - include_field_elements=True, - cls=callback - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.receipt_url_jpg, + include_field_elements=True, + cls=callback + ) + result = await poller.result() raw_response = responses[0] returned_model = responses[1] @@ -161,12 +169,13 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_receipt) - poller = await client.begin_recognize_receipts_from_url( - self.receipt_url_png, - include_field_elements=True, - cls=callback - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.receipt_url_png, + include_field_elements=True, + cls=callback + ) + result = await poller.result() raw_response = responses[0] returned_model = responses[1] @@ -205,11 +214,12 @@ def callback(raw_response, _, headers): @GlobalClientPreparer() async def test_receipt_url_include_field_elements(self, client): - poller = await client.begin_recognize_receipts_from_url( - self.receipt_url_jpg, - include_field_elements=True - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.receipt_url_jpg, + include_field_elements=True + ) + result = await poller.result() self.assertEqual(len(result), 1) receipt = result[0] @@ -218,19 +228,20 @@ async def test_receipt_url_include_field_elements(self, client): for field, value in receipt.__dict__.items(): if field not in ["page_range", "pages", "fields", "form_type"]: field = getattr(receipt, field) - self.assertTextContentHasValues(field.value_data.field_elements, receipt.page_range.first_page_number) + self.assertFieldElementsHasValues(field.value_data.field_elements, receipt.page_range.first_page_number) for field, value in receipt.fields.items(): - self.assertTextContentHasValues(value.value_data.field_elements, receipt.page_range.first_page_number) + self.assertFieldElementsHasValues(value.value_data.field_elements, receipt.page_range.first_page_number) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_receipt_url_jpg(self, client): - poller = await client.begin_recognize_receipts_from_url( - self.receipt_url_jpg - ) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.receipt_url_jpg + ) + result = await poller.result() self.assertEqual(len(result), 1) receipt = result[0] @@ -255,8 +266,9 @@ async def test_receipt_url_jpg(self, client): @GlobalClientPreparer() async def test_receipt_url_png(self, client): - poller = await client.begin_recognize_receipts_from_url(self.receipt_url_png) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url(self.receipt_url_png) + result = await poller.result() self.assertEqual(len(result), 1) receipt = result[0] @@ -278,8 +290,9 @@ async def test_receipt_url_png(self, client): @GlobalClientPreparer() async def test_receipt_multipage_url(self, client): - poller = await client.begin_recognize_receipts_from_url(self.multipage_url_pdf, include_field_elements=True) - result = await poller.result() + async with client: + poller = await client.begin_recognize_receipts_from_url(self.multipage_url_pdf, include_field_elements=True) + result = await poller.result() self.assertEqual(len(result), 3) receipt = result[0] @@ -319,13 +332,14 @@ def callback(raw_response, _, headers): responses.append(analyze_result) responses.append(extracted_receipt) - poller = await client.begin_recognize_receipts_from_url( - self.multipage_url_pdf, - include_field_elements=True, - cls=callback - ) + async with client: + poller = await client.begin_recognize_receipts_from_url( + self.multipage_url_pdf, + include_field_elements=True, + cls=callback + ) - result = await poller.result() + result = await poller.result() raw_response = responses[0] returned_model = responses[1] actual = raw_response.analyze_result.document_results @@ -369,9 +383,10 @@ def callback(raw_response, _, headers): @pytest.mark.live_test_only async def test_receipt_continuation_token(self, client): - initial_poller = await client.begin_recognize_receipts_from_url(self.receipt_url_jpg) - cont_token = initial_poller.continuation_token() - poller = await client.begin_recognize_receipts_from_url(self.receipt_url_jpg, continuation_token=cont_token) - result = await poller.result() - self.assertIsNotNone(result) - await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error + async with client: + initial_poller = await client.begin_recognize_receipts_from_url(self.receipt_url_jpg) + cont_token = initial_poller.continuation_token() + poller = await client.begin_recognize_receipts_from_url(self.receipt_url_jpg, continuation_token=cont_token) + result = await poller.result() + self.assertIsNotNone(result) + await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_repr.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_repr.py index cc3c914e33b8..92446178008c 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_repr.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_repr.py @@ -59,23 +59,23 @@ def form_table(form_table_cell): return model, model_repr @pytest.fixture -def field_text(bounding_box, form_word, form_line): +def field_data(bounding_box, form_word, form_line): model = _models.FieldData(page_number=1, text="This is text.", bounding_box=bounding_box[0], field_elements=[form_word[0], form_line[0]]) model_repr = "FieldData(page_number=1, text=This is text., bounding_box={}, field_elements=[{}, {}])".format(bounding_box[1], form_word[1], form_line[1])[:1024] assert repr(model) == model_repr return model, model_repr @pytest.fixture -def form_field_two(field_text): - model = _models.FormField(label_data=field_text[0], value_data=field_text[0], name="form_field_two", value="value", confidence=0) - model_repr = "FormField(label_data={}, value_data={}, name=form_field_two, value='value', confidence=0)".format(field_text[1], field_text[1])[:1024] +def form_field_two(field_data): + model = _models.FormField(value_type="string", label_data=field_data[0], value_data=field_data[0], name="form_field_two", value="value", confidence=0) + model_repr = "FormField(value_type=string, label_data={}, value_data={}, name=form_field_two, value='value', confidence=0)".format(field_data[1], field_data[1])[:1024] assert repr(model) == model_repr return model, model_repr @pytest.fixture -def form_field_one(field_text, form_field_two): - model = _models.FormField(label_data=field_text[0], value_data=field_text[0], name="form_field_one", value=form_field_two[0], confidence=1.0) - model_repr = "FormField(label_data={}, value_data={}, name=form_field_one, value={}, confidence=1.0)".format(field_text[1], field_text[1], form_field_two[1])[:1024] +def form_field_one(field_data, form_field_two): + model = _models.FormField(value_type="string", label_data=field_data[0], value_data=field_data[0], name="form_field_one", value=form_field_two[0], confidence=1.0) + model_repr = "FormField(value_type=string, label_data={}, value_data={}, name=form_field_one, value={}, confidence=1.0)".format(field_data[1], field_data[1], form_field_two[1])[:1024] assert repr(model) == model_repr return model, model_repr @@ -88,7 +88,7 @@ def page_range(): @pytest.fixture def form_page(form_table, form_line): - model = _models.FormPage(page_number=1, text_angle=180, width=5, height=5.5, unit=_models.LengthUnit.pixel, tables=[form_table[0]], lines=[form_line[0]]) + model = _models.FormPage(page_number=1, text_angle=180, width=5, height=5.5, unit=_models.LengthUnit.PIXEL, tables=[form_table[0]], lines=[form_line[0]]) model_repr = "FormPage(page_number=1, text_angle=180, width=5, height=5.5, unit=pixel, tables=[{}], lines=[{}])".format( form_table[1], form_line[1] )[:1024] @@ -118,8 +118,8 @@ def form_recognizer_error(): @pytest.fixture def training_document_info(form_recognizer_error): - model = _models.TrainingDocumentInfo(document_name="document_name", status=_models.TrainingStatus.partially_succeeded, page_count=5, errors=[form_recognizer_error[0]]) - model_repr = "TrainingDocumentInfo(document_name=document_name, status=partiallySucceeded, page_count=5, errors=[{}])".format(form_recognizer_error[1])[:1024] + model = _models.TrainingDocumentInfo(name="name", status=_models.TrainingStatus.PARTIALLY_SUCCEEDED, page_count=5, errors=[form_recognizer_error[0]]) + model_repr = "TrainingDocumentInfo(name=name, status=partiallySucceeded, page_count=5, errors=[{}])".format(form_recognizer_error[1])[:1024] assert repr(model) == model_repr return model, model_repr @@ -137,7 +137,7 @@ def test_recognized_form(self, form_field_one, page_range, form_page): def test_custom_form_model(self, custom_form_sub_model, form_recognizer_error, training_document_info): model = _models.CustomFormModel( model_id=1, - status=_models.CustomFormModelStatus.creating, + status=_models.CustomFormModelStatus.CREATING, training_started_on=datetime.datetime(1, 1, 1), training_completed_on=datetime.datetime(1, 1, 1), submodels=[custom_form_sub_model[0], custom_form_sub_model[0]], @@ -154,7 +154,7 @@ def test_custom_form_model(self, custom_form_sub_model, form_recognizer_error, t def test_custom_form_model_info(self): model = _models.CustomFormModelInfo( - model_id=1, status=_models.CustomFormModelStatus.ready, training_started_on=datetime.datetime(1, 1, 1), training_completed_on=datetime.datetime(1, 1, 1) + model_id=1, status=_models.CustomFormModelStatus.READY, training_started_on=datetime.datetime(1, 1, 1), training_completed_on=datetime.datetime(1, 1, 1) ) model_repr = "CustomFormModelInfo(model_id=1, status=ready, training_started_on=0001-01-01 00:00:00, training_completed_on=0001-01-01 00:00:00)"[:1024] assert repr(model) == model_repr diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_samples_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_samples_async.py index 64fb40ed2f3d..d23a8eed33b5 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_samples_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_samples_async.py @@ -62,8 +62,9 @@ async def test_sample_get_bounding_boxes_async(self, resource_group, location, f os.environ['CONTAINER_SAS_URL'] = self.get_settings_value("FORM_RECOGNIZER_STORAGE_CONTAINER_SAS_URL") ftc = FormTrainingClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) container_sas_url = os.environ['CONTAINER_SAS_URL'] - poller = await ftc.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() + async with ftc: + poller = await ftc.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() os.environ['CUSTOM_TRAINED_MODEL_ID'] = model.model_id _test_file('sample_get_bounding_boxes_async.py', form_recognizer_account, form_recognizer_account_key) @@ -83,8 +84,9 @@ async def test_sample_recognize_custom_forms_async(self, resource_group, locatio os.environ['CONTAINER_SAS_URL'] = self.get_settings_value("FORM_RECOGNIZER_STORAGE_CONTAINER_SAS_URL") ftc = FormTrainingClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) container_sas_url = os.environ['CONTAINER_SAS_URL'] - poller = await ftc.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() + async with ftc: + poller = await ftc.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() os.environ['CUSTOM_TRAINED_MODEL_ID'] = model.model_id _test_file('sample_recognize_custom_forms_async.py', form_recognizer_account, form_recognizer_account_key) @@ -121,8 +123,9 @@ async def test_sample_copy_model_async(self, resource_group, location, form_reco os.environ['CONTAINER_SAS_URL'] = self.get_settings_value("FORM_RECOGNIZER_STORAGE_CONTAINER_SAS_URL") ftc = FormTrainingClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) container_sas_url = os.environ['CONTAINER_SAS_URL'] - poller = await ftc.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() + async with ftc: + poller = await ftc.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() os.environ['AZURE_SOURCE_MODEL_ID'] = model.model_id os.environ["AZURE_FORM_RECOGNIZER_TARGET_ENDPOINT"] = form_recognizer_account os.environ["AZURE_FORM_RECOGNIZER_TARGET_KEY"] = form_recognizer_account_key @@ -141,10 +144,11 @@ async def test_sample_differentiate_output_models_trained_with_and_without_label os.environ['CONTAINER_SAS_URL'] = self.get_settings_value("FORM_RECOGNIZER_STORAGE_CONTAINER_SAS_URL") ftc = FormTrainingClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) container_sas_url = os.environ['CONTAINER_SAS_URL'] - poller = await ftc.begin_training(container_sas_url, use_training_labels=False) - unlabeled_model = await poller.result() - poller = await ftc.begin_training(container_sas_url, use_training_labels=True) - labeled_model = await poller.result() + async with ftc: + poller = await ftc.begin_training(container_sas_url, use_training_labels=False) + unlabeled_model = await poller.result() + poller = await ftc.begin_training(container_sas_url, use_training_labels=True) + labeled_model = await poller.result() os.environ["ID_OF_MODEL_TRAINED_WITH_LABELS"] = labeled_model.model_id os.environ["ID_OF_MODEL_TRAINED_WITHOUT_LABELS"] = unlabeled_model.model_id _test_file('sample_differentiate_output_models_trained_with_and_without_labels_async.py', diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training.py index 93d255169d73..525d9efe909f 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training.py @@ -35,6 +35,7 @@ def check_poll_value(poll): poller2 = client.begin_training(training_files_url=container_sas_url, use_training_labels=False) poller2.wait() check_poll_value(poller2._polling_method._timeout) # goes back to client default + client.close() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -66,7 +67,7 @@ def test_training(self, client, container_sas_url): self.assertEqual(model.errors, []) self.assertEqual(model.status, "ready") for doc in model.training_documents: - self.assertIsNotNone(doc.document_name) + self.assertIsNotNone(doc.name) self.assertIsNotNone(doc.page_count) self.assertIsNotNone(doc.status) self.assertEqual(doc.errors, []) @@ -89,7 +90,7 @@ def test_training_multipage(self, client, container_sas_url): self.assertEqual(model.errors, []) self.assertEqual(model.status, "ready") for doc in model.training_documents: - self.assertIsNotNone(doc.document_name) + self.assertIsNotNone(doc.name) self.assertIsNotNone(doc.page_count) self.assertIsNotNone(doc.status) self.assertEqual(doc.errors, []) @@ -150,7 +151,7 @@ def test_training_with_labels(self, client, container_sas_url): self.assertEqual(model.errors, []) self.assertEqual(model.status, "ready") for doc in model.training_documents: - self.assertIsNotNone(doc.document_name) + self.assertIsNotNone(doc.name) self.assertIsNotNone(doc.page_count) self.assertIsNotNone(doc.status) self.assertEqual(doc.errors, []) @@ -174,7 +175,7 @@ def test_training_multipage_with_labels(self, client, container_sas_url): self.assertEqual(model.errors, []) self.assertEqual(model.status, "ready") for doc in model.training_documents: - self.assertIsNotNone(doc.document_name) + self.assertIsNotNone(doc.name) self.assertIsNotNone(doc.page_count) self.assertIsNotNone(doc.status) self.assertEqual(doc.errors, []) @@ -227,19 +228,21 @@ def callback(response): @GlobalClientPreparer(training=True) def test_training_with_files_filter(self, client, container_sas_url): - poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False, include_sub_folders=True) + poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False, include_subfolders=True) model = poller.result() self.assertEqual(len(model.training_documents), 6) - self.assertEqual(model.training_documents[-1].document_name, "subfolder/Form_6.jpg") # we traversed subfolders + self.assertEqual(model.training_documents[-1].name, "subfolder/Form_6.jpg") # we traversed subfolders - poller = client.begin_training(container_sas_url, use_training_labels=False, prefix="subfolder", include_sub_folders=True) + poller = client.begin_training(container_sas_url, use_training_labels=False, prefix="subfolder", include_subfolders=True) model = poller.result() self.assertEqual(len(model.training_documents), 1) - self.assertEqual(model.training_documents[0].document_name, "subfolder/Form_6.jpg") # we filtered for only subfolders + self.assertEqual(model.training_documents[0].name, "subfolder/Form_6.jpg") # we filtered for only subfolders - with self.assertRaises(HttpResponseError): + with pytest.raises(HttpResponseError) as e: poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False, prefix="xxx") model = poller.result() + self.assertIsNotNone(e.value.error.code) + self.assertIsNotNone(e.value.error.message) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training_async.py index 5ab3d350e920..2aa4220e30e2 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training_async.py @@ -36,33 +36,37 @@ def check_poll_value(poll): poller2 = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False) await poller2.wait() check_poll_value(poller2._polling_method._timeout) # goes back to client default + await client.close() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() async def test_training_encoded_url(self, client): with self.assertRaises(HttpResponseError): - poller = await client.begin_training( - training_files_url="https://fakeuri.com/blank%20space", - use_training_labels=False - ) - self.assertIn("https://fakeuri.com/blank%20space", poller._polling_method._initial_response.http_request.body) - await poller.wait() + async with client: + poller = await client.begin_training( + training_files_url="https://fakeuri.com/blank%20space", + use_training_labels=False + ) + self.assertIn("https://fakeuri.com/blank%20space", poller._polling_method._initial_response.http_request.body) + await poller.wait() @GlobalFormRecognizerAccountPreparer() async def test_training_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): - poller = await client.begin_training("xx", use_training_labels=False) - result = await poller.result() + async with client: + poller = await client.begin_training("xx", use_training_labels=False) + result = await poller.result() @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_training(self, client, container_sas_url): - poller = await client.begin_training( - training_files_url=container_sas_url, - use_training_labels=False) - model = await poller.result() + async with client: + poller = await client.begin_training( + training_files_url=container_sas_url, + use_training_labels=False) + model = await poller.result() self.assertIsNotNone(model.model_id) self.assertIsNotNone(model.training_started_on) @@ -70,7 +74,7 @@ async def test_training(self, client, container_sas_url): self.assertEqual(model.errors, []) self.assertEqual(model.status, "ready") for doc in model.training_documents: - self.assertIsNotNone(doc.document_name) + self.assertIsNotNone(doc.name) self.assertIsNotNone(doc.page_count) self.assertIsNotNone(doc.status) self.assertEqual(doc.errors, []) @@ -83,9 +87,9 @@ async def test_training(self, client, container_sas_url): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, multipage=True) async def test_training_multipage(self, client, container_sas_url): - - poller = await client.begin_training(container_sas_url, use_training_labels=False) - model = await poller.result() + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False) + model = await poller.result() self.assertIsNotNone(model.model_id) self.assertIsNotNone(model.training_started_on) @@ -93,7 +97,7 @@ async def test_training_multipage(self, client, container_sas_url): self.assertEqual(model.errors, []) self.assertEqual(model.status, "ready") for doc in model.training_documents: - self.assertIsNotNone(doc.document_name) + self.assertIsNotNone(doc.name) self.assertIsNotNone(doc.page_count) self.assertIsNotNone(doc.status) self.assertEqual(doc.errors, []) @@ -115,11 +119,12 @@ def callback(response): raw_response.append(raw_model) raw_response.append(custom_model) - poller = await client.begin_training( - training_files_url=container_sas_url, - use_training_labels=False, - cls=callback) - model = await poller.result() + async with client: + poller = await client.begin_training( + training_files_url=container_sas_url, + use_training_labels=False, + cls=callback) + model = await poller.result() raw_model = raw_response[0] custom_model = raw_response[1] @@ -137,8 +142,9 @@ def callback(response): raw_response.append(raw_model) raw_response.append(custom_model) - poller = await client.begin_training(container_sas_url, use_training_labels=False, cls=callback) - model = await poller.result() + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=False, cls=callback) + model = await poller.result() raw_model = raw_response[0] custom_model = raw_response[1] @@ -147,9 +153,9 @@ def callback(response): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_training_with_labels(self, client, container_sas_url): - - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=True) - model = await poller.result() + async with client: + poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=True) + model = await poller.result() self.assertIsNotNone(model.model_id) self.assertIsNotNone(model.training_started_on) @@ -157,7 +163,7 @@ async def test_training_with_labels(self, client, container_sas_url): self.assertEqual(model.errors, []) self.assertEqual(model.status, "ready") for doc in model.training_documents: - self.assertIsNotNone(doc.document_name) + self.assertIsNotNone(doc.name) self.assertIsNotNone(doc.page_count) self.assertIsNotNone(doc.status) self.assertEqual(doc.errors, []) @@ -170,9 +176,9 @@ async def test_training_with_labels(self, client, container_sas_url): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, multipage=True) async def test_training_multipage_with_labels(self, client, container_sas_url): - - poller = await client.begin_training(container_sas_url, use_training_labels=True) - model = await poller.result() + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=True) + model = await poller.result() self.assertIsNotNone(model.model_id) self.assertIsNotNone(model.training_started_on) @@ -180,7 +186,7 @@ async def test_training_multipage_with_labels(self, client, container_sas_url): self.assertEqual(model.errors, []) self.assertEqual(model.status, "ready") for doc in model.training_documents: - self.assertIsNotNone(doc.document_name) + self.assertIsNotNone(doc.name) self.assertIsNotNone(doc.page_count) self.assertIsNotNone(doc.status) self.assertEqual(doc.errors, []) @@ -203,8 +209,9 @@ def callback(response): raw_response.append(raw_model) raw_response.append(custom_model) - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=True, cls=callback) - model = await poller.result() + async with client: + poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=True, cls=callback) + model = await poller.result() raw_model = raw_response[0] custom_model = raw_response[1] @@ -222,8 +229,9 @@ def callback(response): raw_response.append(raw_model) raw_response.append(custom_model) - poller = await client.begin_training(container_sas_url, use_training_labels=True, cls=callback) - model = await poller.result() + async with client: + poller = await client.begin_training(container_sas_url, use_training_labels=True, cls=callback) + model = await poller.result() raw_model = raw_response[0] custom_model = raw_response[1] @@ -232,29 +240,31 @@ def callback(response): @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) async def test_training_with_files_filter(self, client, container_sas_url): + async with client: + poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, include_subfolders=True) + model = await poller.result() + self.assertEqual(len(model.training_documents), 6) + self.assertEqual(model.training_documents[-1].name, "subfolder/Form_6.jpg") # we traversed subfolders - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, include_sub_folders=True) - model = await poller.result() - self.assertEqual(len(model.training_documents), 6) - self.assertEqual(model.training_documents[-1].document_name, "subfolder/Form_6.jpg") # we traversed subfolders - - poller = await client.begin_training(container_sas_url, use_training_labels=False, prefix="subfolder", include_sub_folders=True) - model = await poller.result() - self.assertEqual(len(model.training_documents), 1) - self.assertEqual(model.training_documents[0].document_name, "subfolder/Form_6.jpg") # we filtered for only subfolders - - with self.assertRaises(HttpResponseError): - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, prefix="xxx") + poller = await client.begin_training(container_sas_url, use_training_labels=False, prefix="subfolder", include_subfolders=True) model = await poller.result() + self.assertEqual(len(model.training_documents), 1) + self.assertEqual(model.training_documents[0].name, "subfolder/Form_6.jpg") # we filtered for only subfolders + + with pytest.raises(HttpResponseError) as e: + poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, prefix="xxx") + model = await poller.result() + self.assertIsNotNone(e.value.error.code) + self.assertIsNotNone(e.value.error.message) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) @pytest.mark.live_test_only async def test_training_continuation_token(self, client, container_sas_url): - - initial_poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False) - cont_token = initial_poller.continuation_token() - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, continuation_token=cont_token) - result = await poller.result() - self.assertIsNotNone(result) - await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error + async with client: + initial_poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False) + cont_token = initial_poller.continuation_token() + poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, continuation_token=cont_token) + result = await poller.result() + self.assertIsNotNone(result) + await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py index 07d0c137f3d9..6429b9a7e868 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py @@ -13,6 +13,7 @@ import re import logging from azure.core.credentials import AzureKeyCredential, AccessToken +from azure.ai.formrecognizer._models import adjust_value_type from devtools_testutils import ( AzureTestCase, AzureMgmtPreparer, @@ -137,7 +138,7 @@ def assertModelTransformCorrect(self, model, actual, unlabeled=False): self.assertEqual(model.status, actual.model_info.status) self.assertEqual(model.errors, actual.train_result.errors) for m, a in zip(model.training_documents, actual.train_result.training_documents): - self.assertEqual(m.document_name, a.document_name) + self.assertEqual(m.name, a.document_name) if m.errors and a.errors: self.assertEqual(m.errors, a.errors) self.assertEqual(m.page_count, a.pages) @@ -200,7 +201,7 @@ def assertBoundingBoxTransformCorrect(self, box, actual): self.assertEqual(box[3].x, actual[6]) self.assertEqual(box[3].y, actual[7]) - def assertTextContentTransformCorrect(self, field_elements, actual_elements, read_result): + def assertFieldElementsTransFormCorrect(self, field_elements, actual_elements, read_result): if field_elements is None and actual_elements is None: return for receipt, actual in zip(field_elements, actual_elements): @@ -222,6 +223,7 @@ def assertLabeledFormFieldDictTransformCorrect(self, form_fields, actual_fields, self.assertBoundingBoxTransformCorrect(b[label].value_data.bounding_box, a.bounding_box) self.assertEqual(a.text, b[label].value_data.text) field_type = a.type + self.assertEqual(adjust_value_type(field_type), b[label].value_type) if field_type == "string": self.assertEqual(b[label].value, a.value_string) if field_type == "number": @@ -235,7 +237,7 @@ def assertLabeledFormFieldDictTransformCorrect(self, form_fields, actual_fields, if field_type == "time": self.assertEqual(b[label].value, a.value_time) if read_results: - self.assertTextContentTransformCorrect( + self.assertFieldElementsTransFormCorrect( b[label].value_data.field_elements, a.elements, read_results @@ -249,7 +251,7 @@ def assertUnlabeledFormFieldDictTransformCorrect(self, form_fields, actual_field self.assertEqual(a.key.text, form_fields["field-"+str(idx)].label_data.text) self.assertBoundingBoxTransformCorrect(form_fields["field-"+str(idx)].label_data.bounding_box, a.key.bounding_box) if read_results: - self.assertTextContentTransformCorrect( + self.assertFieldElementsTransFormCorrect( form_fields["field-"+str(idx)].label_data.field_elements, a.key.elements, read_results @@ -257,7 +259,7 @@ def assertUnlabeledFormFieldDictTransformCorrect(self, form_fields, actual_field self.assertEqual(a.value.text, form_fields["field-" + str(idx)].value_data.text) self.assertBoundingBoxTransformCorrect(form_fields["field-" + str(idx)].value_data.bounding_box, a.value.bounding_box) if read_results: - self.assertTextContentTransformCorrect( + self.assertFieldElementsTransFormCorrect( form_fields["field-"+str(idx)].value_data.field_elements, a.value.elements, read_results @@ -267,6 +269,7 @@ def assertFormFieldTransformCorrect(self, receipt_field, actual_field, read_resu if actual_field is None: return field_type = actual_field.type + self.assertEqual(adjust_value_type(field_type), receipt_field.value_type) if field_type == "string": self.assertEqual(receipt_field.value, actual_field.value_string) if field_type == "number": @@ -284,7 +287,7 @@ def assertFormFieldTransformCorrect(self, receipt_field, actual_field, read_resu self.assertEqual(receipt_field.value_data.text, actual_field.text) self.assertEqual(receipt_field.confidence, actual_field.confidence if actual_field.confidence is not None else 1.0) if read_results: - self.assertTextContentTransformCorrect( + self.assertFieldElementsTransFormCorrect( receipt_field.value_data.field_elements, actual_field.elements, read_results @@ -314,28 +317,32 @@ def assertTablesTransformCorrect(self, layout, actual_layout, read_results=None, self.assertEqual(cell.is_header, actual_cell.is_header if actual_cell.is_header is not None else False) self.assertEqual(cell.is_footer, actual_cell.is_footer if actual_cell.is_footer is not None else False) self.assertBoundingBoxTransformCorrect(cell.bounding_box, actual_cell.bounding_box) - self.assertTextContentTransformCorrect(cell.field_elements, actual_cell.elements, read_results) + self.assertFieldElementsTransFormCorrect(cell.field_elements, actual_cell.elements, read_results) def assertReceiptItemsHasValues(self, items, page_number, include_field_elements): for item in items: + self.assertEqual(item.value_type, "dictionary") self.assertBoundingBoxHasPoints(item.value.get("Name").value_data.bounding_box) self.assertIsNotNone(item.value.get("Name").confidence) self.assertIsNotNone(item.value.get("Name").value_data.text) + self.assertIsNotNone(item.value.get("Name").value_type) self.assertBoundingBoxHasPoints(item.value.get("Quantity").value_data.bounding_box) self.assertIsNotNone(item.value.get("Quantity").confidence) self.assertIsNotNone(item.value.get("Quantity").value_data.text) + self.assertIsNotNone(item.value.get("Quantity").value_type) self.assertBoundingBoxHasPoints(item.value.get("TotalPrice").value_data.bounding_box) self.assertIsNotNone(item.value.get("TotalPrice").confidence) self.assertIsNotNone(item.value.get("TotalPrice").value_data.text) + self.assertIsNotNone(item.value.get("TotalPrice").value_type) if include_field_elements: - self.assertTextContentHasValues(item.value.get("Name").value_data.field_elements, page_number) - self.assertTextContentHasValues(item.value.get("Name").value_data.field_elements, page_number) - self.assertTextContentHasValues(item.value.get("Name").value_data.field_elements, page_number) + self.assertFieldElementsHasValues(item.value.get("Name").value_data.field_elements, page_number) + self.assertFieldElementsHasValues(item.value.get("Quantity").value_data.field_elements, page_number) + self.assertFieldElementsHasValues(item.value.get("TotalPrice").value_data.field_elements, page_number) else: self.assertIsNone(item.value.get("Name").value_data.field_elements) - self.assertIsNone(item.value.get("Name").value_data.field_elements) - self.assertIsNone(item.value.get("Name").value_data.field_elements) + self.assertIsNone(item.value.get("Quantity").value_data.field_elements) + self.assertIsNone(item.value.get("TotalPrice").value_data.field_elements) def assertBoundingBoxHasPoints(self, box): if box is None: @@ -376,7 +383,7 @@ def assertFormPagesHasValues(self, pages): self.assertIsNotNone(cell.row_span) self.assertIsNotNone(cell.column_span) self.assertBoundingBoxHasPoints(cell.bounding_box) - self.assertTextContentHasValues(cell.field_elements, page.page_number) + self.assertFieldElementsHasValues(cell.field_elements, page.page_number) def assertFormWordHasValues(self, word, page_number): self.assertIsNotNone(word.confidence) @@ -384,7 +391,7 @@ def assertFormWordHasValues(self, word, page_number): self.assertBoundingBoxHasPoints(word.bounding_box) self.assertEqual(word.page_number, page_number) - def assertTextContentHasValues(self, elements, page_number): + def assertFieldElementsHasValues(self, elements, page_number): if elements is None: return for word in elements: diff --git a/sdk/graphrbac/azure-graphrbac/README.md b/sdk/graphrbac/azure-graphrbac/README.md index 5a75c61baefb..f5cf1a04e99f 100644 --- a/sdk/graphrbac/azure-graphrbac/README.md +++ b/sdk/graphrbac/azure-graphrbac/README.md @@ -5,7 +5,7 @@ This is the Microsoft Azure Graph RBAC Client Library. This package has been tested with Python 2.7, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/hanaonazure/azure-mgmt-hanaonazure/README.md b/sdk/hanaonazure/azure-mgmt-hanaonazure/README.md index 768547abc09f..e8c39df57fa3 100644 --- a/sdk/hanaonazure/azure-mgmt-hanaonazure/README.md +++ b/sdk/hanaonazure/azure-mgmt-hanaonazure/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure SAP Hana on Azure Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/hdinsight/azure-mgmt-hdinsight/README.md b/sdk/hdinsight/azure-mgmt-hdinsight/README.md index caa3d43a2b18..283884e0c3a8 100644 --- a/sdk/hdinsight/azure-mgmt-hdinsight/README.md +++ b/sdk/hdinsight/azure-mgmt-hdinsight/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure HDInsight Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/healthcareapis/azure-mgmt-healthcareapis/README.md b/sdk/healthcareapis/azure-mgmt-healthcareapis/README.md index c2cd839c037f..b8354473f458 100644 --- a/sdk/healthcareapis/azure-mgmt-healthcareapis/README.md +++ b/sdk/healthcareapis/azure-mgmt-healthcareapis/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/hybridcompute/azure-mgmt-hybridcompute/README.md b/sdk/hybridcompute/azure-mgmt-hybridcompute/README.md index d60ad2181bde..512384f03eea 100644 --- a/sdk/hybridcompute/azure-mgmt-hybridcompute/README.md +++ b/sdk/hybridcompute/azure-mgmt-hybridcompute/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/hybridkubernetes/azure-mgmt-hybridkubernetes/README.md b/sdk/hybridkubernetes/azure-mgmt-hybridkubernetes/README.md index 4d65eeebaef1..b8b533f4ba3c 100644 --- a/sdk/hybridkubernetes/azure-mgmt-hybridkubernetes/README.md +++ b/sdk/hybridkubernetes/azure-mgmt-hybridkubernetes/README.md @@ -2,14 +2,7 @@ This is the Microsoft Azure HybridKubernetes Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) - - -# Usage - -For code examples, see [HybridKubernetes Management](https://docs.microsoft.com/python/api/overview/azure/hybrid-kubernetes) -on docs.microsoft.com. - +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Provide Feedback diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 16ba5dd35901..7f18ff06dbc3 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -1,6 +1,18 @@ # Release History -## 1.4.0b7 (Unreleased) +## 1.4.0b8 (Unreleased) +- `DefaultAzureCredential` uses the value of environment variable +`AZURE_CLIENT_ID` to configure a user-assigned managed identity. +([#10931](https://github.com/Azure/azure-sdk-for-python/issues/10931)) + + +## 1.4.0b7 (2020-07-22) +- `DefaultAzureCredential` has a new optional keyword argument, +`visual_studio_code_tenant_id`, which sets the tenant the credential should +authenticate in when authenticating as the Azure user signed in to Visual +Studio Code. +- Renamed `AuthenticationRecord.deserialize` positional parameter `json_string` +to `data`. ## 1.4.0b6 (2020-07-07) @@ -200,7 +212,7 @@ the Azure CLI's client ID will be used. `client_id` - transport configuration is now done through keyword arguments as described in - [`azure-core` documentation](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/core/azure-core/docs/configuration.md) + [`azure-core` documentation](https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_1.0.0/sdk/core/azure-core/CLIENT_LIBRARY_DEVELOPER.md#transport) ### Fixes and improvements: - Authenticating with a single sign-on shared with other Microsoft applications @@ -275,9 +287,9 @@ revamped configuration API. Static `create_config` methods have been renamed ### New features: - Added credentials for authenticating users: -[`DeviceCodeCredential`](https://azure.github.io/azure-sdk-for-python/ref/azure.identity.html#azure.identity.DeviceCodeCredential), -[`InteractiveBrowserCredential`](https://azure.github.io/azure-sdk-for-python/ref/azure.identity.html#azure.identity.InteractiveBrowserCredential), -[`UsernamePasswordCredential`](https://azure.github.io/azure-sdk-for-python/ref/azure.identity.html#azure.identity.UsernamePasswordCredential) + - `DeviceCodeCredential` + - `InteractiveBrowserCredential` + - `UsernamePasswordCredential` - async versions of these credentials will be added in a future release ## 1.0.0b1 (2019-06-28) diff --git a/sdk/identity/azure-identity/MANIFEST.in b/sdk/identity/azure-identity/MANIFEST.in index fcca83563a8c..07b576fc0eb3 100644 --- a/sdk/identity/azure-identity/MANIFEST.in +++ b/sdk/identity/azure-identity/MANIFEST.in @@ -1,3 +1,4 @@ +recursive-include samples *.py recursive-include tests *.py include *.md -include azure/__init__.py \ No newline at end of file +include azure/__init__.py diff --git a/sdk/identity/azure-identity/README.md b/sdk/identity/azure-identity/README.md index 3af1e40d0a68..0afa0c670e54 100644 --- a/sdk/identity/azure-identity/README.md +++ b/sdk/identity/azure-identity/README.md @@ -137,6 +137,15 @@ Configuration is attempted in the above order. For example, if values for a client secret and certificate are both present, the client secret will be used. # Examples + +The following examples are provided below: + +* [Authenticating with DefaultAzureCredential](#authenticating-with-defaultazurecredential "Authenticating with DefaultAzureCredential") +* [Authenticating a service principal with a client secret](#authenticating-a-service-principal-with-a-client-secret "Authenticating a service principal with a client secret") +* [Authenticating a service principal with a certificate](#authenticating-a-service-principal-with-a-certificate "Authenticating a service principal with a certificate") +* [Chaining credentials](#chaining-credentials "Chaining credentials") +* [Async credentials](#async-credentials "Async credentials") + ## Authenticating with `DefaultAzureCredential` This example demonstrates authenticating the `BlobServiceClient` from the [azure-storage-blob][azure_storage_blob] library using diff --git a/sdk/identity/azure-identity/azure/identity/__init__.py b/sdk/identity/azure-identity/azure/identity/__init__.py index 5f408028a4c0..2e3f9d639a24 100644 --- a/sdk/identity/azure-identity/azure/identity/__init__.py +++ b/sdk/identity/azure-identity/azure/identity/__init__.py @@ -6,7 +6,7 @@ from ._auth_record import AuthenticationRecord from ._exceptions import AuthenticationRequiredError, CredentialUnavailableError -from ._constants import KnownAuthorities +from ._constants import AzureAuthorityHosts, KnownAuthorities from ._credentials import ( AzureCliCredential, AuthorizationCodeCredential, @@ -26,9 +26,10 @@ __all__ = [ "AuthenticationRecord", - "AzureCliCredential", "AuthenticationRequiredError", "AuthorizationCodeCredential", + "AzureAuthorityHosts", + "AzureCliCredential", "CertificateCredential", "ChainedTokenCredential", "ClientSecretCredential", diff --git a/sdk/identity/azure-identity/azure/identity/_auth_record.py b/sdk/identity/azure-identity/azure/identity/_auth_record.py index 968e5e8a5588..2ae09877d101 100644 --- a/sdk/identity/azure-identity/azure/identity/_auth_record.py +++ b/sdk/identity/azure-identity/azure/identity/_auth_record.py @@ -43,11 +43,14 @@ def username(self): return self._username @classmethod - def deserialize(cls, json_string): + def deserialize(cls, data): # type: (str) -> AuthenticationRecord - """Deserialize a record from JSON""" + """Deserialize a record. - deserialized = json.loads(json_string) + :param str data: a serialized record + """ + + deserialized = json.loads(data) return cls( authority=deserialized["authority"], @@ -59,7 +62,10 @@ def deserialize(cls, json_string): def serialize(self): # type: () -> str - """Serialize the record to JSON""" + """Serialize the record. + + :rtype: str + """ record = { "authority": self._authority, diff --git a/sdk/identity/azure-identity/azure/identity/_authn_client.py b/sdk/identity/azure-identity/azure/identity/_authn_client.py index 2b165d0a0a52..e29a48854e68 100644 --- a/sdk/identity/azure-identity/azure/identity/_authn_client.py +++ b/sdk/identity/azure-identity/azure/identity/_authn_client.py @@ -22,7 +22,7 @@ UserAgentPolicy, ) from azure.core.pipeline.transport import RequestsTransport, HttpRequest -from ._constants import AZURE_CLI_CLIENT_ID +from ._constants import AZURE_CLI_CLIENT_ID, DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY from ._internal import get_default_authority, normalize_authority from ._internal.user_agent import USER_AGENT @@ -65,17 +65,32 @@ def __init__(self, endpoint=None, authority=None, tenant=None, **kwargs): # pyl authority = normalize_authority(authority) if authority else get_default_authority() self._auth_url = "/".join((authority, tenant.strip("/"), "oauth2/v2.0/token")) self._cache = kwargs.get("cache") or TokenCache() # type: TokenCache + self._token_refresh_retry_delay = DEFAULT_TOKEN_REFRESH_RETRY_DELAY + self._token_refresh_offset = DEFAULT_REFRESH_OFFSET + self._last_refresh_time = 0 @property def auth_url(self): return self._auth_url + def should_refresh(self, token): + # type: (AccessToken) -> bool + """ check if the token needs refresh or not + """ + expires_on = int(token.expires_on) + now = int(time.time()) + if expires_on - now > self._token_refresh_offset: + return False + if now - self._last_refresh_time < self._token_refresh_retry_delay: + return False + return True + def get_cached_token(self, scopes): # type: (Iterable[str]) -> Optional[AccessToken] tokens = self._cache.find(TokenCache.CredentialType.ACCESS_TOKEN, target=list(scopes)) for token in tokens: expires_on = int(token["expires_on"]) - if expires_on - 300 > int(time.time()): + if expires_on > int(time.time()): return AccessToken(token["secret"], expires_on) return None @@ -217,6 +232,7 @@ def request_token( # type: (...) -> AccessToken request = self._prepare_request(method, headers=headers, form_data=form_data, params=params) request_time = int(time.time()) + self._last_refresh_time = request_time # no matter succeed or not, update the last refresh time response = self._pipeline.run(request, stream=False, **kwargs) token = self._deserialize_and_cache_token(response=response, scopes=scopes, request_time=request_time) return token diff --git a/sdk/identity/azure-identity/azure/identity/_constants.py b/sdk/identity/azure-identity/azure/identity/_constants.py index a47ebdeb9920..8bfb28d7adfa 100644 --- a/sdk/identity/azure-identity/azure/identity/_constants.py +++ b/sdk/identity/azure-identity/azure/identity/_constants.py @@ -7,15 +7,21 @@ AZURE_CLI_CLIENT_ID = "04b07795-8ddb-461a-bbee-02f9e1bf7b46" AZURE_VSCODE_CLIENT_ID = "aebc6443-996d-45c2-90f0-388ff96faa56" VSCODE_CREDENTIALS_SECTION = "VS Code Azure" +DEFAULT_REFRESH_OFFSET = 300 +DEFAULT_TOKEN_REFRESH_RETRY_DELAY = 30 -class KnownAuthorities: +class AzureAuthorityHosts: AZURE_CHINA = "login.chinacloudapi.cn" AZURE_GERMANY = "login.microsoftonline.de" AZURE_GOVERNMENT = "login.microsoftonline.us" AZURE_PUBLIC_CLOUD = "login.microsoftonline.com" +class KnownAuthorities(AzureAuthorityHosts): + """Alias of :class:`AzureAuthorityHosts`""" + + class EnvironmentVariables: AZURE_CLIENT_ID = "AZURE_CLIENT_ID" AZURE_CLIENT_SECRET = "AZURE_CLIENT_SECRET" diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/__init__.py b/sdk/identity/azure-identity/azure/identity/_credentials/__init__.py index baf64e6d5102..78e3e51e4cb5 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/__init__.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/__init__.py @@ -14,7 +14,7 @@ from .azure_cli import AzureCliCredential from .device_code import DeviceCodeCredential from .user_password import UsernamePasswordCredential -from .vscode_credential import VSCodeCredential +from .vscode import VSCodeCredential __all__ = [ diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/authorization_code.py b/sdk/identity/azure-identity/azure/identity/_credentials/authorization_code.py index 3568f8c921ce..b00a15145e7d 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/authorization_code.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/authorization_code.py @@ -6,10 +6,11 @@ from azure.core.exceptions import ClientAuthenticationError from .._internal.aad_client import AadClient +from .._internal.decorators import log_get_token if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports - from typing import Any, Optional, Sequence + from typing import Any, Iterable, Optional from azure.core.credentials import AccessToken @@ -25,7 +26,7 @@ class AuthorizationCodeCredential(object): :param str redirect_uri: The application's redirect URI. Must match the URI used to request the authorization code. :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword str client_secret: One of the application's client secrets. Required only for web apps and web APIs. """ @@ -38,6 +39,7 @@ def __init__(self, tenant_id, client_id, authorization_code, redirect_uri, **kwa self._client = kwargs.pop("client", None) or AadClient(tenant_id, client_id, **kwargs) self._redirect_uri = redirect_uri + @log_get_token("AuthorizationCodeCredential") def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. @@ -64,7 +66,15 @@ def get_token(self, *scopes, **kwargs): self._authorization_code = None # auth codes are single-use return token - token = self._client.get_cached_access_token(scopes) or self._redeem_refresh_token(scopes, **kwargs) + token = self._client.get_cached_access_token(scopes) + if not token: + token = self._redeem_refresh_token(scopes, **kwargs) + elif self._client.should_refresh(token): + try: + self._redeem_refresh_token(scopes, **kwargs) + except Exception: # pylint: disable=broad-except + pass + if not token: raise ClientAuthenticationError( message="No authorization code, cached access token, or refresh token available." @@ -73,7 +83,7 @@ def get_token(self, *scopes, **kwargs): return token def _redeem_refresh_token(self, scopes, **kwargs): - # type: (Sequence[str], **Any) -> Optional[AccessToken] + # type: (Iterable[str], **Any) -> Optional[AccessToken] for refresh_token in self._client.get_cached_refresh_tokens(scopes): if "secret" not in refresh_token: continue diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py index c5fe99a1119c..8e609d83ff05 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py @@ -17,11 +17,13 @@ from .. import CredentialUnavailableError from .._internal import _scopes_to_resource +from .._internal.decorators import log_get_token if TYPE_CHECKING: # pylint:disable=ungrouped-imports from typing import Any + CLI_NOT_FOUND = "Azure CLI not found on path" COMMAND_LINE = "az account get-access-token --output json --resource {}" NOT_LOGGED_IN = "Please run 'az login' to set up an account" @@ -33,6 +35,7 @@ class AzureCliCredential(object): This requires previously logging in to Azure via "az login", and will use the CLI's currently logged in identity. """ + @log_get_token("AzureCliCredential") def get_token(self, *scopes, **kwargs): # pylint:disable=no-self-use,unused-argument # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/browser.py b/sdk/identity/azure-identity/azure/identity/_credentials/browser.py index 50c8b754922d..cf860f5b39f1 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/browser.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/browser.py @@ -30,7 +30,7 @@ class InteractiveBrowserCredential(InteractiveCredential): https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword str tenant_id: an Azure Active Directory tenant ID. Defaults to the 'organizations' tenant, which can authenticate work or school accounts. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/certificate.py b/sdk/identity/azure-identity/azure/identity/_credentials/certificate.py index 81adb2621a96..35c81b2e3da5 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/certificate.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/certificate.py @@ -5,6 +5,7 @@ from typing import TYPE_CHECKING from .._internal import AadClient, CertificateCredentialBase +from .._internal.decorators import log_get_token if TYPE_CHECKING: from azure.core.credentials import AccessToken @@ -19,7 +20,7 @@ class CertificateCredential(CertificateCredentialBase): :param str certificate_path: path to a PEM-encoded certificate file including the private key. :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword password: The certificate's password. If a unicode string, it will be encoded as UTF-8. If the certificate requires a different encoding, pass appropriately encoded bytes instead. @@ -30,6 +31,7 @@ class CertificateCredential(CertificateCredentialBase): is unavailable. Default to False. Has no effect when `enable_persistent_cache` is False. """ + @log_get_token("CertificateCredential") def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. @@ -48,6 +50,11 @@ def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument token = self._client.get_cached_access_token(scopes, query={"client_id": self._client_id}) if not token: token = self._client.obtain_token_by_client_certificate(scopes, self._certificate, **kwargs) + elif self._client.should_refresh(token): + try: + self._client.obtain_token_by_client_certificate(scopes, self._certificate, **kwargs) + except Exception: # pylint: disable=broad-except + pass return token def _get_auth_client(self, tenant_id, client_id, **kwargs): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py index b40c373afa1d..752e16cf1f7d 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py @@ -2,6 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ +import logging + from azure.core.exceptions import ClientAuthenticationError from .. import CredentialUnavailableError @@ -16,6 +18,8 @@ from typing import Any, Optional from azure.core.credentials import AccessToken, TokenCredential +_LOGGER = logging.getLogger(__name__) + def _get_error_message(history): attempts = [] @@ -61,16 +65,26 @@ def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument for credential in self.credentials: try: token = credential.get_token(*scopes, **kwargs) + _LOGGER.info("%s acquired a token from %s", self.__class__.__name__, credential.__class__.__name__) self._successful_credential = credential return token except CredentialUnavailableError as ex: # credential didn't attempt authentication because it lacks required data or state -> continue history.append((credential, ex.message)) + _LOGGER.info("%s - %s is unavailable", self.__class__.__name__, credential.__class__.__name__) except Exception as ex: # pylint: disable=broad-except # credential failed to authenticate, or something unexpectedly raised -> break history.append((credential, str(ex))) + _LOGGER.warning( + '%s.get_token failed: %s raised unexpected error "%s"', + self.__class__.__name__, + credential.__class__.__name__, + ex, + exc_info=_LOGGER.isEnabledFor(logging.DEBUG), + ) break attempts = _get_error_message(history) message = self.__class__.__name__ + " failed to retrieve a token from the included credentials." + attempts + _LOGGER.warning(message) raise ClientAuthenticationError(message=message) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/client_secret.py b/sdk/identity/azure-identity/azure/identity/_credentials/client_secret.py index 4e20c2bd900b..a327416cd731 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/client_secret.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/client_secret.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ from .._internal import AadClient, ClientSecretCredentialBase +from .._internal.decorators import log_get_token try: from typing import TYPE_CHECKING @@ -23,7 +24,7 @@ class ClientSecretCredential(ClientSecretCredentialBase): :param str client_secret: one of the service principal's client secrets :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword bool enable_persistent_cache: if True, the credential will store tokens in a persistent cache. Defaults to False. @@ -31,6 +32,7 @@ class ClientSecretCredential(ClientSecretCredentialBase): is unavailable. Default to False. Has no effect when `enable_persistent_cache` is False. """ + @log_get_token("ClientSecretCredential") def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. @@ -49,6 +51,11 @@ def get_token(self, *scopes, **kwargs): token = self._client.get_cached_access_token(scopes, query={"client_id": self._client_id}) if not token: token = self._client.obtain_token_by_client_secret(scopes, self._secret, **kwargs) + elif self._client.should_refresh(token): + try: + self._client.obtain_token_by_client_secret(scopes, self._secret, **kwargs) + except Exception: # pylint: disable=broad-except + pass return token def _get_auth_client(self, tenant_id, client_id, **kwargs): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/default.py b/sdk/identity/azure-identity/azure/identity/_credentials/default.py index 44a802ee27c9..a2cadd674ca2 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/default.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/default.py @@ -13,7 +13,7 @@ from .managed_identity import ManagedIdentityCredential from .shared_cache import SharedTokenCacheCredential from .azure_cli import AzureCliCredential -from .vscode_credential import VSCodeCredential +from .vscode import VSCodeCredential try: @@ -46,7 +46,7 @@ class DefaultAzureCredential(ChainedTokenCredential): This default behavior is configurable with keyword arguments. :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. Managed identities ignore this because they reside in a single cloud. :keyword bool exclude_cli_credential: Whether to exclude the Azure CLI from the credential. Defaults to **False**. :keyword bool exclude_environment_credential: Whether to exclude a service principal configured by environment @@ -66,6 +66,8 @@ class DefaultAzureCredential(ChainedTokenCredential): Defaults to the value of environment variable AZURE_USERNAME, if any. :keyword str shared_cache_tenant_id: Preferred tenant for :class:`~azure.identity.SharedTokenCacheCredential`. Defaults to the value of environment variable AZURE_TENANT_ID, if any. + :keyword str visual_studio_code_tenant_id: Tenant ID to use when authenticating with + :class:`~azure.identity.VSCodeCredential`. """ def __init__(self, **kwargs): @@ -82,6 +84,10 @@ def __init__(self, **kwargs): "shared_cache_tenant_id", os.environ.get(EnvironmentVariables.AZURE_TENANT_ID) ) + vscode_tenant_id = kwargs.pop( + "visual_studio_code_tenant_id", os.environ.get(EnvironmentVariables.AZURE_TENANT_ID) + ) + exclude_environment_credential = kwargs.pop("exclude_environment_credential", False) exclude_managed_identity_credential = kwargs.pop("exclude_managed_identity_credential", False) exclude_shared_token_cache_credential = kwargs.pop("exclude_shared_token_cache_credential", False) @@ -93,7 +99,9 @@ def __init__(self, **kwargs): if not exclude_environment_credential: credentials.append(EnvironmentCredential(authority=authority, **kwargs)) if not exclude_managed_identity_credential: - credentials.append(ManagedIdentityCredential(**kwargs)) + credentials.append( + ManagedIdentityCredential(client_id=os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID), **kwargs) + ) if not exclude_shared_token_cache_credential and SharedTokenCacheCredential.supported(): try: # username and/or tenant_id are only required when the cache contains tokens for multiple identities @@ -102,10 +110,9 @@ def __init__(self, **kwargs): ) credentials.append(shared_cache) except Exception as ex: # pylint:disable=broad-except - # transitive dependency pywin32 doesn't support 3.8 (https://github.com/mhammond/pywin32/issues/1431) _LOGGER.info("Shared token cache is unavailable: '%s'", ex) if not exclude_visual_studio_code_credential: - credentials.append(VSCodeCredential()) + credentials.append(VSCodeCredential(tenant_id=vscode_tenant_id)) if not exclude_cli_credential: credentials.append(AzureCliCredential()) if not exclude_interactive_browser_credential: @@ -124,6 +131,10 @@ def get_token(self, *scopes, **kwargs): `message` attribute listing each authentication attempt and its error message. """ if self._successful_credential: - return self._successful_credential.get_token(*scopes, **kwargs) + token = self._successful_credential.get_token(*scopes, **kwargs) + _LOGGER.info( + "%s acquired a token from %s", self.__class__.__name__, self._successful_credential.__class__.__name__ + ) + return token return super(DefaultAzureCredential, self).get_token(*scopes, **kwargs) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/device_code.py b/sdk/identity/azure-identity/azure/identity/_credentials/device_code.py index fc0b0a78d99d..87fc9e738a31 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/device_code.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/device_code.py @@ -32,7 +32,7 @@ class DeviceCodeCredential(InteractiveCredential): :param str client_id: the application's ID :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword str tenant_id: an Azure Active Directory tenant ID. Defaults to the 'organizations' tenant, which can authenticate work or school accounts. **Required for single-tenant applications.** diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/environment.py b/sdk/identity/azure-identity/azure/identity/_credentials/environment.py index dc37abca83c1..565a8006b324 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/environment.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/environment.py @@ -2,10 +2,13 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ +import logging import os + from .. import CredentialUnavailableError from .._constants import EnvironmentVariables +from .._internal.decorators import log_get_token from .certificate import CertificateCredential from .client_secret import ClientSecretCredential from .user_password import UsernamePasswordCredential @@ -22,6 +25,8 @@ EnvironmentCredentialTypes = Union["CertificateCredential", "ClientSecretCredential", "UsernamePasswordCredential"] +_LOGGER = logging.getLogger(__name__) + class EnvironmentCredential(object): """A credential configured by environment variables. @@ -76,6 +81,21 @@ def __init__(self, **kwargs): **kwargs ) + if self._credential: + _LOGGER.info("Environment is configured for %s", self._credential.__class__.__name__) + else: + expected_variables = set( + EnvironmentVariables.CERT_VARS + + EnvironmentVariables.CLIENT_SECRET_VARS + + EnvironmentVariables.USERNAME_PASSWORD_VARS + ) + set_variables = [v for v in expected_variables if v in os.environ] + if set_variables: + _LOGGER.warning("Incomplete environment configuration. Set variables: %s", ", ".join(set_variables)) + else: + _LOGGER.info("No environment configuration found.") + + @log_get_token("EnvironmentCredential") def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py index 8d29f0aae70c..8bdd46f5cba9 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py @@ -2,6 +2,7 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ +import logging import os import six @@ -21,6 +22,7 @@ from .. import CredentialUnavailableError from .._authn_client import AuthnClient from .._constants import Endpoints, EnvironmentVariables +from .._internal.decorators import log_get_token from .._internal.user_agent import USER_AGENT try: @@ -32,6 +34,8 @@ # pylint:disable=unused-import from typing import Any, Optional, Type +_LOGGER = logging.getLogger(__name__) + class ManagedIdentityCredential(object): """Authenticates with an Azure managed identity in any hosting environment which supports managed identities. @@ -50,10 +54,13 @@ def __init__(self, **kwargs): # type: (**Any) -> None self._credential = None if os.environ.get(EnvironmentVariables.MSI_ENDPOINT): + _LOGGER.info("%s will use MSI", self.__class__.__name__) self._credential = MsiCredential(**kwargs) else: + _LOGGER.info("%s will use IMDS", self.__class__.__name__) self._credential = ImdsCredential(**kwargs) + @log_get_token("ManagedIdentityCredential") def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. @@ -160,6 +167,7 @@ def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument except Exception: # pylint:disable=broad-except # if anything else was raised, assume the endpoint is unavailable self._endpoint_available = False + _LOGGER.info("No response from the IMDS endpoint.") if not self._endpoint_available: message = "ManagedIdentityCredential authentication unavailable, no managed identity endpoint found." @@ -170,30 +178,39 @@ def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument token = self._client.get_cached_token(scopes) if not token: - resource = scopes[0] - if resource.endswith("/.default"): - resource = resource[: -len("/.default")] - params = dict({"api-version": "2018-02-01", "resource": resource}, **self._identity_config) - + token = self._refresh_token(*scopes) + elif self._client.should_refresh(token): try: - token = self._client.request_token(scopes, method="GET", params=params) - except HttpResponseError as ex: - # 400 in response to a token request indicates managed identity is disabled, - # or the identity with the specified client_id is not available - if ex.status_code == 400: - self._endpoint_available = False - message = "ManagedIdentityCredential authentication unavailable. " - if self._identity_config: - message += "The requested identity has not been assigned to this resource." - else: - message += "No identity has been assigned to this resource." - six.raise_from(CredentialUnavailableError(message=message), ex) - - # any other error is unexpected - six.raise_from(ClientAuthenticationError(message=ex.message, response=ex.response), None) + token = self._refresh_token(*scopes) + except Exception: # pylint: disable=broad-except + pass return token + def _refresh_token(self, *scopes): + resource = scopes[0] + if resource.endswith("/.default"): + resource = resource[: -len("/.default")] + params = dict({"api-version": "2018-02-01", "resource": resource}, **self._identity_config) + + try: + token = self._client.request_token(scopes, method="GET", params=params) + except HttpResponseError as ex: + # 400 in response to a token request indicates managed identity is disabled, + # or the identity with the specified client_id is not available + if ex.status_code == 400: + self._endpoint_available = False + message = "ManagedIdentityCredential authentication unavailable. " + if self._identity_config: + message += "The requested identity has not been assigned to this resource." + else: + message += "No identity has been assigned to this resource." + six.raise_from(CredentialUnavailableError(message=message), ex) + + # any other error is unexpected + six.raise_from(ClientAuthenticationError(message=ex.message, response=ex.response), None) + return token + class MsiCredential(_ManagedIdentityBase): """Authenticates via the MSI endpoint in an App Service or Cloud Shell environment. @@ -227,16 +244,25 @@ def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument token = self._client.get_cached_token(scopes) if not token: - resource = scopes[0] - if resource.endswith("/.default"): - resource = resource[: -len("/.default")] - secret = os.environ.get(EnvironmentVariables.MSI_SECRET) - if secret: - # MSI_ENDPOINT and MSI_SECRET set -> App Service - token = self._request_app_service_token(scopes=scopes, resource=resource, secret=secret) - else: - # only MSI_ENDPOINT set -> legacy-style MSI (Cloud Shell) - token = self._request_legacy_token(scopes=scopes, resource=resource) + token = self._refresh_token(*scopes) + elif self._client.should_refresh(token): + try: + token = self._refresh_token(*scopes) + except Exception: # pylint: disable=broad-except + pass + return token + + def _refresh_token(self, *scopes): + resource = scopes[0] + if resource.endswith("/.default"): + resource = resource[: -len("/.default")] + secret = os.environ.get(EnvironmentVariables.MSI_SECRET) + if secret: + # MSI_ENDPOINT and MSI_SECRET set -> App Service + token = self._request_app_service_token(scopes=scopes, resource=resource, secret=secret) + else: + # only MSI_ENDPOINT set -> legacy-style MSI (Cloud Shell) + token = self._request_legacy_token(scopes=scopes, resource=resource) return token def _request_app_service_token(self, scopes, resource, secret): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py b/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py index 2c6e84be8782..741dcc30bf03 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py @@ -5,6 +5,7 @@ from .. import CredentialUnavailableError from .._constants import AZURE_CLI_CLIENT_ID from .._internal import AadClient +from .._internal.decorators import log_get_token from .._internal.shared_token_cache import NO_TOKEN, SharedTokenCacheBase try: @@ -26,7 +27,7 @@ class SharedTokenCacheCredential(SharedTokenCacheBase): contains tokens for multiple identities. :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword str tenant_id: an Azure Active Directory tenant ID. Used to select an account when the cache contains tokens for multiple identities. @@ -36,6 +37,7 @@ class SharedTokenCacheCredential(SharedTokenCacheBase): is unavailable. Defaults to False. """ + @log_get_token("SharedTokenCacheCredential") def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument # type (*str, **Any) -> AccessToken """Get an access token for `scopes` from the shared cache. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/user_password.py b/sdk/identity/azure-identity/azure/identity/_credentials/user_password.py index d2a7a80c342a..1c6c1b3561d6 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/user_password.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/user_password.py @@ -29,7 +29,7 @@ class UsernamePasswordCredential(InteractiveCredential): :param str password: the user's password :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword str tenant_id: tenant ID or a domain associated with a tenant. If not provided, defaults to the 'organizations' tenant, which supports only Azure Active Directory work or school accounts. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/vscode_credential.py b/sdk/identity/azure-identity/azure/identity/_credentials/vscode.py similarity index 56% rename from sdk/identity/azure-identity/azure/identity/_credentials/vscode_credential.py rename to sdk/identity/azure-identity/azure/identity/_credentials/vscode.py index d2c5e4ee6f6e..39484f4f677b 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/vscode_credential.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/vscode.py @@ -4,16 +4,18 @@ # ------------------------------------ import sys from typing import TYPE_CHECKING + from .._exceptions import CredentialUnavailableError from .._constants import AZURE_VSCODE_CLIENT_ID from .._internal.aad_client import AadClient +from .._internal.decorators import log_get_token if sys.platform.startswith("win"): - from .win_vscode_adapter import get_credentials + from .._internal.win_vscode_adapter import get_credentials elif sys.platform.startswith("darwin"): - from .macos_vscode_adapter import get_credentials + from .._internal.macos_vscode_adapter import get_credentials else: - from .linux_vscode_adapter import get_credentials + from .._internal.linux_vscode_adapter import get_credentials if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports @@ -22,13 +24,24 @@ class VSCodeCredential(object): - """Authenticates by redeeming a refresh token previously saved by VS Code""" + """Authenticates as the Azure user signed in to Visual Studio Code. + + :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` + defines authorities for other clouds. + :keyword str tenant_id: ID of the tenant the credential should authenticate in. Defaults to the "organizations" + tenant, which supports only Azure Active Directory work or school accounts. + """ def __init__(self, **kwargs): # type: (**Any) -> None - self._client = kwargs.pop("_client", None) or AadClient("organizations", AZURE_VSCODE_CLIENT_ID, **kwargs) self._refresh_token = None + self._client = kwargs.pop("_client", None) + if not self._client: + tenant_id = kwargs.pop("tenant_id", None) or "organizations" + self._client = AadClient(tenant_id, AZURE_VSCODE_CLIENT_ID, **kwargs) + @log_get_token("VSCodeCredential") def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. @@ -47,9 +60,17 @@ def get_token(self, *scopes, **kwargs): token = self._client.get_cached_access_token(scopes) - if token: - return token + if not token: + token = self._redeem_refresh_token(scopes, **kwargs) + elif self._client.should_refresh(token): + try: + self._redeem_refresh_token(scopes, **kwargs) + except Exception: # pylint: disable=broad-except + pass + return token + def _redeem_refresh_token(self, scopes, **kwargs): + # type: (Sequence[str], **Any) -> Optional[AccessToken] if not self._refresh_token: self._refresh_token = get_credentials() if not self._refresh_token: diff --git a/sdk/identity/azure-identity/azure/identity/_exceptions.py b/sdk/identity/azure-identity/azure/identity/_exceptions.py index ef1199fdf3b9..1012b2ab6667 100644 --- a/sdk/identity/azure-identity/azure/identity/_exceptions.py +++ b/sdk/identity/azure-identity/azure/identity/_exceptions.py @@ -7,7 +7,7 @@ from azure.core.exceptions import ClientAuthenticationError if TYPE_CHECKING: - from typing import Any, Optional, Sequence + from typing import Any, Iterable, Optional class CredentialUnavailableError(ClientAuthenticationError): @@ -18,7 +18,7 @@ class AuthenticationRequiredError(CredentialUnavailableError): """Interactive authentication is required to acquire a token.""" def __init__(self, scopes, message=None, error_details=None, **kwargs): - # type: (Sequence[str], Optional[str], Optional[str], **Any) -> None + # type: (Iterable[str], Optional[str], Optional[str], **Any) -> None self._scopes = scopes self._error_details = error_details if not message: @@ -27,7 +27,7 @@ def __init__(self, scopes, message=None, error_details=None, **kwargs): @property def scopes(self): - # type: () -> Sequence[str] + # type: () -> Iterable[str] """Scopes requested during the failed authentication""" return self._scopes diff --git a/sdk/identity/azure-identity/azure/identity/_internal/__init__.py b/sdk/identity/azure-identity/azure/identity/_internal/__init__.py index 4d4f3f5989a7..236972381529 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/__init__.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/__init__.py @@ -36,8 +36,8 @@ def get_default_authority(): from .aadclient_certificate import AadClientCertificate from .certificate_credential_base import CertificateCredentialBase from .client_secret_credential_base import ClientSecretCredentialBase -from .exception_wrapper import wrap_exceptions -from .msal_credentials import InteractiveCredential, PublicClientCredential +from .decorators import wrap_exceptions +from .interactive import InteractiveCredential def _scopes_to_resource(*scopes): @@ -64,6 +64,5 @@ def _scopes_to_resource(*scopes): "get_default_authority", "InteractiveCredential", "normalize_authority", - "PublicClientCredential", "wrap_exceptions", ] diff --git a/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py b/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py index ab25736a9407..5681b930e194 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py @@ -21,7 +21,7 @@ if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports - from typing import Any, List, Optional, Sequence, Union + from typing import Any, Iterable, List, Optional, Union from azure.core.credentials import AccessToken from azure.core.pipeline.policies import HTTPPolicy, SansIOHTTPPolicy from azure.core.pipeline.transport import HttpTransport @@ -32,7 +32,7 @@ class AadClient(AadClientBase): def obtain_token_by_authorization_code(self, scopes, code, redirect_uri, client_secret=None, **kwargs): - # type: (Sequence[str], str, str, Optional[str], **Any) -> AccessToken + # type: (Iterable[str], str, str, Optional[str], **Any) -> AccessToken request = self._get_auth_code_request( scopes=scopes, code=code, redirect_uri=redirect_uri, client_secret=client_secret ) @@ -41,21 +41,21 @@ def obtain_token_by_authorization_code(self, scopes, code, redirect_uri, client_ return self._process_response(response, now) def obtain_token_by_client_certificate(self, scopes, certificate, **kwargs): - # type: (Sequence[str], AadClientCertificate, **Any) -> AccessToken + # type: (Iterable[str], AadClientCertificate, **Any) -> AccessToken request = self._get_client_certificate_request(scopes, certificate) now = int(time.time()) response = self._pipeline.run(request, stream=False, **kwargs) return self._process_response(response, now) def obtain_token_by_client_secret(self, scopes, secret, **kwargs): - # type: (Sequence[str], str, **Any) -> AccessToken + # type: (Iterable[str], str, **Any) -> AccessToken request = self._get_client_secret_request(scopes, secret) now = int(time.time()) response = self._pipeline.run(request, stream=False, **kwargs) return self._process_response(response, now) def obtain_token_by_refresh_token(self, scopes, refresh_token, **kwargs): - # type: (Sequence[str], str, **Any) -> AccessToken + # type: (Iterable[str], str, **Any) -> AccessToken request = self._get_refresh_token_request(scopes, refresh_token) now = int(time.time()) response = self._pipeline.run(request, stream=False, **kwargs) diff --git a/sdk/identity/azure-identity/azure/identity/_internal/aad_client_base.py b/sdk/identity/azure-identity/azure/identity/_internal/aad_client_base.py index e1af4f949626..cf7d70744a49 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/aad_client_base.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/aad_client_base.py @@ -16,6 +16,7 @@ from azure.core.credentials import AccessToken from azure.core.exceptions import ClientAuthenticationError from . import get_default_authority, normalize_authority +from .._constants import DEFAULT_TOKEN_REFRESH_RETRY_DELAY, DEFAULT_REFRESH_OFFSET try: from typing import TYPE_CHECKING @@ -29,7 +30,7 @@ if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports - from typing import Any, Optional, Sequence, Union + from typing import Any, Iterable, List, Optional, Union from azure.core.pipeline import AsyncPipeline, Pipeline, PipelineResponse from azure.core.pipeline.policies import AsyncHTTPPolicy, HTTPPolicy, SansIOHTTPPolicy from azure.core.pipeline.transport import AsyncHttpTransport, HttpTransport @@ -48,21 +49,37 @@ def __init__(self, tenant_id, client_id, authority=None, cache=None, **kwargs): self._cache = cache or TokenCache() self._client_id = client_id self._pipeline = self._build_pipeline(**kwargs) + self._token_refresh_retry_delay = DEFAULT_TOKEN_REFRESH_RETRY_DELAY + self._token_refresh_offset = DEFAULT_REFRESH_OFFSET + self._last_refresh_time = 0 def get_cached_access_token(self, scopes, query=None): - # type: (Sequence[str], Optional[dict]) -> Optional[AccessToken] + # type: (Iterable[str], Optional[dict]) -> Optional[AccessToken] tokens = self._cache.find(TokenCache.CredentialType.ACCESS_TOKEN, target=list(scopes), query=query) for token in tokens: expires_on = int(token["expires_on"]) - if expires_on - 300 > int(time.time()): + if expires_on > int(time.time()): return AccessToken(token["secret"], expires_on) return None def get_cached_refresh_tokens(self, scopes): - # type: (Sequence[str]) -> Sequence[dict] + # type: (Iterable[str]) -> List[dict] """Assumes all cached refresh tokens belong to the same user""" return self._cache.find(TokenCache.CredentialType.REFRESH_TOKEN, target=list(scopes)) + def should_refresh(self, token): + # type: (AccessToken) -> bool + """ check if the token needs refresh or not + """ + expires_on = int(token.expires_on) + now = int(time.time()) + if expires_on - now > self._token_refresh_offset: + return False + if now - self._last_refresh_time < self._token_refresh_retry_delay: + return False + return True + + @abc.abstractmethod def obtain_token_by_authorization_code(self, scopes, code, redirect_uri, client_secret=None, **kwargs): pass @@ -85,6 +102,7 @@ def _build_pipeline(self, config=None, policies=None, transport=None, **kwargs): def _process_response(self, response, request_time): # type: (PipelineResponse, int) -> AccessToken + self._last_refresh_time = request_time # no matter succeed or not, update the last refresh time content = ContentDecodePolicy.deserialize_from_http_generics(response.http_response) @@ -136,7 +154,7 @@ def _process_response(self, response, request_time): return token def _get_auth_code_request(self, scopes, code, redirect_uri, client_secret=None): - # type: (Sequence[str], str, str, Optional[str]) -> HttpRequest + # type: (Iterable[str], str, str, Optional[str]) -> HttpRequest data = { "client_id": self._client_id, "code": code, @@ -153,7 +171,7 @@ def _get_auth_code_request(self, scopes, code, redirect_uri, client_secret=None) return request def _get_client_certificate_request(self, scopes, certificate): - # type: (Sequence[str], AadClientCertificate) -> HttpRequest + # type: (Iterable[str], AadClientCertificate) -> HttpRequest assertion = self._get_jwt_assertion(certificate) data = { "client_assertion": assertion, @@ -169,7 +187,7 @@ def _get_client_certificate_request(self, scopes, certificate): return request def _get_client_secret_request(self, scopes, secret): - # type: (Sequence[str], str) -> HttpRequest + # type: (Iterable[str], str) -> HttpRequest data = { "client_id": self._client_id, "client_secret": secret, @@ -207,7 +225,7 @@ def _get_jwt_assertion(self, certificate): return jwt_bytes.decode("utf-8") def _get_refresh_token_request(self, scopes, refresh_token): - # type: (Sequence[str], str) -> HttpRequest + # type: (Iterable[str], str) -> HttpRequest data = { "grant_type": "refresh_token", "refresh_token": refresh_token, diff --git a/sdk/identity/azure-identity/azure/identity/_internal/decorators.py b/sdk/identity/azure-identity/azure/identity/_internal/decorators.py new file mode 100644 index 000000000000..6c00f74bff67 --- /dev/null +++ b/sdk/identity/azure-identity/azure/identity/_internal/decorators.py @@ -0,0 +1,52 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +import functools +import logging + +from six import raise_from +from azure.core.exceptions import ClientAuthenticationError + +_LOGGER = logging.getLogger(__name__) + + +def log_get_token(class_name): + """Adds logging around get_token calls. + + :param str class_name: required for the sake of Python 2.7, which lacks an easy way to get the credential's class + name from the decorated function + """ + + def decorator(fn): + qualified_name = class_name + ".get_token" + + @functools.wraps(fn) + def wrapper(*args, **kwargs): + try: + token = fn(*args, **kwargs) + _LOGGER.info("%s succeeded", qualified_name) + return token + except Exception as ex: + _LOGGER.warning("%s failed: %s", qualified_name, ex, exc_info=_LOGGER.isEnabledFor(logging.DEBUG)) + raise + + return wrapper + + return decorator + + +def wrap_exceptions(fn): + """Prevents leaking exceptions defined outside azure-core by raising ClientAuthenticationError from them.""" + + @functools.wraps(fn) + def wrapper(*args, **kwargs): + try: + return fn(*args, **kwargs) + except ClientAuthenticationError: + raise + except Exception as ex: # pylint:disable=broad-except + auth_error = ClientAuthenticationError(message="Authentication failed: {}".format(ex)) + raise_from(auth_error, ex) + + return wrapper diff --git a/sdk/identity/azure-identity/azure/identity/_internal/exception_wrapper.py b/sdk/identity/azure-identity/azure/identity/_internal/exception_wrapper.py deleted file mode 100644 index 4d07f54c85a7..000000000000 --- a/sdk/identity/azure-identity/azure/identity/_internal/exception_wrapper.py +++ /dev/null @@ -1,25 +0,0 @@ -# ------------------------------------ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -# ------------------------------------ -import functools - -from six import raise_from - -from azure.core.exceptions import ClientAuthenticationError - - -def wrap_exceptions(fn): - """Prevents leaking exceptions defined outside azure-core by raising ClientAuthenticationError from them.""" - - @functools.wraps(fn) - def wrapper(*args, **kwargs): - try: - return fn(*args, **kwargs) - except ClientAuthenticationError: - raise - except Exception as ex: # pylint:disable=broad-except - auth_error = ClientAuthenticationError(message="Authentication failed: {}".format(ex)) - raise_from(auth_error, ex) - - return wrapper diff --git a/sdk/identity/azure-identity/azure/identity/_internal/interactive.py b/sdk/identity/azure-identity/azure/identity/_internal/interactive.py new file mode 100644 index 000000000000..4e226bc0c357 --- /dev/null +++ b/sdk/identity/azure-identity/azure/identity/_internal/interactive.py @@ -0,0 +1,197 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Base class for credentials using MSAL for interactive user authentication""" + +import abc +import base64 +import json +import logging +import time +from typing import TYPE_CHECKING + +import msal +from six.moves.urllib_parse import urlparse +from azure.core.credentials import AccessToken +from azure.core.exceptions import ClientAuthenticationError + +from .msal_credentials import MsalCredential +from .._auth_record import AuthenticationRecord +from .._constants import KnownAuthorities +from .._exceptions import AuthenticationRequiredError, CredentialUnavailableError +from .._internal import wrap_exceptions + +if TYPE_CHECKING: + # pylint:disable=ungrouped-imports,unused-import + from typing import Any, Optional + +_LOGGER = logging.getLogger(__name__) + +_DEFAULT_AUTHENTICATE_SCOPES = { + "https://" + KnownAuthorities.AZURE_CHINA: ("https://management.core.chinacloudapi.cn//.default",), + "https://" + KnownAuthorities.AZURE_GERMANY: ("https://management.core.cloudapi.de//.default",), + "https://" + KnownAuthorities.AZURE_GOVERNMENT: ("https://management.core.usgovcloudapi.net//.default",), + "https://" + KnownAuthorities.AZURE_PUBLIC_CLOUD: ("https://management.core.windows.net//.default",), +} + + +def _decode_client_info(raw): + """Taken from msal.oauth2cli.oidc""" + + raw += "=" * (-len(raw) % 4) + raw = str(raw) # On Python 2.7, argument of urlsafe_b64decode must be str, not unicode. + return base64.urlsafe_b64decode(raw).decode("utf-8") + + +def _build_auth_record(response): + """Build an AuthenticationRecord from the result of an MSAL ClientApplication token request""" + + try: + id_token = response["id_token_claims"] + + if "client_info" in response: + client_info = json.loads(_decode_client_info(response["client_info"])) + home_account_id = "{uid}.{utid}".format(**client_info) + else: + # MSAL uses the subject claim as home_account_id when the STS doesn't provide client_info + home_account_id = id_token["sub"] + + return AuthenticationRecord( + authority=urlparse(id_token["iss"]).netloc, # "iss" is the URL of the issuing tenant + client_id=id_token["aud"], + home_account_id=home_account_id, + tenant_id=id_token["tid"], # tenant which issued the token, not necessarily user's home tenant + username=id_token["preferred_username"], + ) + except (KeyError, ValueError): + # surprising: msal.ClientApplication always requests an id token, whose shape shouldn't change + return None + + +class InteractiveCredential(MsalCredential): + def __init__(self, **kwargs): + self._disable_automatic_authentication = kwargs.pop("disable_automatic_authentication", False) + self._auth_record = kwargs.pop("authentication_record", None) # type: Optional[AuthenticationRecord] + if self._auth_record: + kwargs.pop("client_id", None) # authentication_record overrides client_id argument + tenant_id = kwargs.pop("tenant_id", None) or self._auth_record.tenant_id + super(InteractiveCredential, self).__init__( + client_id=self._auth_record.client_id, + authority=self._auth_record.authority, + tenant_id=tenant_id, + **kwargs + ) + else: + super(InteractiveCredential, self).__init__(**kwargs) + + def get_token(self, *scopes, **kwargs): + # type: (*str, **Any) -> AccessToken + """Request an access token for `scopes`. + + .. note:: This method is called by Azure SDK clients. It isn't intended for use in application code. + + :param str scopes: desired scopes for the access token. This method requires at least one scope. + :rtype: :class:`azure.core.credentials.AccessToken` + :raises CredentialUnavailableError: the credential is unable to attempt authentication because it lacks + required data, state, or platform support + :raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The error's ``message`` + attribute gives a reason. + :raises AuthenticationRequiredError: user interaction is necessary to acquire a token, and the credential is + configured not to begin this automatically. Call :func:`authenticate` to begin interactive authentication. + """ + if not scopes: + message = "'get_token' requires at least one scope" + _LOGGER.warning("%s.get_token failed: %s", self.__class__.__name__, message) + raise ValueError(message) + + allow_prompt = kwargs.pop("_allow_prompt", not self._disable_automatic_authentication) + try: + token = self._acquire_token_silent(*scopes, **kwargs) + _LOGGER.info("%s.get_token succeeded", self.__class__.__name__) + return token + except Exception as ex: # pylint:disable=broad-except + if not (isinstance(ex, AuthenticationRequiredError) and allow_prompt): + _LOGGER.warning( + "%s.get_token failed: %s", + self.__class__.__name__, + ex, + exc_info=_LOGGER.isEnabledFor(logging.DEBUG), + ) + raise + + # silent authentication failed -> authenticate interactively + now = int(time.time()) + + try: + result = self._request_token(*scopes, **kwargs) + if "access_token" not in result: + message = "Authentication failed: {}".format(result.get("error_description") or result.get("error")) + raise ClientAuthenticationError(message=message) + + # this may be the first authentication, or the user may have authenticated a different identity + self._auth_record = _build_auth_record(result) + except Exception as ex: # pylint:disable=broad-except + _LOGGER.warning( + "%s.get_token failed: %s", self.__class__.__name__, ex, exc_info=_LOGGER.isEnabledFor(logging.DEBUG), + ) + raise + + _LOGGER.info("%s.get_token succeeded", self.__class__.__name__) + return AccessToken(result["access_token"], now + int(result["expires_in"])) + + def authenticate(self, **kwargs): + # type: (**Any) -> AuthenticationRecord + """Interactively authenticate a user. + + :keyword Iterable[str] scopes: scopes to request during authentication, such as those provided by + :func:`AuthenticationRequiredError.scopes`. If provided, successful authentication will cache an access token + for these scopes. + :rtype: ~azure.identity.AuthenticationRecord + :raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The error's ``message`` + attribute gives a reason. + """ + + scopes = kwargs.pop("scopes", None) + if not scopes: + if self._authority not in _DEFAULT_AUTHENTICATE_SCOPES: + # the credential is configured to use a cloud whose ARM scope we can't determine + raise CredentialUnavailableError( + message="Authenticating in this environment requires a value for the 'scopes' keyword argument." + ) + + scopes = _DEFAULT_AUTHENTICATE_SCOPES[self._authority] + + _ = self.get_token(*scopes, _allow_prompt=True, **kwargs) + return self._auth_record # type: ignore + + @wrap_exceptions + def _acquire_token_silent(self, *scopes, **kwargs): + # type: (*str, **Any) -> AccessToken + result = None + if self._auth_record: + app = self._get_app() + for account in app.get_accounts(username=self._auth_record.username): + if account.get("home_account_id") != self._auth_record.home_account_id: + continue + + now = int(time.time()) + result = app.acquire_token_silent_with_error(list(scopes), account=account, **kwargs) + if result and "access_token" in result and "expires_in" in result: + return AccessToken(result["access_token"], now + int(result["expires_in"])) + + # if we get this far, result is either None or the content of an AAD error response + if result: + details = result.get("error_description") or result.get("error") + raise AuthenticationRequiredError(scopes, error_details=details) + raise AuthenticationRequiredError(scopes) + + def _get_app(self): + # type: () -> msal.PublicClientApplication + if not self._msal_app: + self._msal_app = self._create_app(msal.PublicClientApplication) + return self._msal_app + + @abc.abstractmethod + def _request_token(self, *scopes, **kwargs): + pass diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/linux_vscode_adapter.py b/sdk/identity/azure-identity/azure/identity/_internal/linux_vscode_adapter.py similarity index 91% rename from sdk/identity/azure-identity/azure/identity/_credentials/linux_vscode_adapter.py rename to sdk/identity/azure-identity/azure/identity/_internal/linux_vscode_adapter.py index d31b202678df..e25dfc7bcb90 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/linux_vscode_adapter.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/linux_vscode_adapter.py @@ -4,9 +4,12 @@ # ------------------------------------ import os import json +import logging import ctypes as ct from .._constants import VSCODE_CREDENTIALS_SECTION +_LOGGER = logging.getLogger(__name__) + def _c_str(string): return ct.c_char_p(string.encode("utf-8")) @@ -96,5 +99,8 @@ def get_credentials(): environment_name = _get_user_settings() credentials = _get_refresh_token(VSCODE_CREDENTIALS_SECTION, environment_name) return credentials - except Exception: # pylint: disable=broad-except + except Exception as ex: # pylint: disable=broad-except + _LOGGER.debug( + 'Exception retrieving VS Code credentials: "%s"', ex, exc_info=_LOGGER.isEnabledFor(logging.DEBUG) + ) return None diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/macos_vscode_adapter.py b/sdk/identity/azure-identity/azure/identity/_internal/macos_vscode_adapter.py similarity index 81% rename from sdk/identity/azure-identity/azure/identity/_credentials/macos_vscode_adapter.py rename to sdk/identity/azure-identity/azure/identity/_internal/macos_vscode_adapter.py index 003f1daca549..4db3a38ae423 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/macos_vscode_adapter.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/macos_vscode_adapter.py @@ -4,9 +4,12 @@ # ------------------------------------ import os import json +import logging from msal_extensions.osx import Keychain, KeychainError from .._constants import VSCODE_CREDENTIALS_SECTION +_LOGGER = logging.getLogger(__name__) + def _get_user_settings_path(): app_data_folder = os.environ["USER"] @@ -37,5 +40,8 @@ def get_credentials(): environment_name = _get_user_settings() credentials = _get_refresh_token(VSCODE_CREDENTIALS_SECTION, environment_name) return credentials - except Exception: # pylint: disable=broad-except + except Exception as ex: # pylint: disable=broad-except + _LOGGER.debug( + 'Exception retrieving VS Code credentials: "%s"', ex, exc_info=_LOGGER.isEnabledFor(logging.DEBUG) + ) return None diff --git a/sdk/identity/azure-identity/azure/identity/_internal/msal_credentials.py b/sdk/identity/azure-identity/azure/identity/_internal/msal_credentials.py index 826ed9ef50d2..fd5034acd4bb 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/msal_credentials.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/msal_credentials.py @@ -3,23 +3,13 @@ # Licensed under the MIT License. # ------------------------------------ import abc -import base64 -import json -import logging -import time import msal -from six.moves.urllib_parse import urlparse from azure.core.credentials import AccessToken -from azure.core.exceptions import ClientAuthenticationError -from .exception_wrapper import wrap_exceptions from .msal_client import MsalClient from .persistent_cache import load_user_cache -from .._constants import KnownAuthorities -from .._exceptions import AuthenticationRequiredError, CredentialUnavailableError from .._internal import get_default_authority, normalize_authority -from .._auth_record import AuthenticationRecord try: ABC = abc.ABC @@ -36,49 +26,6 @@ from typing import Any, Mapping, Optional, Type, Union -_LOGGER = logging.getLogger(__name__) - -_DEFAULT_AUTHENTICATE_SCOPES = { - "https://" + KnownAuthorities.AZURE_CHINA: ("https://management.core.chinacloudapi.cn//.default",), - "https://" + KnownAuthorities.AZURE_GERMANY: ("https://management.core.cloudapi.de//.default",), - "https://" + KnownAuthorities.AZURE_GOVERNMENT: ("https://management.core.usgovcloudapi.net//.default",), - "https://" + KnownAuthorities.AZURE_PUBLIC_CLOUD: ("https://management.core.windows.net//.default",), -} - - -def _decode_client_info(raw): - """Taken from msal.oauth2cli.oidc""" - - raw += "=" * (-len(raw) % 4) - raw = str(raw) # On Python 2.7, argument of urlsafe_b64decode must be str, not unicode. - return base64.urlsafe_b64decode(raw).decode("utf-8") - - -def _build_auth_record(response): - """Build an AuthenticationRecord from the result of an MSAL ClientApplication token request""" - - try: - id_token = response["id_token_claims"] - - if "client_info" in response: - client_info = json.loads(_decode_client_info(response["client_info"])) - home_account_id = "{uid}.{utid}".format(**client_info) - else: - # MSAL uses the subject claim as home_account_id when the STS doesn't provide client_info - home_account_id = id_token["sub"] - - return AuthenticationRecord( - authority=urlparse(id_token["iss"]).netloc, # "iss" is the URL of the issuing tenant - client_id=id_token["aud"], - home_account_id=home_account_id, - tenant_id=id_token["tid"], # tenant which issued the token, not necessarily user's home tenant - username=id_token["preferred_username"], - ) - except (KeyError, ValueError): - # surprising: msal.ClientApplication always requests an id token, whose shape shouldn't change - return None - - class MsalCredential(ABC): """Base class for credentials wrapping MSAL applications""" @@ -125,124 +72,3 @@ def _create_app(self, cls): ) return app - - -class PublicClientCredential(MsalCredential): - """Wraps an MSAL PublicClientApplication with the TokenCredential API""" - - @abc.abstractmethod - def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument - # type: (*str, **Any) -> AccessToken - pass - - def _get_app(self): - # type: () -> msal.PublicClientApplication - if not self._msal_app: - self._msal_app = self._create_app(msal.PublicClientApplication) - return self._msal_app - - -class InteractiveCredential(PublicClientCredential): - def __init__(self, **kwargs): - self._disable_automatic_authentication = kwargs.pop("disable_automatic_authentication", False) - self._auth_record = kwargs.pop("authentication_record", None) # type: Optional[AuthenticationRecord] - if self._auth_record: - kwargs.pop("client_id", None) # authentication_record overrides client_id argument - tenant_id = kwargs.pop("tenant_id", None) or self._auth_record.tenant_id - super(InteractiveCredential, self).__init__( - client_id=self._auth_record.client_id, - authority=self._auth_record.authority, - tenant_id=tenant_id, - **kwargs - ) - else: - super(InteractiveCredential, self).__init__(**kwargs) - - def get_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - """Request an access token for `scopes`. - - .. note:: This method is called by Azure SDK clients. It isn't intended for use in application code. - - :param str scopes: desired scopes for the access token. This method requires at least one scope. - :rtype: :class:`azure.core.credentials.AccessToken` - :raises CredentialUnavailableError: the credential is unable to attempt authentication because it lacks - required data, state, or platform support - :raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The error's ``message`` - attribute gives a reason. - :raises AuthenticationRequiredError: user interaction is necessary to acquire a token, and the credential is - configured not to begin this automatically. Call :func:`authenticate` to begin interactive authentication. - """ - if not scopes: - raise ValueError("'get_token' requires at least one scope") - - allow_prompt = kwargs.pop("_allow_prompt", not self._disable_automatic_authentication) - try: - return self._acquire_token_silent(*scopes, **kwargs) - except AuthenticationRequiredError: - if not allow_prompt: - raise - - # silent authentication failed -> authenticate interactively - now = int(time.time()) - - result = self._request_token(*scopes, **kwargs) - if "access_token" not in result: - message = "Authentication failed: {}".format(result.get("error_description") or result.get("error")) - raise ClientAuthenticationError(message=message) - - # this may be the first authentication, or the user may have authenticated a different identity - self._auth_record = _build_auth_record(result) - - return AccessToken(result["access_token"], now + int(result["expires_in"])) - - def authenticate(self, **kwargs): - # type: (**Any) -> AuthenticationRecord - """Interactively authenticate a user. - - :keyword Sequence[str] scopes: scopes to request during authentication, such as those provided by - :func:`AuthenticationRequiredError.scopes`. If provided, successful authentication will cache an access token - for these scopes. - :rtype: ~azure.identity.AuthenticationRecord - :raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The error's ``message`` - attribute gives a reason. - """ - - scopes = kwargs.pop("scopes", None) - if not scopes: - if self._authority not in _DEFAULT_AUTHENTICATE_SCOPES: - # the credential is configured to use a cloud whose ARM scope we can't determine - raise CredentialUnavailableError( - message="Authenticating in this environment requires a value for the 'scopes' keyword argument." - ) - - scopes = _DEFAULT_AUTHENTICATE_SCOPES[self._authority] - - _ = self.get_token(*scopes, _allow_prompt=True, **kwargs) - return self._auth_record # type: ignore - - @wrap_exceptions - def _acquire_token_silent(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - result = None - if self._auth_record: - app = self._get_app() - for account in app.get_accounts(username=self._auth_record.username): - if account.get("home_account_id") != self._auth_record.home_account_id: - continue - - now = int(time.time()) - result = app.acquire_token_silent_with_error(list(scopes), account=account, **kwargs) - if result and "access_token" in result and "expires_in" in result: - return AccessToken(result["access_token"], now + int(result["expires_in"])) - - # if we get this far, result is either None or the content of an AAD error response - if result: - details = result.get("error_description") or result.get("error") - raise AuthenticationRequiredError(scopes, error_details=details) - raise AuthenticationRequiredError(scopes) - - @abc.abstractmethod - def _request_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> dict - """Request an access token via a non-silent MSAL token acquisition method, returning that method's result""" diff --git a/sdk/identity/azure-identity/azure/identity/_internal/shared_token_cache.py b/sdk/identity/azure-identity/azure/identity/_internal/shared_token_cache.py index 414819cc4ed0..d28a7602fd5e 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/shared_token_cache.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/shared_token_cache.py @@ -28,7 +28,7 @@ if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports - from typing import Any, Iterable, List, Mapping, Optional, Sequence + from typing import Any, Iterable, List, Mapping, Optional from .._internal import AadClientBase from azure.identity import AuthenticationRecord @@ -203,7 +203,7 @@ def _get_account(self, username=None, tenant_id=None): raise CredentialUnavailableError(message=message) def _get_cached_access_token(self, scopes, account): - # type: (Sequence[str], CacheItem) -> Optional[AccessToken] + # type: (Iterable[str], CacheItem) -> Optional[AccessToken] if "home_account_id" not in account: return None diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/win_vscode_adapter.py b/sdk/identity/azure-identity/azure/identity/_internal/win_vscode_adapter.py similarity index 87% rename from sdk/identity/azure-identity/azure/identity/_credentials/win_vscode_adapter.py rename to sdk/identity/azure-identity/azure/identity/_internal/win_vscode_adapter.py index 1a0f4c86a05b..a3fb9a2ec5b9 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/win_vscode_adapter.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/win_vscode_adapter.py @@ -4,6 +4,7 @@ # ------------------------------------ import os import json +import logging import ctypes as ct from .._constants import VSCODE_CREDENTIALS_SECTION @@ -12,6 +13,7 @@ except (IOError, ValueError): pass +_LOGGER = logging.getLogger(__name__) SUPPORTED_CREDKEYS = set(("Type", "TargetName", "Persist", "UserName", "Comment", "CredentialBlob")) @@ -49,8 +51,7 @@ def _read_credential(service_name, account_name): if _advapi.CredReadW(target, 1, 0, ct.byref(cred_ptr)): cred_blob = cred_ptr.contents.CredentialBlob cred_blob_size = cred_ptr.contents.CredentialBlobSize - password_as_list = [int.from_bytes(cred_blob[pos : pos + 1], "little") for pos in range(0, cred_blob_size)] - cred = "".join(map(chr, password_as_list)) + cred = "".join(map(chr, cred_blob[:cred_blob_size])) _advapi.CredFree(cred_ptr) return cred return None @@ -81,5 +82,8 @@ def get_credentials(): environment_name = _get_user_settings() credentials = _get_refresh_token(VSCODE_CREDENTIALS_SECTION, environment_name) return credentials - except Exception: # pylint: disable=broad-except + except Exception as ex: # pylint: disable=broad-except + _LOGGER.debug( + 'Exception retrieving VS Code credentials: "%s"', ex, exc_info=_LOGGER.isEnabledFor(logging.DEBUG) + ) return None diff --git a/sdk/identity/azure-identity/azure/identity/_version.py b/sdk/identity/azure-identity/azure/identity/_version.py index 042a1f1928d9..25c72ffc18a2 100644 --- a/sdk/identity/azure-identity/azure/identity/_version.py +++ b/sdk/identity/azure-identity/azure/identity/_version.py @@ -2,4 +2,4 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -VERSION = "1.4.0b7" +VERSION = "1.4.0b8" diff --git a/sdk/identity/azure-identity/azure/identity/aio/_authn_client.py b/sdk/identity/azure-identity/azure/identity/aio/_authn_client.py index 9cfe13bd9498..42c441b39762 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_authn_client.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_authn_client.py @@ -64,7 +64,7 @@ async def __aexit__(self, *args): async def close(self) -> None: await self._pipeline.__aexit__() - async def request_token( + async def request_token( # pylint:disable=invalid-overridden-method self, scopes: "Iterable[str]", method: "Optional[str]" = "POST", @@ -75,6 +75,7 @@ async def request_token( ) -> AccessToken: request = self._prepare_request(method, headers=headers, form_data=form_data, params=params) request_time = int(time.time()) + self._last_refresh_time = request_time # no matter succeed or not, update the last refresh time response = await self._pipeline.run(request, stream=False, **kwargs) token = self._deserialize_and_cache_token(response=response, scopes=scopes, request_time=request_time) return token diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/__init__.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/__init__.py index d9146708694d..c5553286c582 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/__init__.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/__init__.py @@ -11,7 +11,7 @@ from .client_secret import ClientSecretCredential from .shared_cache import SharedTokenCacheCredential from .azure_cli import AzureCliCredential -from .vscode_credential import VSCodeCredential +from .vscode import VSCodeCredential __all__ = [ diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/authorization_code.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/authorization_code.py index 0b5fbb53dc33..2701716fe4d9 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/authorization_code.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/authorization_code.py @@ -7,10 +7,11 @@ from azure.core.exceptions import ClientAuthenticationError from .base import AsyncCredentialBase from .._internal import AadClient +from .._internal.decorators import log_get_token_async if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports - from typing import Any, Optional, Sequence + from typing import Any, Iterable, Optional from azure.core.credentials import AccessToken @@ -26,7 +27,7 @@ class AuthorizationCodeCredential(AsyncCredentialBase): :param str redirect_uri: The application's redirect URI. Must match the URI used to request the authorization code. :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword str client_secret: One of the application's client secrets. Required only for web apps and web APIs. """ @@ -51,6 +52,7 @@ def __init__( self._client = kwargs.pop("client", None) or AadClient(tenant_id, client_id, **kwargs) self._redirect_uri = redirect_uri + @log_get_token_async async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": """Request an access token for `scopes`. @@ -80,7 +82,11 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": token = self._client.get_cached_access_token(scopes) if not token: token = await self._redeem_refresh_token(scopes, **kwargs) - + elif self._client.should_refresh(token): + try: + await self._redeem_refresh_token(scopes, **kwargs) + except Exception: # pylint: disable=broad-except + pass if not token: raise ClientAuthenticationError( message="No authorization code, cached access token, or refresh token available." @@ -88,7 +94,7 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": return token - async def _redeem_refresh_token(self, scopes: "Sequence[str]", **kwargs: "Any") -> "Optional[AccessToken]": + async def _redeem_refresh_token(self, scopes: "Iterable[str]", **kwargs: "Any") -> "Optional[AccessToken]": for refresh_token in self._client.get_cached_refresh_tokens(scopes): if "secret" not in refresh_token: continue diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py index 56c025680db3..00d348db648e 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py @@ -8,6 +8,7 @@ from azure.core.exceptions import ClientAuthenticationError from .._credentials.base import AsyncCredentialBase +from .._internal.decorators import log_get_token_async from ... import CredentialUnavailableError from ..._credentials.azure_cli import ( AzureCliCredential as _SyncAzureCliCredential, @@ -27,6 +28,7 @@ class AzureCliCredential(AsyncCredentialBase): This requires previously logging in to Azure via "az login", and will use the CLI's currently logged in identity. """ + @log_get_token_async async def get_token(self, *scopes, **kwargs): """Request an access token for `scopes`. diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/certificate.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/certificate.py index 1b044a24c0e1..2842d32b918d 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/certificate.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/certificate.py @@ -6,6 +6,7 @@ from .base import AsyncCredentialBase from .._internal import AadClient +from .._internal.decorators import log_get_token_async from ..._internal import CertificateCredentialBase if TYPE_CHECKING: @@ -21,7 +22,7 @@ class CertificateCredential(CertificateCredentialBase, AsyncCredentialBase): :param str certificate_path: path to a PEM-encoded certificate file including the private key :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword password: The certificate's password. If a unicode string, it will be encoded as UTF-8. If the certificate requires a different encoding, pass appropriately encoded bytes instead. @@ -37,6 +38,7 @@ async def close(self): await self._client.__aexit__() + @log_get_token_async async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": # pylint:disable=unused-argument """Asynchronously request an access token for `scopes`. @@ -54,6 +56,11 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": # py token = self._client.get_cached_access_token(scopes, query={"client_id": self._client_id}) if not token: token = await self._client.obtain_token_by_client_certificate(scopes, self._certificate, **kwargs) + elif self._client.should_refresh(token): + try: + await self._client.obtain_token_by_client_certificate(scopes, self._certificate, **kwargs) + except Exception: # pylint: disable=broad-except + pass return token def _get_auth_client(self, tenant_id, client_id, **kwargs): diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py index aab679966e15..b20538d53e49 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import asyncio +import logging from typing import TYPE_CHECKING from azure.core.exceptions import ClientAuthenticationError @@ -15,6 +16,8 @@ from azure.core.credentials import AccessToken from azure.core.credentials_async import AsyncTokenCredential +_LOGGER = logging.getLogger(__name__) + class ChainedTokenCredential(AsyncCredentialBase): """A sequence of credentials that is itself a credential. @@ -53,14 +56,23 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": for credential in self.credentials: try: token = await credential.get_token(*scopes, **kwargs) + _LOGGER.info("%s acquired a token from %s", self.__class__.__name__, credential.__class__.__name__) self._successful_credential = credential return token except CredentialUnavailableError as ex: # credential didn't attempt authentication because it lacks required data or state -> continue history.append((credential, ex.message)) + _LOGGER.info("%s - %s is unavailable", self.__class__.__name__, credential.__class__.__name__) except Exception as ex: # pylint: disable=broad-except # credential failed to authenticate, or something unexpectedly raised -> break history.append((credential, str(ex))) + _LOGGER.warning( + '%s.get_token failed: %s raised unexpected error "%s"', + self.__class__.__name__, + credential.__class__.__name__, + ex, + exc_info=_LOGGER.isEnabledFor(logging.DEBUG), + ) break attempts = _get_error_message(history) diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/client_secret.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/client_secret.py index 87b5472760e6..bbc0aa98e472 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/client_secret.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/client_secret.py @@ -6,6 +6,7 @@ from .base import AsyncCredentialBase from .._internal import AadClient +from .._internal.decorators import log_get_token_async from ..._internal import ClientSecretCredentialBase if TYPE_CHECKING: @@ -21,7 +22,7 @@ class ClientSecretCredential(AsyncCredentialBase, ClientSecretCredentialBase): :param str client_secret: one of the service principal's client secrets :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword bool enable_persistent_cache: if True, the credential will store tokens in a persistent cache. Defaults to False. @@ -38,6 +39,7 @@ async def close(self): await self._client.__aexit__() + @log_get_token_async async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": """Asynchronously request an access token for `scopes`. @@ -55,6 +57,11 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": token = self._client.get_cached_access_token(scopes, query={"client_id": self._client_id}) if not token: token = await self._client.obtain_token_by_client_secret(scopes, self._secret, **kwargs) + elif self._client.should_refresh(token): + try: + await self._client.obtain_token_by_client_secret(scopes, self._secret, **kwargs) + except Exception: # pylint: disable=broad-except + pass return token def _get_auth_client(self, tenant_id, client_id, **kwargs): diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/default.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/default.py index fb1c066390b5..8cbe49b30cae 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/default.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/default.py @@ -13,7 +13,7 @@ from .environment import EnvironmentCredential from .managed_identity import ManagedIdentityCredential from .shared_cache import SharedTokenCacheCredential -from .vscode_credential import VSCodeCredential +from .vscode import VSCodeCredential if TYPE_CHECKING: from typing import Any @@ -39,7 +39,7 @@ class DefaultAzureCredential(ChainedTokenCredential): This default behavior is configurable with keyword arguments. :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. Managed identities ignore this because they reside in a single cloud. :keyword bool exclude_cli_credential: Whether to exclude the Azure CLI from the credential. Defaults to **False**. :keyword bool exclude_environment_credential: Whether to exclude a service principal configured by environment @@ -54,6 +54,8 @@ class DefaultAzureCredential(ChainedTokenCredential): Defaults to the value of environment variable AZURE_USERNAME, if any. :keyword str shared_cache_tenant_id: Preferred tenant for :class:`~azure.identity.SharedTokenCacheCredential`. Defaults to the value of environment variable AZURE_TENANT_ID, if any. + :keyword str visual_studio_code_tenant_id: Tenant ID to use when authenticating with + :class:`~azure.identity.VSCodeCredential`. """ def __init__(self, **kwargs: "Any") -> None: @@ -65,6 +67,10 @@ def __init__(self, **kwargs: "Any") -> None: "shared_cache_tenant_id", os.environ.get(EnvironmentVariables.AZURE_TENANT_ID) ) + vscode_tenant_id = kwargs.pop( + "visual_studio_code_tenant_id", os.environ.get(EnvironmentVariables.AZURE_TENANT_ID) + ) + exclude_visual_studio_code_credential = kwargs.pop("exclude_visual_studio_code_credential", False) exclude_cli_credential = kwargs.pop("exclude_cli_credential", False) exclude_environment_credential = kwargs.pop("exclude_environment_credential", False) @@ -75,7 +81,9 @@ def __init__(self, **kwargs: "Any") -> None: if not exclude_environment_credential: credentials.append(EnvironmentCredential(authority=authority, **kwargs)) if not exclude_managed_identity_credential: - credentials.append(ManagedIdentityCredential(**kwargs)) + credentials.append( + ManagedIdentityCredential(client_id=os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID), **kwargs) + ) if not exclude_shared_token_cache_credential and SharedTokenCacheCredential.supported(): try: # username and/or tenant_id are only required when the cache contains tokens for multiple identities @@ -87,7 +95,7 @@ def __init__(self, **kwargs: "Any") -> None: # transitive dependency pywin32 doesn't support 3.8 (https://github.com/mhammond/pywin32/issues/1431) _LOGGER.info("Shared token cache is unavailable: '%s'", ex) if not exclude_visual_studio_code_credential: - credentials.append(VSCodeCredential()) + credentials.append(VSCodeCredential(tenant_id=vscode_tenant_id)) if not exclude_cli_credential: credentials.append(AzureCliCredential()) diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py index 7e1197d702c2..2599e54ee69a 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py @@ -2,9 +2,12 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ +import logging import os from typing import TYPE_CHECKING +from .._internal.decorators import log_get_token_async + from ... import CredentialUnavailableError from ..._constants import EnvironmentVariables from .certificate import CertificateCredential @@ -15,6 +18,8 @@ from typing import Any, Optional, Union from azure.core.credentials import AccessToken +_LOGGER = logging.getLogger(__name__) + class EnvironmentCredential(AsyncCredentialBase): """A credential configured by environment variables. @@ -30,7 +35,7 @@ class EnvironmentCredential(AsyncCredentialBase): Service principal with certificate: - **AZURE_TENANT_ID**: ID of the service principal's tenant. Also called its 'directory' ID. - **AZURE_CLIENT_ID**: the service principal's client ID - - **AZURE_CLIENT_CERTIFICATE_PATH**: path to a PEM-encoded certificate file including the private key The + - **AZURE_CLIENT_CERTIFICATE_PATH**: path to a PEM-encoded certificate file including the private key. The certificate must not be password-protected. """ @@ -52,6 +57,16 @@ def __init__(self, **kwargs: "Any") -> None: **kwargs ) + if self._credential: + _LOGGER.info("Environment is configured for %s", self._credential.__class__.__name__) + else: + expected_variables = set(EnvironmentVariables.CERT_VARS + EnvironmentVariables.CLIENT_SECRET_VARS) + set_variables = [v for v in expected_variables if v in os.environ] + if set_variables: + _LOGGER.warning("Incomplete environment configuration. Set variables: %s", ", ".join(set_variables)) + else: + _LOGGER.info("No environment configuration found.") + async def __aenter__(self): if self._credential: await self._credential.__aenter__() @@ -63,6 +78,7 @@ async def close(self): if self._credential: await self._credential.__aexit__() + @log_get_token_async async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": """Asynchronously request an access token for `scopes`. diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py index 5e5bf172f43e..7def20143526 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import abc +import logging import os from typing import TYPE_CHECKING @@ -10,16 +11,19 @@ from azure.core.exceptions import ClientAuthenticationError, HttpResponseError from azure.core.pipeline.policies import AsyncRetryPolicy -from azure.identity._credentials.managed_identity import _ManagedIdentityBase from .base import AsyncCredentialBase from .._authn_client import AsyncAuthnClient +from .._internal.decorators import log_get_token_async from ... import CredentialUnavailableError from ..._constants import Endpoints, EnvironmentVariables +from ..._credentials.managed_identity import _ManagedIdentityBase if TYPE_CHECKING: from typing import Any, Optional from azure.core.configuration import Configuration +_LOGGER = logging.getLogger(__name__) + class ManagedIdentityCredential(AsyncCredentialBase): """Authenticates with an Azure managed identity in any hosting environment which supports managed identities. @@ -37,8 +41,10 @@ class ManagedIdentityCredential(AsyncCredentialBase): def __init__(self, **kwargs: "Any") -> None: self._credential = None if os.environ.get(EnvironmentVariables.MSI_ENDPOINT): + _LOGGER.info("%s will use MSI", self.__class__.__name__) self._credential = MsiCredential(**kwargs) else: + _LOGGER.info("%s will use IMDS", self.__class__.__name__) self._credential = ImdsCredential(**kwargs) async def __aenter__(self): @@ -51,6 +57,7 @@ async def close(self): if self._credential: await self._credential.__aexit__() + @log_get_token_async async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": """Asynchronously request an access token for `scopes`. @@ -120,6 +127,7 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> AccessToken: # pyli except Exception: # pylint:disable=broad-except # if anything else was raised, assume the endpoint is unavailable self._endpoint_available = False + _LOGGER.info("No response from the IMDS endpoint.") if not self._endpoint_available: message = "ManagedIdentityCredential authentication unavailable, no managed identity endpoint found." @@ -130,30 +138,39 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> AccessToken: # pyli token = self._client.get_cached_token(scopes) if not token: - resource = scopes[0] - if resource.endswith("/.default"): - resource = resource[: -len("/.default")] - params = {"api-version": "2018-02-01", "resource": resource, **self._identity_config} - + token = await self._refresh_token(*scopes) + elif self._client.should_refresh(token): try: - token = await self._client.request_token(scopes, method="GET", params=params) - except HttpResponseError as ex: - # 400 in response to a token request indicates managed identity is disabled, - # or the identity with the specified client_id is not available - if ex.status_code == 400: - self._endpoint_available = False - message = "ManagedIdentityCredential authentication unavailable. " - if self._identity_config: - message += "The requested identity has not been assigned to this resource." - else: - message += "No identity has been assigned to this resource." - raise CredentialUnavailableError(message=message) from ex - - # any other error is unexpected - raise ClientAuthenticationError(message=ex.message, response=ex.response) from None + token = await self._refresh_token(*scopes) + except Exception: # pylint: disable=broad-except + pass return token + async def _refresh_token(self, *scopes): + resource = scopes[0] + if resource.endswith("/.default"): + resource = resource[: -len("/.default")] + params = {"api-version": "2018-02-01", "resource": resource, **self._identity_config} + + try: + token = await self._client.request_token(scopes, method="GET", params=params) + except HttpResponseError as ex: + # 400 in response to a token request indicates managed identity is disabled, + # or the identity with the specified client_id is not available + if ex.status_code == 400: + self._endpoint_available = False + message = "ManagedIdentityCredential authentication unavailable. " + if self._identity_config: + message += "The requested identity has not been assigned to this resource." + else: + message += "No identity has been assigned to this resource." + raise CredentialUnavailableError(message=message) from ex + + # any other error is unexpected + raise ClientAuthenticationError(message=ex.message, response=ex.response) from None + return token + class MsiCredential(_AsyncManagedIdentityBase): """Authenticates via the MSI endpoint in an App Service or Cloud Shell environment. @@ -184,17 +201,26 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> AccessToken: # pyli token = self._client.get_cached_token(scopes) if not token: - resource = scopes[0] - if resource.endswith("/.default"): - resource = resource[: -len("/.default")] - - secret = os.environ.get(EnvironmentVariables.MSI_SECRET) - if secret: - # MSI_ENDPOINT and MSI_SECRET set -> App Service - token = await self._request_app_service_token(scopes=scopes, resource=resource, secret=secret) - else: - # only MSI_ENDPOINT set -> legacy-style MSI (Cloud Shell) - token = await self._request_legacy_token(scopes=scopes, resource=resource) + token = await self._refresh_token(*scopes) + elif self._client.should_refresh(token): + try: + token = await self._refresh_token(*scopes) + except Exception: # pylint: disable=broad-except + pass + return token + + async def _refresh_token(self, *scopes): + resource = scopes[0] + if resource.endswith("/.default"): + resource = resource[: -len("/.default")] + + secret = os.environ.get(EnvironmentVariables.MSI_SECRET) + if secret: + # MSI_ENDPOINT and MSI_SECRET set -> App Service + token = await self._request_app_service_token(scopes=scopes, resource=resource, secret=secret) + else: + # only MSI_ENDPOINT set -> legacy-style MSI (Cloud Shell) + token = await self._request_legacy_token(scopes=scopes, resource=resource) return token async def _request_app_service_token(self, scopes, resource, secret): diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/shared_cache.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/shared_cache.py index 66f25038aa6b..a737b8bcecfc 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/shared_cache.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/shared_cache.py @@ -8,6 +8,7 @@ from ..._constants import AZURE_CLI_CLIENT_ID from ..._internal.shared_token_cache import NO_TOKEN, SharedTokenCacheBase from .._internal.aad_client import AadClient +from .._internal.decorators import log_get_token_async from .base import AsyncCredentialBase if TYPE_CHECKING: @@ -24,7 +25,7 @@ class SharedTokenCacheCredential(SharedTokenCacheBase, AsyncCredentialBase): may contain tokens for multiple identities. :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', - the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.KnownAuthorities` + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. :keyword str tenant_id: an Azure Active Directory tenant ID. Used to select an account when the cache contains tokens for multiple identities. @@ -45,6 +46,7 @@ async def close(self): if self._client: await self._client.__aexit__() + @log_get_token_async async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": # pylint:disable=unused-argument """Get an access token for `scopes` from the shared cache. diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/vscode_credential.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/vscode.py similarity index 61% rename from sdk/identity/azure-identity/azure/identity/aio/_credentials/vscode_credential.py rename to sdk/identity/azure-identity/azure/identity/aio/_credentials/vscode.py index 798aefe8c5c2..f49d10cbd152 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/vscode_credential.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/vscode.py @@ -3,11 +3,13 @@ # Licensed under the MIT License. # ------------------------------------ from typing import TYPE_CHECKING + from ..._exceptions import CredentialUnavailableError from .._credentials.base import AsyncCredentialBase from ..._constants import AZURE_VSCODE_CLIENT_ID from .._internal.aad_client import AadClient -from ..._credentials.vscode_credential import get_credentials +from .._internal.decorators import log_get_token_async +from ..._credentials.vscode import get_credentials if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports @@ -16,11 +18,21 @@ class VSCodeCredential(AsyncCredentialBase): - """Authenticates by redeeming a refresh token previously saved by VS Code""" + """Authenticates as the Azure user signed in to Visual Studio Code. + + :keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com', + the authority for Azure Public Cloud (which is the default). :class:`~azure.identity.AzureAuthorityHosts` + defines authorities for other clouds. + :keyword str tenant_id: ID of the tenant the credential should authenticate in. Defaults to the "organizations" + tenant, which supports only Azure Active Directory work or school accounts. + """ def __init__(self, **kwargs: "Any") -> None: - self._client = kwargs.pop("_client", None) or AadClient("organizations", AZURE_VSCODE_CLIENT_ID, **kwargs) self._refresh_token = None + self._client = kwargs.pop("_client", None) + if not self._client: + tenant_id = kwargs.pop("tenant_id", None) or "organizations" + self._client = AadClient(tenant_id, AZURE_VSCODE_CLIENT_ID, **kwargs) async def __aenter__(self): if self._client: @@ -33,6 +45,7 @@ async def close(self): if self._client: await self._client.__aexit__() + @log_get_token_async async def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. @@ -50,9 +63,16 @@ async def get_token(self, *scopes, **kwargs): raise ValueError("'get_token' requires at least one scope") token = self._client.get_cached_access_token(scopes) - if token: - return token + if not token: + token = await self._redeem_refresh_token(scopes, **kwargs) + elif self._client.should_refresh(token): + try: + await self._redeem_refresh_token(scopes, **kwargs) + except Exception: # pylint: disable=broad-except + pass + return token + async def _redeem_refresh_token(self, scopes: "Sequence[str]", **kwargs: "Any") -> "Optional[AccessToken]": if not self._refresh_token: self._refresh_token = get_credentials() if not self._refresh_token: diff --git a/sdk/identity/azure-identity/azure/identity/aio/_internal/__init__.py b/sdk/identity/azure-identity/azure/identity/aio/_internal/__init__.py index 82f17fb260f8..9653b45acab7 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_internal/__init__.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_internal/__init__.py @@ -3,6 +3,6 @@ # Licensed under the MIT License. # ------------------------------------ from .aad_client import AadClient -from .exception_wrapper import wrap_exceptions +from .decorators import wrap_exceptions __all__ = ["AadClient", "wrap_exceptions"] diff --git a/sdk/identity/azure-identity/azure/identity/aio/_internal/aad_client.py b/sdk/identity/azure-identity/azure/identity/aio/_internal/aad_client.py index d45f83752bfb..24322896727c 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_internal/aad_client.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_internal/aad_client.py @@ -20,7 +20,7 @@ if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports - from typing import Any, List, Optional, Sequence, Union + from typing import Any, Iterable, List, Optional, Union from azure.core.credentials import AccessToken from azure.core.pipeline.policies import AsyncHTTPPolicy, SansIOHTTPPolicy from azure.core.pipeline.transport import AsyncHttpTransport @@ -29,6 +29,7 @@ Policy = Union[AsyncHTTPPolicy, SansIOHTTPPolicy] +# pylint:disable=invalid-overridden-method class AadClient(AadClientBase): async def __aenter__(self): await self._pipeline.__aenter__() @@ -44,7 +45,7 @@ async def close(self) -> None: async def obtain_token_by_authorization_code( self, - scopes: "Sequence[str]", + scopes: "Iterable[str]", code: str, redirect_uri: str, client_secret: "Optional[str]" = None, @@ -58,14 +59,14 @@ async def obtain_token_by_authorization_code( return self._process_response(response, now) async def obtain_token_by_client_certificate(self, scopes, certificate, **kwargs): - # type: (Sequence[str], AadClientCertificate, **Any) -> AccessToken + # type: (Iterable[str], AadClientCertificate, **Any) -> AccessToken request = self._get_client_certificate_request(scopes, certificate) now = int(time.time()) response = await self._pipeline.run(request, stream=False, **kwargs) return self._process_response(response, now) async def obtain_token_by_client_secret( - self, scopes: "Sequence[str]", secret: str, **kwargs: "Any" + self, scopes: "Iterable[str]", secret: str, **kwargs: "Any" ) -> "AccessToken": request = self._get_client_secret_request(scopes, secret) now = int(time.time()) @@ -73,7 +74,7 @@ async def obtain_token_by_client_secret( return self._process_response(response, now) async def obtain_token_by_refresh_token( - self, scopes: "Sequence[str]", refresh_token: str, **kwargs: "Any" + self, scopes: "Iterable[str]", refresh_token: str, **kwargs: "Any" ) -> "AccessToken": request = self._get_refresh_token_request(scopes, refresh_token) now = int(time.time()) diff --git a/sdk/identity/azure-identity/azure/identity/aio/_internal/exception_wrapper.py b/sdk/identity/azure-identity/azure/identity/aio/_internal/decorators.py similarity index 62% rename from sdk/identity/azure-identity/azure/identity/aio/_internal/exception_wrapper.py rename to sdk/identity/azure-identity/azure/identity/aio/_internal/decorators.py index 4d6f40f954cb..10bbd33269d2 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_internal/exception_wrapper.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_internal/decorators.py @@ -3,9 +3,25 @@ # Licensed under the MIT License. # ------------------------------------ import functools +import logging from azure.core.exceptions import ClientAuthenticationError +_LOGGER = logging.getLogger(__name__) + + +def log_get_token_async(fn): + @functools.wraps(fn) + async def wrapper(*args, **kwargs): + try: + token = await fn(*args, **kwargs) + _LOGGER.info("%s succeeded", fn.__qualname__) + return token + except Exception as ex: + _LOGGER.warning("%s failed: %s", fn.__qualname__, ex, exc_info=_LOGGER.isEnabledFor(logging.DEBUG)) + raise + return wrapper + def wrap_exceptions(fn): """Prevents leaking exceptions defined outside azure-core by raising ClientAuthenticationError from them.""" diff --git a/sdk/identity/azure-identity/samples/README.md b/sdk/identity/azure-identity/samples/README.md new file mode 100644 index 000000000000..35a9cd502650 --- /dev/null +++ b/sdk/identity/azure-identity/samples/README.md @@ -0,0 +1,37 @@ +--- +page_type: sample +languages: + - python +products: + - azure + - azure-identity +urlFragment: identity-samples +--- + +# Azure Identity Library Python Samples + +## Prerequisites + +You must have an [Azure subscription](https://azure.microsoft.com/free) and an +[Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/) to run +these samples. You can create a Key Vault in the +[Azure Portal](https://portal.azure.com/#create/Microsoft.KeyVault) or with the +[Azure CLI](https://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-cli). + +Azure Key Vault is used only to demonstrate authentication. Azure Identity has +the same API for all compatible client libraries. + +## Setup + +To run these samples, first install the Azure Identity and Key Vault Secrets +client libraries: + +```commandline +pip install azure-identity azure-keyvault-secrets +``` + +## Contents +| File | Description | +|-------------|-------------| +| control_interactive_prompts.py | demonstrates controlling when interactive credentials prompt for user interaction | +| user_authentication.py | demonstrates user authentication API for applications | diff --git a/sdk/identity/azure-identity/samples/control_interactive_prompts.py b/sdk/identity/azure-identity/samples/control_interactive_prompts.py new file mode 100644 index 000000000000..10dabf65e9d2 --- /dev/null +++ b/sdk/identity/azure-identity/samples/control_interactive_prompts.py @@ -0,0 +1,38 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Demonstrates controlling the timing of interactive authentication using InteractiveBrowserCredential. + +DeviceCodeCredential supports the same API. +""" + +import os +import sys +from azure.identity import AuthenticationRequiredError, InteractiveBrowserCredential +from azure.keyvault.secrets import SecretClient + + +# This sample uses Key Vault only for demonstration. Any client accepting azure-identity credentials will work the same. +VAULT_URL = os.environ.get("VAULT_URL") +if not VAULT_URL: + print("This sample expects environment variable 'VAULT_URL' to be set with the URL of a Key Vault.") + sys.exit(1) + + +# If it's important for your application to prompt for authentication only at certain times, +# create the credential with disable_automatic_authentication=True. This configures the credential to raise +# when interactive authentication is required, instead of immediately beginning that authentication. +credential = InteractiveBrowserCredential(disable_automatic_authentication=True) +client = SecretClient(VAULT_URL, credential) + +try: + secret_names = [s.name for s in client.list_properties_of_secrets()] +except AuthenticationRequiredError as ex: + # Interactive authentication is necessary to authorize the client's request. The exception carries the + # requested authentication scopes. If you pass these to 'authenticate', it will cache an access token + # for those scopes. + credential.authenticate(scopes=ex.scopes) + +# the client operation should now succeed +secret_names = [s.name for s in client.list_properties_of_secrets()] diff --git a/sdk/identity/azure-identity/samples/user_authentication.py b/sdk/identity/azure-identity/samples/user_authentication.py new file mode 100644 index 000000000000..2c21c2a44973 --- /dev/null +++ b/sdk/identity/azure-identity/samples/user_authentication.py @@ -0,0 +1,43 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Demonstrates user authentication using InteractiveBrowserCredential. DeviceCodeCredential supports the same API.""" + +import os +import sys +from azure.identity import AuthenticationRecord, InteractiveBrowserCredential +from azure.keyvault.secrets import SecretClient + + +# This sample uses Key Vault only for demonstration. Any client accepting azure-identity credentials will work the same. +VAULT_URL = os.environ.get("VAULT_URL") +if not VAULT_URL: + print("This sample expects environment variable 'VAULT_URL' to be set with the URL of a Key Vault.") + sys.exit(1) + + +# Persistent caching is optional. By default, interactive credentials cache in memory only. +credential = InteractiveBrowserCredential(enable_persistent_cache=True) + +# The 'authenticate' method begins interactive authentication. Call it whenever it's convenient +# for your application to authenticate a user. It returns a record of the authentication. +record = credential.authenticate() + +# The record contains no authentication secrets. You can serialize it to JSON for storage. +record_json = record.serialize() + +# An authenticated credential is ready for use with a client. This request should succeed +# without prompting for authentication again. +client = SecretClient(VAULT_URL, credential) +secret_names = [s.name for s in client.list_properties_of_secrets()] + +# With persistent caching enabled, an authentication record stored by your application enables +# credentials to access data from past authentications. If the cache contains sufficient data, +# this eliminates the need for your application to prompt for authentication every time it runs. +deserialized_record = AuthenticationRecord.deserialize(record_json) +new_credential = InteractiveBrowserCredential(enable_persistent_cache=True, authentication_record=deserialized_record) + +# This request should also succeed without prompting for authentication. +client = SecretClient(VAULT_URL, new_credential) +secret_names = [s.name for s in client.list_properties_of_secrets()] diff --git a/sdk/identity/azure-identity/tests/helpers.py b/sdk/identity/azure-identity/tests/helpers.py index 994cdbf873bd..c9fcd6e94108 100644 --- a/sdk/identity/azure-identity/tests/helpers.py +++ b/sdk/identity/azure-identity/tests/helpers.py @@ -50,7 +50,7 @@ def build_aad_response( # simulate a response from AAD utid=None, # If present, they will form client_info access_token=None, expires_in=3600, - token_type="some type", + token_type="Bearer", refresh_token=None, foci=None, id_token=None, # or something generated by build_id_token() diff --git a/sdk/identity/azure-identity/tests/test_aad_client.py b/sdk/identity/azure-identity/tests/test_aad_client.py index daa40c3d4659..b878d4bbf5e8 100644 --- a/sdk/identity/azure-identity/tests/test_aad_client.py +++ b/sdk/identity/azure-identity/tests/test_aad_client.py @@ -3,10 +3,11 @@ # Licensed under the MIT License. # ------------------------------------ import functools - +import time from azure.core.exceptions import ClientAuthenticationError -from azure.identity._constants import EnvironmentVariables +from azure.identity._constants import EnvironmentVariables, DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY from azure.identity._internal.aad_client import AadClient +from azure.core.credentials import AccessToken import pytest from msal import TokenCache from six.moves.urllib_parse import urlparse @@ -201,3 +202,24 @@ def send(request, **_): assert transport.send.call_count == 1 assert len(cache.find(TokenCache.CredentialType.REFRESH_TOKEN)) == 1 assert len(cache.find(TokenCache.CredentialType.REFRESH_TOKEN, query={"secret": invalid_token})) == 0 + + +def test_should_refresh(): + client = AadClient("test", "test") + now = int(time.time()) + + # do not need refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET + 1) + should_refresh = client.should_refresh(token) + assert not should_refresh + + # need refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET - 1) + should_refresh = client.should_refresh(token) + assert should_refresh + + # not exceed cool down time, do not refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET - 1) + client._last_refresh_time = now - DEFAULT_TOKEN_REFRESH_RETRY_DELAY + 1 + should_refresh = client.should_refresh(token) + assert not should_refresh diff --git a/sdk/identity/azure-identity/tests/test_aad_client_async.py b/sdk/identity/azure-identity/tests/test_aad_client_async.py index e43f70bd4369..ab9cd8208809 100644 --- a/sdk/identity/azure-identity/tests/test_aad_client_async.py +++ b/sdk/identity/azure-identity/tests/test_aad_client_async.py @@ -5,10 +5,11 @@ import functools from unittest.mock import Mock, patch from urllib.parse import urlparse - +import time from azure.core.exceptions import ClientAuthenticationError -from azure.identity._constants import EnvironmentVariables +from azure.identity._constants import EnvironmentVariables, DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY from azure.identity.aio._internal.aad_client import AadClient +from azure.core.credentials import AccessToken from msal import TokenCache import pytest @@ -208,3 +209,24 @@ async def send(request, **_): assert transport.send.call_count == 1 assert len(cache.find(TokenCache.CredentialType.REFRESH_TOKEN)) == 1 assert len(cache.find(TokenCache.CredentialType.REFRESH_TOKEN, query={"secret": invalid_token})) == 0 + + +async def test_should_refresh(): + client = AadClient("test", "test") + now = int(time.time()) + + # do not need refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET + 1) + should_refresh = client.should_refresh(token) + assert not should_refresh + + # need refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET - 1) + should_refresh = client.should_refresh(token) + assert should_refresh + + # not exceed cool down time, do not refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET - 1) + client._last_refresh_time = now - DEFAULT_TOKEN_REFRESH_RETRY_DELAY + 1 + should_refresh = client.should_refresh(token) + assert not should_refresh diff --git a/sdk/identity/azure-identity/tests/test_authn_client.py b/sdk/identity/azure-identity/tests/test_authn_client.py index 6732d43cd4dc..c5dbbe41394a 100644 --- a/sdk/identity/azure-identity/tests/test_authn_client.py +++ b/sdk/identity/azure-identity/tests/test_authn_client.py @@ -14,7 +14,7 @@ from azure.core.credentials import AccessToken from azure.identity._authn_client import AuthnClient -from azure.identity._constants import EnvironmentVariables +from azure.identity._constants import EnvironmentVariables, DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY import pytest from six.moves.urllib_parse import urlparse from helpers import mock_response @@ -233,3 +233,24 @@ def mock_send(request, **kwargs): client.request_token(("scope",)) request = client.get_refresh_token_grant_request({"secret": "***"}, "scope") validate_url(request.url) + + +def test_should_refresh(): + client = AuthnClient(endpoint="http://foo") + now = int(time.time()) + + # do not need refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET + 1) + should_refresh = client.should_refresh(token) + assert not should_refresh + + # need refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET - 1) + should_refresh = client.should_refresh(token) + assert should_refresh + + # not exceed cool down time, do not refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET - 1) + client._last_refresh_time = now - DEFAULT_TOKEN_REFRESH_RETRY_DELAY + 1 + should_refresh = client.should_refresh(token) + assert not should_refresh diff --git a/sdk/identity/azure-identity/tests/test_authn_client_async.py b/sdk/identity/azure-identity/tests/test_authn_client_async.py index ab94c2c236c4..bd91e0374d95 100644 --- a/sdk/identity/azure-identity/tests/test_authn_client_async.py +++ b/sdk/identity/azure-identity/tests/test_authn_client_async.py @@ -2,12 +2,13 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -import asyncio +import time from unittest.mock import Mock, patch from urllib.parse import urlparse import pytest -from azure.identity._constants import EnvironmentVariables +from azure.core.credentials import AccessToken +from azure.identity._constants import EnvironmentVariables, DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY from azure.identity.aio._authn_client import AsyncAuthnClient from helpers import mock_response @@ -35,3 +36,24 @@ def mock_send(request, **kwargs): with patch.dict("os.environ", {EnvironmentVariables.AZURE_AUTHORITY_HOST: authority}, clear=True): client = AsyncAuthnClient(tenant=tenant_id, transport=Mock(send=wrap_in_future(mock_send))) await client.request_token(("scope",)) + + +def test_should_refresh(): + client = AsyncAuthnClient(endpoint="http://foo") + now = int(time.time()) + + # do not need refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET + 1) + should_refresh = client.should_refresh(token) + assert not should_refresh + + # need refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET - 1) + should_refresh = client.should_refresh(token) + assert should_refresh + + # not exceed cool down time, do not refresh + token = AccessToken("token", now + DEFAULT_REFRESH_OFFSET - 1) + client._last_refresh_time = now - DEFAULT_TOKEN_REFRESH_RETRY_DELAY + 1 + should_refresh = client.should_refresh(token) + assert not should_refresh diff --git a/sdk/identity/azure-identity/tests/test_default.py b/sdk/identity/azure-identity/tests/test_default.py index ac38d9e3d417..9191462da2a4 100644 --- a/sdk/identity/azure-identity/tests/test_default.py +++ b/sdk/identity/azure-identity/tests/test_default.py @@ -10,11 +10,11 @@ DefaultAzureCredential, InteractiveBrowserCredential, SharedTokenCacheCredential, + VSCodeCredential, ) from azure.identity._constants import EnvironmentVariables from azure.identity._credentials.azure_cli import AzureCliCredential from azure.identity._credentials.managed_identity import ManagedIdentityCredential -from azure.identity._credentials.vscode_credential import VSCodeCredential import pytest from six.moves.urllib_parse import urlparse @@ -221,6 +221,30 @@ def test_shared_cache_username(): assert token.token == expected_access_token +def test_vscode_tenant_id(): + """the credential should allow configuring a tenant ID for VSCodeCredential by kwarg or environment""" + + expected_args = {"tenant_id": "the-tenant"} + + with patch(DefaultAzureCredential.__module__ + ".VSCodeCredential") as mock_credential: + DefaultAzureCredential(visual_studio_code_tenant_id=expected_args["tenant_id"]) + mock_credential.assert_called_once_with(**expected_args) + + # tenant id can also be specified in $AZURE_TENANT_ID + with patch.dict(os.environ, {EnvironmentVariables.AZURE_TENANT_ID: expected_args["tenant_id"]}, clear=True): + with patch(DefaultAzureCredential.__module__ + ".VSCodeCredential") as mock_credential: + DefaultAzureCredential() + mock_credential.assert_called_once_with(**expected_args) + + # keyword argument should override environment variable + with patch.dict( + os.environ, {EnvironmentVariables.AZURE_TENANT_ID: "not-" + expected_args["tenant_id"]}, clear=True + ): + with patch(DefaultAzureCredential.__module__ + ".VSCodeCredential") as mock_credential: + DefaultAzureCredential(visual_studio_code_tenant_id=expected_args["tenant_id"]) + mock_credential.assert_called_once_with(**expected_args) + + @patch(DefaultAzureCredential.__module__ + ".SharedTokenCacheCredential") def test_default_credential_shared_cache_use(mock_credential): mock_credential.supported = Mock(return_value=False) @@ -240,6 +264,23 @@ def test_default_credential_shared_cache_use(mock_credential): mock_credential.supported.reset_mock() +def test_managed_identity_client_id(): + """The credential should initialize ManagedIdentityCredential with the value of AZURE_CLIENT_ID""" + + expected_client_id = "the-client" + with patch.dict(os.environ, {EnvironmentVariables.AZURE_CLIENT_ID: expected_client_id}, clear=True): + with patch(DefaultAzureCredential.__module__ + ".ManagedIdentityCredential") as mock_credential: + DefaultAzureCredential() + + mock_credential.assert_called_once_with(client_id=expected_client_id) + + with patch.dict(os.environ, {}, clear=True): + with patch(DefaultAzureCredential.__module__ + ".ManagedIdentityCredential") as mock_credential: + DefaultAzureCredential() + + mock_credential.assert_called_once_with(client_id=None) + + def get_credential_for_shared_cache_test(expected_refresh_token, expected_access_token, cache, **kwargs): exclude_other_credentials = { option: True for option in ("exclude_environment_credential", "exclude_managed_identity_credential") @@ -265,7 +306,7 @@ def test_interactive_browser_tenant_id(): def validate_tenant_id(credential): assert len(credential.call_args_list) == 1, "InteractiveBrowserCredential should be instantiated once" _, kwargs = credential.call_args - assert kwargs == {'tenant_id': tenant_id} + assert kwargs == {"tenant_id": tenant_id} with patch(DefaultAzureCredential.__module__ + ".InteractiveBrowserCredential") as mock_credential: DefaultAzureCredential(exclude_interactive_browser_credential=False, interactive_browser_tenant_id=tenant_id) @@ -280,5 +321,7 @@ def validate_tenant_id(credential): # keyword argument should override environment variable with patch.dict(os.environ, {EnvironmentVariables.AZURE_TENANT_ID: "not-" + tenant_id}, clear=True): with patch(DefaultAzureCredential.__module__ + ".InteractiveBrowserCredential") as mock_credential: - DefaultAzureCredential(exclude_interactive_browser_credential=False, interactive_browser_tenant_id=tenant_id) + DefaultAzureCredential( + exclude_interactive_browser_credential=False, interactive_browser_tenant_id=tenant_id + ) validate_tenant_id(mock_credential) diff --git a/sdk/identity/azure-identity/tests/test_default_async.py b/sdk/identity/azure-identity/tests/test_default_async.py index 16417eec2325..a385a5b2a579 100644 --- a/sdk/identity/azure-identity/tests/test_default_async.py +++ b/sdk/identity/azure-identity/tests/test_default_async.py @@ -2,17 +2,19 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -import asyncio import os from unittest.mock import Mock, patch from urllib.parse import urlparse from azure.core.credentials import AccessToken from azure.identity import CredentialUnavailableError -from azure.identity.aio import DefaultAzureCredential, SharedTokenCacheCredential -from azure.identity.aio._credentials.azure_cli import AzureCliCredential -from azure.identity.aio._credentials.managed_identity import ManagedIdentityCredential -from azure.identity.aio._credentials.vscode_credential import VSCodeCredential +from azure.identity.aio import ( + AzureCliCredential, + DefaultAzureCredential, + ManagedIdentityCredential, + SharedTokenCacheCredential, + VSCodeCredential, +) from azure.identity._constants import EnvironmentVariables import pytest @@ -206,6 +208,30 @@ async def test_shared_cache_username(): assert token.token == expected_access_token +def test_vscode_tenant_id(): + """the credential should allow configuring a tenant ID for VSCodeCredential by kwarg or environment""" + + expected_args = {"tenant_id": "the-tenant"} + + with patch(DefaultAzureCredential.__module__ + ".VSCodeCredential") as mock_credential: + DefaultAzureCredential(visual_studio_code_tenant_id=expected_args["tenant_id"]) + mock_credential.assert_called_once_with(**expected_args) + + # tenant id can also be specified in $AZURE_TENANT_ID + with patch.dict(os.environ, {EnvironmentVariables.AZURE_TENANT_ID: expected_args["tenant_id"]}, clear=True): + with patch(DefaultAzureCredential.__module__ + ".VSCodeCredential") as mock_credential: + DefaultAzureCredential() + mock_credential.assert_called_once_with(**expected_args) + + # keyword argument should override environment variable + with patch.dict( + os.environ, {EnvironmentVariables.AZURE_TENANT_ID: "not-" + expected_args["tenant_id"]}, clear=True + ): + with patch(DefaultAzureCredential.__module__ + ".VSCodeCredential") as mock_credential: + DefaultAzureCredential(visual_studio_code_tenant_id=expected_args["tenant_id"]) + mock_credential.assert_called_once_with(**expected_args) + + @pytest.mark.asyncio async def test_default_credential_shared_cache_use(): with patch(DefaultAzureCredential.__module__ + ".SharedTokenCacheCredential") as mock_credential: @@ -226,6 +252,23 @@ async def test_default_credential_shared_cache_use(): mock_credential.supported.reset_mock() +def test_managed_identity_client_id(): + """The credential should initialize ManagedIdentityCredential with the value of AZURE_CLIENT_ID""" + + expected_client_id = "the-client" + with patch.dict(os.environ, {EnvironmentVariables.AZURE_CLIENT_ID: expected_client_id}, clear=True): + with patch(DefaultAzureCredential.__module__ + ".ManagedIdentityCredential") as mock_credential: + DefaultAzureCredential() + + mock_credential.assert_called_once_with(client_id=expected_client_id) + + with patch.dict(os.environ, {}, clear=True): + with patch(DefaultAzureCredential.__module__ + ".ManagedIdentityCredential") as mock_credential: + DefaultAzureCredential() + + mock_credential.assert_called_once_with(client_id=None) + + def get_credential_for_shared_cache_test(expected_refresh_token, expected_access_token, cache, **kwargs): exclude_other_credentials = { option: True for option in ("exclude_environment_credential", "exclude_managed_identity_credential") diff --git a/sdk/identity/azure-identity/tests/test_interactive_credential.py b/sdk/identity/azure-identity/tests/test_interactive_credential.py index 8bfeaac041a4..645e74f21bd0 100644 --- a/sdk/identity/azure-identity/tests/test_interactive_credential.py +++ b/sdk/identity/azure-identity/tests/test_interactive_credential.py @@ -9,7 +9,7 @@ KnownAuthorities, CredentialUnavailableError, ) -from azure.identity._internal.msal_credentials import InteractiveCredential +from azure.identity._internal import InteractiveCredential from msal import TokenCache import pytest diff --git a/sdk/identity/azure-identity/tests/test_managed_identity.py b/sdk/identity/azure-identity/tests/test_managed_identity.py index 668fb6519b8c..e20e3f73ed99 100644 --- a/sdk/identity/azure-identity/tests/test_managed_identity.py +++ b/sdk/identity/azure-identity/tests/test_managed_identity.py @@ -14,7 +14,7 @@ from azure.identity._constants import Endpoints, EnvironmentVariables from azure.identity._internal.user_agent import USER_AGENT -from helpers import validating_transport, mock_response, Request +from helpers import build_aad_response, validating_transport, mock_response, Request MANAGED_IDENTITY_ENVIRON = "azure.identity._credentials.managed_identity.os.environ" @@ -259,6 +259,39 @@ def test_imds(): assert token == expected_token +def test_client_id_none(): + """the credential should ignore client_id=None""" + + expected_access_token = "****" + + def send(request, **_): + assert "client_id" not in request.query # IMDS + assert "clientid" not in request.query # App Service 2017-09-01 + if request.data: + assert "client_id" not in request.body # Cloud Shell + return mock_response(json_payload=(build_aad_response(access_token=expected_access_token))) + + credential = ManagedIdentityCredential(client_id=None, transport=mock.Mock(send=send)) + token = credential.get_token("scope") + assert token.token == expected_access_token + + with mock.patch.dict( + MANAGED_IDENTITY_ENVIRON, + {EnvironmentVariables.MSI_ENDPOINT: "https://localhost", EnvironmentVariables.MSI_SECRET: "secret"}, + clear=True, + ): + credential = ManagedIdentityCredential(client_id=None, transport=mock.Mock(send=send)) + token = credential.get_token("scope") + assert token.token == expected_access_token + + with mock.patch.dict( + MANAGED_IDENTITY_ENVIRON, {EnvironmentVariables.MSI_ENDPOINT: "https://localhost"}, clear=True, + ): + credential = ManagedIdentityCredential(client_id=None, transport=mock.Mock(send=send)) + token = credential.get_token("scope") + assert token.token == expected_access_token + + def test_imds_user_assigned_identity(): access_token = "****" expires_on = 42 diff --git a/sdk/identity/azure-identity/tests/test_managed_identity_async.py b/sdk/identity/azure-identity/tests/test_managed_identity_async.py index 3654044a2288..cab5f2da2de6 100644 --- a/sdk/identity/azure-identity/tests/test_managed_identity_async.py +++ b/sdk/identity/azure-identity/tests/test_managed_identity_async.py @@ -12,7 +12,7 @@ import pytest -from helpers import mock_response, Request +from helpers import build_aad_response, mock_response, Request from helpers_async import async_validating_transport MANAGED_IDENTITY_ENVIRON = "azure.identity.aio._credentials.managed_identity.os.environ" @@ -225,6 +225,41 @@ async def test_app_service_user_assigned_identity(): assert token == expected_token +@pytest.mark.asyncio +async def test_client_id_none(): + """the credential should ignore client_id=None""" + + expected_access_token = "****" + + async def send(request, **_): + assert "client_id" not in request.query # IMDS + assert "clientid" not in request.query # App Service 2017-09-01 + if request.data: + assert "client_id" not in request.body # Cloud Shell + return mock_response(json_payload=(build_aad_response(access_token=expected_access_token))) + + with mock.patch.dict(MANAGED_IDENTITY_ENVIRON, {}, clear=True): + credential = ManagedIdentityCredential(client_id=None, transport=mock.Mock(send=send)) + token = await credential.get_token("scope") + assert token.token == expected_access_token + + with mock.patch.dict( + MANAGED_IDENTITY_ENVIRON, + {EnvironmentVariables.MSI_ENDPOINT: "https://localhost", EnvironmentVariables.MSI_SECRET: "secret"}, + clear=True, + ): + credential = ManagedIdentityCredential(client_id=None, transport=mock.Mock(send=send)) + token = await credential.get_token("scope") + assert token.token == expected_access_token + + with mock.patch.dict( + MANAGED_IDENTITY_ENVIRON, {EnvironmentVariables.MSI_ENDPOINT: "https://localhost"}, clear=True, + ): + credential = ManagedIdentityCredential(client_id=None, transport=mock.Mock(send=send)) + token = await credential.get_token("scope") + assert token.token == expected_access_token + + @pytest.mark.asyncio async def test_imds(): access_token = "****" diff --git a/sdk/identity/azure-identity/tests/test_vscode_credential.py b/sdk/identity/azure-identity/tests/test_vscode_credential.py index a0b320410bc8..ef43604017ae 100644 --- a/sdk/identity/azure-identity/tests/test_vscode_credential.py +++ b/sdk/identity/azure-identity/tests/test_vscode_credential.py @@ -7,9 +7,11 @@ from azure.core.credentials import AccessToken from azure.identity import CredentialUnavailableError, VSCodeCredential from azure.core.pipeline.policies import SansIOHTTPPolicy +from azure.identity._constants import EnvironmentVariables from azure.identity._internal.user_agent import USER_AGENT -from azure.identity._credentials.vscode_credential import get_credentials +from azure.identity._credentials.vscode import get_credentials import pytest +from six.moves.urllib_parse import urlparse from helpers import build_aad_response, mock_response, Request, validating_transport @@ -50,6 +52,39 @@ def test_user_agent(): credential.get_token("scope") +@pytest.mark.parametrize("authority", ("localhost", "https://localhost")) +def test_request_url(authority): + """the credential should accept an authority, with or without scheme, as an argument or environment variable""" + + tenant_id = "expected_tenant" + access_token = "***" + parsed_authority = urlparse(authority) + expected_netloc = parsed_authority.netloc or authority # "localhost" parses to netloc "", path "localhost" + expected_refresh_token = "refresh-token" + + def mock_send(request, **kwargs): + actual = urlparse(request.url) + assert actual.scheme == "https" + assert actual.netloc == expected_netloc + assert actual.path.startswith("/" + tenant_id) + assert request.body["refresh_token"] == expected_refresh_token + return mock_response(json_payload={"token_type": "Bearer", "expires_in": 42, "access_token": access_token}) + + credential = VSCodeCredential( + tenant_id=tenant_id, transport=mock.Mock(send=mock_send), authority=authority + ) + with mock.patch(VSCodeCredential.__module__ + ".get_credentials", return_value=expected_refresh_token): + token = credential.get_token("scope") + assert token.token == access_token + + # authority can be configured via environment variable + with mock.patch.dict("os.environ", {EnvironmentVariables.AZURE_AUTHORITY_HOST: authority}, clear=True): + credential = VSCodeCredential(tenant_id=tenant_id, transport=mock.Mock(send=mock_send)) + with mock.patch(VSCodeCredential.__module__ + ".get_credentials", return_value=expected_refresh_token): + credential.get_token("scope") + assert token.token == access_token + + def test_credential_unavailable_error(): with mock.patch(VSCodeCredential.__module__ + ".get_credentials", return_value=None): credential = VSCodeCredential() @@ -94,7 +129,7 @@ def test_cache_refresh_token(): def test_no_obtain_token_if_cached(): expected_token = AccessToken("token", 42) - mock_client = mock.Mock(spec=object) + mock_client = mock.Mock(should_refresh=lambda _: False) mock_client.obtain_token_by_refresh_token = mock.Mock(return_value=expected_token) mock_client.get_cached_access_token = mock.Mock(return_value="VALUE") @@ -106,7 +141,7 @@ def test_no_obtain_token_if_cached(): @pytest.mark.skipif(not sys.platform.startswith("linux"), reason="This test only runs on Linux") def test_segfault(): - from azure.identity._credentials.linux_vscode_adapter import _get_refresh_token + from azure.identity._internal.linux_vscode_adapter import _get_refresh_token _get_refresh_token("test", "test") diff --git a/sdk/identity/azure-identity/tests/test_vscode_credential_async.py b/sdk/identity/azure-identity/tests/test_vscode_credential_async.py index 1f26651d45d8..1a6dd7059cf6 100644 --- a/sdk/identity/azure-identity/tests/test_vscode_credential_async.py +++ b/sdk/identity/azure-identity/tests/test_vscode_credential_async.py @@ -3,12 +3,13 @@ # Licensed under the MIT License. # ------------------------------------ from unittest import mock +from urllib.parse import urlparse -import sys from azure.core.credentials import AccessToken from azure.identity import CredentialUnavailableError -from azure.identity.aio import VSCodeCredential +from azure.identity._constants import EnvironmentVariables from azure.identity._internal.user_agent import USER_AGENT +from azure.identity.aio import VSCodeCredential from azure.core.pipeline.policies import SansIOHTTPPolicy import pytest @@ -50,6 +51,38 @@ async def test_user_agent(): await credential.get_token("scope") +@pytest.mark.asyncio +@pytest.mark.parametrize("authority", ("localhost", "https://localhost")) +async def test_request_url(authority): + """the credential should accept an authority, with or without scheme, as an argument or environment variable""" + + tenant_id = "expected_tenant" + access_token = "***" + parsed_authority = urlparse(authority) + expected_netloc = parsed_authority.netloc or authority # "localhost" parses to netloc "", path "localhost" + expected_refresh_token = "refresh-token" + + async def mock_send(request, **kwargs): + actual = urlparse(request.url) + assert actual.scheme == "https" + assert actual.netloc == expected_netloc + assert actual.path.startswith("/" + tenant_id) + assert request.body["refresh_token"] == expected_refresh_token + return mock_response(json_payload={"token_type": "Bearer", "expires_in": 42, "access_token": access_token}) + + credential = VSCodeCredential(tenant_id=tenant_id, transport=mock.Mock(send=mock_send), authority=authority) + with mock.patch(VSCodeCredential.__module__ + ".get_credentials", return_value=expected_refresh_token): + token = await credential.get_token("scope") + assert token.token == access_token + + # authority can be configured via environment variable + with mock.patch.dict("os.environ", {EnvironmentVariables.AZURE_AUTHORITY_HOST: authority}, clear=True): + credential = VSCodeCredential(tenant_id=tenant_id, transport=mock.Mock(send=mock_send)) + with mock.patch(VSCodeCredential.__module__ + ".get_credentials", return_value=expected_refresh_token): + await credential.get_token("scope") + assert token.token == access_token + + @pytest.mark.asyncio async def test_credential_unavailable_error(): with mock.patch(VSCodeCredential.__module__ + ".get_credentials", return_value=None): @@ -97,7 +130,7 @@ async def test_cache_refresh_token(): async def test_no_obtain_token_if_cached(): expected_token = AccessToken("token", 42) - mock_client = mock.Mock(spec=object) + mock_client = mock.Mock(should_refresh=lambda _: False) token_by_refresh_token = mock.Mock(return_value=expected_token) mock_client.obtain_token_by_refresh_token = wrap_in_future(token_by_refresh_token) mock_client.get_cached_access_token = mock.Mock(return_value="VALUE") diff --git a/sdk/iothub/azure-mgmt-iotcentral/README.md b/sdk/iothub/azure-mgmt-iotcentral/README.md index 4a2c0b7292bf..c0515a3b666c 100644 --- a/sdk/iothub/azure-mgmt-iotcentral/README.md +++ b/sdk/iothub/azure-mgmt-iotcentral/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure IoTCentral Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/sdk) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all) # Usage diff --git a/sdk/iothub/azure-mgmt-iothub/README.md b/sdk/iothub/azure-mgmt-iothub/README.md index 8b1b9e790551..dad54852d0e4 100644 --- a/sdk/iothub/azure-mgmt-iothub/README.md +++ b/sdk/iothub/azure-mgmt-iothub/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure IoTHub Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/README.md b/sdk/iothub/azure-mgmt-iothubprovisioningservices/README.md index 653f0a3c9600..b91d86018825 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/README.md +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure IoTHub Provisioning Services Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md b/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md index a0f8628ee7f4..c57c5e05b36a 100644 --- a/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md @@ -1,6 +1,7 @@ # Release History ## 4.2.0b2 (Unreleased) +- Fixed an `AttributeError` during `get_certificate_version` - Values of `x-ms-keyvault-region` and `x-ms-keyvault-service-version` headers are no longer redacted in logging output. - Updated minimum `azure-core` version to 1.4.0 @@ -98,8 +99,8 @@ and a `CertificateOperation` if not. - `Certificate` now has attribute `properties`, which holds certain properties of the certificate, such as `version`. This changes the shape of the `Certificate` type, as certain properties of `Certificate` (such as `version`) have to be accessed -through the `properties` property. See the updated [docs](https://azure.github.io/azure-sdk-for-python/ref/azure.keyvault.certificates.html) -for details. +through the `properties` property. + - `update_certificate` has been renamed to `update_certificate_properties` - The `vault_url` parameter of `CertificateClient` has been renamed to `vault_endpoint` - The property `vault_url` has been renamed to `vault_endpoint` in all models diff --git a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_models.py b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_models.py index c1a27bed98a9..54b1db33c8e6 100644 --- a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_models.py +++ b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_models.py @@ -320,11 +320,17 @@ def _from_certificate_bundle(cls, certificate_bundle): # type: (models.CertificateBundle) -> KeyVaultCertificate """Construct a certificate from an autorest-generated certificateBundle""" # pylint:disable=protected-access + + if certificate_bundle.policy: + policy = CertificatePolicy._from_certificate_policy_bundle(certificate_bundle.policy) + else: + policy = None + return cls( properties=CertificateProperties._from_certificate_item(certificate_bundle), key_id=certificate_bundle.kid, secret_id=certificate_bundle.sid, - policy=CertificatePolicy._from_certificate_policy_bundle(certificate_bundle.policy), + policy=policy, cer=certificate_bundle.cer, ) diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_get_certificate_version.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_get_certificate_version.yaml new file mode 100644 index 000000000000..ff94acc1f808 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_get_certificate_version.yaml @@ -0,0 +1,2941 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/create?api-version=7.1-preview + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: + - no-cache + content-length: + - '87' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + www-authenticate: + - Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 401 + message: Unauthorized +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCalUuGHt2QrMOXMOkZ6yuaHtI+mhNKj32msjr84AqD/hbz8ehnwZVqay3lm2mJrZumnvPO97kwzMDxkJ8YYcqobgZthBI/+e+ENtICfvFULSynKZM9Ph3YQqE29EdfUpftt5qqCUcMw+G9jwNoi55sYDyGx0tJW0z/yAhZewAhfgbWBunx6cDTkm1+pMLELl1xd7d+XgroI5u+DCwOpiUkmxq4L+EnDMiy1xXErLvF4UBp+9/wVW59k6e0Ea7QGKgFKxF+/4KkWKH9+DhczrSzUIP5b4wPTN9Do/msi1MUB3t85svriGe5F0eg1/N15kwsX35xG9/lpJ59IPzmQXIN","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"ca86dfab68ce4a3a951bf1256847857b"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:03 GMT + expires: + - '-1' + location: + - https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview&request_id=ca86dfab68ce4a3a951bf1256847857b + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCalUuGHt2QrMOXMOkZ6yuaHtI+mhNKj32msjr84AqD/hbz8ehnwZVqay3lm2mJrZumnvPO97kwzMDxkJ8YYcqobgZthBI/+e+ENtICfvFULSynKZM9Ph3YQqE29EdfUpftt5qqCUcMw+G9jwNoi55sYDyGx0tJW0z/yAhZewAhfgbWBunx6cDTkm1+pMLELl1xd7d+XgroI5u+DCwOpiUkmxq4L+EnDMiy1xXErLvF4UBp+9/wVW59k6e0Ea7QGKgFKxF+/4KkWKH9+DhczrSzUIP5b4wPTN9Do/msi1MUB3t85svriGe5F0eg1/N15kwsX35xG9/lpJ59IPzmQXIN","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"ca86dfab68ce4a3a951bf1256847857b"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCalUuGHt2QrMOXMOkZ6yuaHtI+mhNKj32msjr84AqD/hbz8ehnwZVqay3lm2mJrZumnvPO97kwzMDxkJ8YYcqobgZthBI/+e+ENtICfvFULSynKZM9Ph3YQqE29EdfUpftt5qqCUcMw+G9jwNoi55sYDyGx0tJW0z/yAhZewAhfgbWBunx6cDTkm1+pMLELl1xd7d+XgroI5u+DCwOpiUkmxq4L+EnDMiy1xXErLvF4UBp+9/wVW59k6e0Ea7QGKgFKxF+/4KkWKH9+DhczrSzUIP5b4wPTN9Do/msi1MUB3t85svriGe5F0eg1/N15kwsX35xG9/lpJ59IPzmQXIN","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"ca86dfab68ce4a3a951bf1256847857b"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCalUuGHt2QrMOXMOkZ6yuaHtI+mhNKj32msjr84AqD/hbz8ehnwZVqay3lm2mJrZumnvPO97kwzMDxkJ8YYcqobgZthBI/+e+ENtICfvFULSynKZM9Ph3YQqE29EdfUpftt5qqCUcMw+G9jwNoi55sYDyGx0tJW0z/yAhZewAhfgbWBunx6cDTkm1+pMLELl1xd7d+XgroI5u+DCwOpiUkmxq4L+EnDMiy1xXErLvF4UBp+9/wVW59k6e0Ea7QGKgFKxF+/4KkWKH9+DhczrSzUIP5b4wPTN9Do/msi1MUB3t85svriGe5F0eg1/N15kwsX35xG9/lpJ59IPzmQXIN","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"ca86dfab68ce4a3a951bf1256847857b"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCalUuGHt2QrMOXMOkZ6yuaHtI+mhNKj32msjr84AqD/hbz8ehnwZVqay3lm2mJrZumnvPO97kwzMDxkJ8YYcqobgZthBI/+e+ENtICfvFULSynKZM9Ph3YQqE29EdfUpftt5qqCUcMw+G9jwNoi55sYDyGx0tJW0z/yAhZewAhfgbWBunx6cDTkm1+pMLELl1xd7d+XgroI5u+DCwOpiUkmxq4L+EnDMiy1xXErLvF4UBp+9/wVW59k6e0Ea7QGKgFKxF+/4KkWKH9+DhczrSzUIP5b4wPTN9Do/msi1MUB3t85svriGe5F0eg1/N15kwsX35xG9/lpJ59IPzmQXIN","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"ca86dfab68ce4a3a951bf1256847857b"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:19 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCalUuGHt2QrMOXMOkZ6yuaHtI+mhNKj32msjr84AqD/hbz8ehnwZVqay3lm2mJrZumnvPO97kwzMDxkJ8YYcqobgZthBI/+e+ENtICfvFULSynKZM9Ph3YQqE29EdfUpftt5qqCUcMw+G9jwNoi55sYDyGx0tJW0z/yAhZewAhfgbWBunx6cDTkm1+pMLELl1xd7d+XgroI5u+DCwOpiUkmxq4L+EnDMiy1xXErLvF4UBp+9/wVW59k6e0Ea7QGKgFKxF+/4KkWKH9+DhczrSzUIP5b4wPTN9Do/msi1MUB3t85svriGe5F0eg1/N15kwsX35xG9/lpJ59IPzmQXIN","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"ca86dfab68ce4a3a951bf1256847857b"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:23 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCalUuGHt2QrMOXMOkZ6yuaHtI+mhNKj32msjr84AqD/hbz8ehnwZVqay3lm2mJrZumnvPO97kwzMDxkJ8YYcqobgZthBI/+e+ENtICfvFULSynKZM9Ph3YQqE29EdfUpftt5qqCUcMw+G9jwNoi55sYDyGx0tJW0z/yAhZewAhfgbWBunx6cDTkm1+pMLELl1xd7d+XgroI5u+DCwOpiUkmxq4L+EnDMiy1xXErLvF4UBp+9/wVW59k6e0Ea7QGKgFKxF+/4KkWKH9+DhczrSzUIP5b4wPTN9Do/msi1MUB3t85svriGe5F0eg1/N15kwsX35xG9/lpJ59IPzmQXIN","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert4b4615c8","request_id":"ca86dfab68ce4a3a951bf1256847857b"}' + headers: + cache-control: + - no-cache + content-length: + - '1223' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/f00ee8250b2a45b1b2ff14ac241b364c","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/f00ee8250b2a45b1b2ff14ac241b364c","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/f00ee8250b2a45b1b2ff14ac241b364c","x5t":"zFG8eeriqHVAPFDY92lL28lsrY0","cer":"MIIDNjCCAh6gAwIBAgIQCjgjhOJOTZu/xdmBI3PdAjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFAv8QWIsi5ImD9tjazk+A1uYNb9VMB0GA1UdDgQWBBQL/EFiLIuSJg/bY2s5PgNbmDW/VTANBgkqhkiG9w0BAQsFAAOCAQEAl1CHhbe8/u3o9yFvz7wAQ5bL2ZvuWqQ8gxBMxNDWyWOFAsYfCdlimCfxU8ZcrgatXJ1PBQPqV+DGNheQ50VKTCWoLo9yLScDwevxMAGLwprUbTzrZ4K9JJnnNaWlEcpdAzG1tQSaA3Z/khZs+RpzXlVBWvlqOEVs5GXndwsE+W/+GvgtpJmrEyKHk4MrmtaiSL4liUC+cgw8Gs9m6UNdCqHGuGHBO702Oe/87+CeShpuiXLRYIdnYEHsSG9BqaQZ+AcaXU/95jT26AfRrEaawDvVhvvK4PtNMgdXO7fZPKcCExhAmVCPCrnd0Bk9PCwJcQ4wG3dtQj2jl75mqVSaYg==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970303,"updated":1595970303}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending"}}' + headers: + cache-control: + - no-cache + content-length: + - '2387' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQABEHfqQKX5PWSkhFMskbjKFd7L8CdgWDlp3u64kw5CZR5BLWZuqKkfDQkUz93wE28ZHXOGgq8oRUn/QiPyYymKIZpWnD3rwoXBLmddQukav2SfCNVM2KumpX0AC/J4jod44onwOpCTw9EHEmOVF/IMnfKPENwE6GvCqyeAFdezUTSOhJ6SX1AhN2x9qx4yocNBf9s95OwwP1go58c2JSEs5bLQm/2JX5ottvj2jyHs92PVieenH/8zEjB/V+EVDiuYYgKmX1mTUoQK299ibjV9n6JTTOjacOQhT0AKjwqDIgOyWKPYQ2Lry3v+fhOwzqnTaEewt+/W9c6pPV+qlhDd","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"0c31d2f1af5d4e9a80f39171c95a5af4"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:30 GMT + expires: + - '-1' + location: + - https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview&request_id=0c31d2f1af5d4e9a80f39171c95a5af4 + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQABEHfqQKX5PWSkhFMskbjKFd7L8CdgWDlp3u64kw5CZR5BLWZuqKkfDQkUz93wE28ZHXOGgq8oRUn/QiPyYymKIZpWnD3rwoXBLmddQukav2SfCNVM2KumpX0AC/J4jod44onwOpCTw9EHEmOVF/IMnfKPENwE6GvCqyeAFdezUTSOhJ6SX1AhN2x9qx4yocNBf9s95OwwP1go58c2JSEs5bLQm/2JX5ottvj2jyHs92PVieenH/8zEjB/V+EVDiuYYgKmX1mTUoQK299ibjV9n6JTTOjacOQhT0AKjwqDIgOyWKPYQ2Lry3v+fhOwzqnTaEewt+/W9c6pPV+qlhDd","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"0c31d2f1af5d4e9a80f39171c95a5af4"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQABEHfqQKX5PWSkhFMskbjKFd7L8CdgWDlp3u64kw5CZR5BLWZuqKkfDQkUz93wE28ZHXOGgq8oRUn/QiPyYymKIZpWnD3rwoXBLmddQukav2SfCNVM2KumpX0AC/J4jod44onwOpCTw9EHEmOVF/IMnfKPENwE6GvCqyeAFdezUTSOhJ6SX1AhN2x9qx4yocNBf9s95OwwP1go58c2JSEs5bLQm/2JX5ottvj2jyHs92PVieenH/8zEjB/V+EVDiuYYgKmX1mTUoQK299ibjV9n6JTTOjacOQhT0AKjwqDIgOyWKPYQ2Lry3v+fhOwzqnTaEewt+/W9c6pPV+qlhDd","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"0c31d2f1af5d4e9a80f39171c95a5af4"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:35 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQABEHfqQKX5PWSkhFMskbjKFd7L8CdgWDlp3u64kw5CZR5BLWZuqKkfDQkUz93wE28ZHXOGgq8oRUn/QiPyYymKIZpWnD3rwoXBLmddQukav2SfCNVM2KumpX0AC/J4jod44onwOpCTw9EHEmOVF/IMnfKPENwE6GvCqyeAFdezUTSOhJ6SX1AhN2x9qx4yocNBf9s95OwwP1go58c2JSEs5bLQm/2JX5ottvj2jyHs92PVieenH/8zEjB/V+EVDiuYYgKmX1mTUoQK299ibjV9n6JTTOjacOQhT0AKjwqDIgOyWKPYQ2Lry3v+fhOwzqnTaEewt+/W9c6pPV+qlhDd","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"0c31d2f1af5d4e9a80f39171c95a5af4"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQABEHfqQKX5PWSkhFMskbjKFd7L8CdgWDlp3u64kw5CZR5BLWZuqKkfDQkUz93wE28ZHXOGgq8oRUn/QiPyYymKIZpWnD3rwoXBLmddQukav2SfCNVM2KumpX0AC/J4jod44onwOpCTw9EHEmOVF/IMnfKPENwE6GvCqyeAFdezUTSOhJ6SX1AhN2x9qx4yocNBf9s95OwwP1go58c2JSEs5bLQm/2JX5ottvj2jyHs92PVieenH/8zEjB/V+EVDiuYYgKmX1mTUoQK299ibjV9n6JTTOjacOQhT0AKjwqDIgOyWKPYQ2Lry3v+fhOwzqnTaEewt+/W9c6pPV+qlhDd","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"0c31d2f1af5d4e9a80f39171c95a5af4"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQABEHfqQKX5PWSkhFMskbjKFd7L8CdgWDlp3u64kw5CZR5BLWZuqKkfDQkUz93wE28ZHXOGgq8oRUn/QiPyYymKIZpWnD3rwoXBLmddQukav2SfCNVM2KumpX0AC/J4jod44onwOpCTw9EHEmOVF/IMnfKPENwE6GvCqyeAFdezUTSOhJ6SX1AhN2x9qx4yocNBf9s95OwwP1go58c2JSEs5bLQm/2JX5ottvj2jyHs92PVieenH/8zEjB/V+EVDiuYYgKmX1mTUoQK299ibjV9n6JTTOjacOQhT0AKjwqDIgOyWKPYQ2Lry3v+fhOwzqnTaEewt+/W9c6pPV+qlhDd","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"0c31d2f1af5d4e9a80f39171c95a5af4"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQABEHfqQKX5PWSkhFMskbjKFd7L8CdgWDlp3u64kw5CZR5BLWZuqKkfDQkUz93wE28ZHXOGgq8oRUn/QiPyYymKIZpWnD3rwoXBLmddQukav2SfCNVM2KumpX0AC/J4jod44onwOpCTw9EHEmOVF/IMnfKPENwE6GvCqyeAFdezUTSOhJ6SX1AhN2x9qx4yocNBf9s95OwwP1go58c2JSEs5bLQm/2JX5ottvj2jyHs92PVieenH/8zEjB/V+EVDiuYYgKmX1mTUoQK299ibjV9n6JTTOjacOQhT0AKjwqDIgOyWKPYQ2Lry3v+fhOwzqnTaEewt+/W9c6pPV+qlhDd","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert4b4615c8","request_id":"0c31d2f1af5d4e9a80f39171c95a5af4"}' + headers: + cache-control: + - no-cache + content-length: + - '1223' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/03ab7f35a5da4901963804d604c33ce8","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/03ab7f35a5da4901963804d604c33ce8","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/03ab7f35a5da4901963804d604c33ce8","x5t":"fXH5bzMk3eOao5WjYLZYHGlysQE","cer":"MIIDNjCCAh6gAwIBAgIQWvu+YnDqR9++ttKfV1b94zANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTU1NVoXDTIxMDcyODIxMDU1NVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDuED/xdc1s/s8+mH87me3T94bEgMB0GA1UdDgQWBBQ7hA/8XXNbP7PPph/O5nt0/eGxIDANBgkqhkiG9w0BAQsFAAOCAQEAoFPZu5Rdm6k2NRgv4gjongOhz3dnZN7tJFbah47WxWvhysSJD5gMfbxmYFwVO5CwMQF+gToChe59sNBZ8fE/7qQFt6HbLswHHMD3h4dUH9XXRupKrGvWedsToCt6w3kU1ZIw4Nsr20FVDgdVeeeDoLbJMjyngCHYBJI4Tq+Puita/h1AveCuITAMe9q2fkIzJUeqz6/n+haeLC9tzRxPcTshVVX/WUp6SDrGtasfPYNlmAtbWTe0sSuiL3czbaaBh1Vrm1PhK/LP76HZ/vNBh4sRx9+fXBTLdbqxPT1XuZNQOL7zamWMUHUfAdHtHozbrdPMKKs83YbKZ/AHDIlCmQ==","attributes":{"enabled":true,"nbf":1595969755,"exp":1627506355,"created":1595970355,"updated":1595970355,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970303,"updated":1595970330}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending"}}' + headers: + cache-control: + - no-cache + content-length: + - '2387' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANg1vqOFo0DGIJYnJOSmTZ+8Vvu18SnQxtxuVtPQ8ygg99lkljQMyO5klwDvB3Lyi/7FmHM6T7ojOzf91FmSv1jfra0XLpHhvWG1EMRc6OhXQcicpfTXRfMBsrStsxMXQZFFru8RD33OJdLIf0wUxOsmK7Hi7U6A5kYNmuXjTYJYQC9cC3bvh7pprY9J3zr8qZgkYYQAeWxELUzcPwBPL2e7+gTQO6SqYDaQiOhfPPzOm93W2A/0uCLuyFSCJ2S7XnRdR943rCvkz+zEAR7j3q+ZduhgFl9fz4jQRhlBtXVJpSS47gIvIKu3xafYOvcYRRys8OmLCKKLoUY4ADeRaXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCgXXNcC6L+6mz+pU8WXRGdGTCqzlr1B/SxWFn+3ldwTxMbeBYntLlpGgrBjwb3GWZ52A6yO4lASVEkGfG+FNqfxSVGeDxFKDGeTp+hHhmnZKkKzloY4A1Qez66furV+syGKowJnQyDrTpqpVMg4DyNctFmA1NlWyIW+ZbPDKHPkxouscKUU3bbVHIgMCJqmW5/Y3ZO1S2s5dut17dfzWeILgCYZU0aoFEtKQJMsSOsItRqDrGP2tW9pJiiiabeD/ZAWAQ7XmnIDO+Bf5+y1JTydceGnQBgmkDbCGH3Xtgx28/sulhOfMFAtGPHdYnMIXcn0AAaTCOsnhatNrkBMM6q","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"f5f7e2d73f0e4230bbfd307483c94659"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:56 GMT + expires: + - '-1' + location: + - https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview&request_id=f5f7e2d73f0e4230bbfd307483c94659 + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANg1vqOFo0DGIJYnJOSmTZ+8Vvu18SnQxtxuVtPQ8ygg99lkljQMyO5klwDvB3Lyi/7FmHM6T7ojOzf91FmSv1jfra0XLpHhvWG1EMRc6OhXQcicpfTXRfMBsrStsxMXQZFFru8RD33OJdLIf0wUxOsmK7Hi7U6A5kYNmuXjTYJYQC9cC3bvh7pprY9J3zr8qZgkYYQAeWxELUzcPwBPL2e7+gTQO6SqYDaQiOhfPPzOm93W2A/0uCLuyFSCJ2S7XnRdR943rCvkz+zEAR7j3q+ZduhgFl9fz4jQRhlBtXVJpSS47gIvIKu3xafYOvcYRRys8OmLCKKLoUY4ADeRaXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCgXXNcC6L+6mz+pU8WXRGdGTCqzlr1B/SxWFn+3ldwTxMbeBYntLlpGgrBjwb3GWZ52A6yO4lASVEkGfG+FNqfxSVGeDxFKDGeTp+hHhmnZKkKzloY4A1Qez66furV+syGKowJnQyDrTpqpVMg4DyNctFmA1NlWyIW+ZbPDKHPkxouscKUU3bbVHIgMCJqmW5/Y3ZO1S2s5dut17dfzWeILgCYZU0aoFEtKQJMsSOsItRqDrGP2tW9pJiiiabeD/ZAWAQ7XmnIDO+Bf5+y1JTydceGnQBgmkDbCGH3Xtgx28/sulhOfMFAtGPHdYnMIXcn0AAaTCOsnhatNrkBMM6q","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"f5f7e2d73f0e4230bbfd307483c94659"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:05:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANg1vqOFo0DGIJYnJOSmTZ+8Vvu18SnQxtxuVtPQ8ygg99lkljQMyO5klwDvB3Lyi/7FmHM6T7ojOzf91FmSv1jfra0XLpHhvWG1EMRc6OhXQcicpfTXRfMBsrStsxMXQZFFru8RD33OJdLIf0wUxOsmK7Hi7U6A5kYNmuXjTYJYQC9cC3bvh7pprY9J3zr8qZgkYYQAeWxELUzcPwBPL2e7+gTQO6SqYDaQiOhfPPzOm93W2A/0uCLuyFSCJ2S7XnRdR943rCvkz+zEAR7j3q+ZduhgFl9fz4jQRhlBtXVJpSS47gIvIKu3xafYOvcYRRys8OmLCKKLoUY4ADeRaXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCgXXNcC6L+6mz+pU8WXRGdGTCqzlr1B/SxWFn+3ldwTxMbeBYntLlpGgrBjwb3GWZ52A6yO4lASVEkGfG+FNqfxSVGeDxFKDGeTp+hHhmnZKkKzloY4A1Qez66furV+syGKowJnQyDrTpqpVMg4DyNctFmA1NlWyIW+ZbPDKHPkxouscKUU3bbVHIgMCJqmW5/Y3ZO1S2s5dut17dfzWeILgCYZU0aoFEtKQJMsSOsItRqDrGP2tW9pJiiiabeD/ZAWAQ7XmnIDO+Bf5+y1JTydceGnQBgmkDbCGH3Xtgx28/sulhOfMFAtGPHdYnMIXcn0AAaTCOsnhatNrkBMM6q","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"f5f7e2d73f0e4230bbfd307483c94659"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:01 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANg1vqOFo0DGIJYnJOSmTZ+8Vvu18SnQxtxuVtPQ8ygg99lkljQMyO5klwDvB3Lyi/7FmHM6T7ojOzf91FmSv1jfra0XLpHhvWG1EMRc6OhXQcicpfTXRfMBsrStsxMXQZFFru8RD33OJdLIf0wUxOsmK7Hi7U6A5kYNmuXjTYJYQC9cC3bvh7pprY9J3zr8qZgkYYQAeWxELUzcPwBPL2e7+gTQO6SqYDaQiOhfPPzOm93W2A/0uCLuyFSCJ2S7XnRdR943rCvkz+zEAR7j3q+ZduhgFl9fz4jQRhlBtXVJpSS47gIvIKu3xafYOvcYRRys8OmLCKKLoUY4ADeRaXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCgXXNcC6L+6mz+pU8WXRGdGTCqzlr1B/SxWFn+3ldwTxMbeBYntLlpGgrBjwb3GWZ52A6yO4lASVEkGfG+FNqfxSVGeDxFKDGeTp+hHhmnZKkKzloY4A1Qez66furV+syGKowJnQyDrTpqpVMg4DyNctFmA1NlWyIW+ZbPDKHPkxouscKUU3bbVHIgMCJqmW5/Y3ZO1S2s5dut17dfzWeILgCYZU0aoFEtKQJMsSOsItRqDrGP2tW9pJiiiabeD/ZAWAQ7XmnIDO+Bf5+y1JTydceGnQBgmkDbCGH3Xtgx28/sulhOfMFAtGPHdYnMIXcn0AAaTCOsnhatNrkBMM6q","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"f5f7e2d73f0e4230bbfd307483c94659"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANg1vqOFo0DGIJYnJOSmTZ+8Vvu18SnQxtxuVtPQ8ygg99lkljQMyO5klwDvB3Lyi/7FmHM6T7ojOzf91FmSv1jfra0XLpHhvWG1EMRc6OhXQcicpfTXRfMBsrStsxMXQZFFru8RD33OJdLIf0wUxOsmK7Hi7U6A5kYNmuXjTYJYQC9cC3bvh7pprY9J3zr8qZgkYYQAeWxELUzcPwBPL2e7+gTQO6SqYDaQiOhfPPzOm93W2A/0uCLuyFSCJ2S7XnRdR943rCvkz+zEAR7j3q+ZduhgFl9fz4jQRhlBtXVJpSS47gIvIKu3xafYOvcYRRys8OmLCKKLoUY4ADeRaXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCgXXNcC6L+6mz+pU8WXRGdGTCqzlr1B/SxWFn+3ldwTxMbeBYntLlpGgrBjwb3GWZ52A6yO4lASVEkGfG+FNqfxSVGeDxFKDGeTp+hHhmnZKkKzloY4A1Qez66furV+syGKowJnQyDrTpqpVMg4DyNctFmA1NlWyIW+ZbPDKHPkxouscKUU3bbVHIgMCJqmW5/Y3ZO1S2s5dut17dfzWeILgCYZU0aoFEtKQJMsSOsItRqDrGP2tW9pJiiiabeD/ZAWAQ7XmnIDO+Bf5+y1JTydceGnQBgmkDbCGH3Xtgx28/sulhOfMFAtGPHdYnMIXcn0AAaTCOsnhatNrkBMM6q","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert4b4615c8","request_id":"f5f7e2d73f0e4230bbfd307483c94659"}' + headers: + cache-control: + - no-cache + content-length: + - '1223' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/45d0138b92f14844a468cd28a6b8d8a9","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/45d0138b92f14844a468cd28a6b8d8a9","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/45d0138b92f14844a468cd28a6b8d8a9","x5t":"GsgG7jXzaWjevp7SmDliB-i2h_c","cer":"MIIDNjCCAh6gAwIBAgIQHEHL5fnITp2J2cGqMXElkDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTYxMFoXDTIxMDcyODIxMDYxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANg1vqOFo0DGIJYnJOSmTZ+8Vvu18SnQxtxuVtPQ8ygg99lkljQMyO5klwDvB3Lyi/7FmHM6T7ojOzf91FmSv1jfra0XLpHhvWG1EMRc6OhXQcicpfTXRfMBsrStsxMXQZFFru8RD33OJdLIf0wUxOsmK7Hi7U6A5kYNmuXjTYJYQC9cC3bvh7pprY9J3zr8qZgkYYQAeWxELUzcPwBPL2e7+gTQO6SqYDaQiOhfPPzOm93W2A/0uCLuyFSCJ2S7XnRdR943rCvkz+zEAR7j3q+ZduhgFl9fz4jQRhlBtXVJpSS47gIvIKu3xafYOvcYRRys8OmLCKKLoUY4ADeRaXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDO6PwNFT+wMJSDz6H8tAVXDNdNYMB0GA1UdDgQWBBQzuj8DRU/sDCUg8+h/LQFVwzXTWDANBgkqhkiG9w0BAQsFAAOCAQEAkdsnKtezPCMojOQ8KdK0RXZi5yDRWkpMlT9M9u4qON6Cr2s0DE6IPXGBPM1BUzjd9se9AhKQygyoWKRyuy6qH8s/sOmsWLo6k2xgWyd9BBjZxRbHkbFleUd8vncl7WO1UbMJw+i7RG5zNV7KGEJQHBrvIfy1LBcKZUWZPdm085at1N6q8VBcR3LvQBqgQUzKcgfc/mPcY3NGnWxyZ4gPzGUrHRVnZlqCAlUCPKvE+hGiFvyGYrVEmag9VyHUwAY9yakMG0uajQEnTFHXj7w1tYsJUZylh9+uLVqppPctYNIHfzPZRqKOaqqjrspa0RioKrx6iMnb00dClrTnHuzUvg==","attributes":{"enabled":true,"nbf":1595969770,"exp":1627506370,"created":1595970370,"updated":1595970370,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970303,"updated":1595970356}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending"}}' + headers: + cache-control: + - no-cache + content-length: + - '2387' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCuxN2tf0WAbOb7DqQ0Bdiop8nZWujUtuSPkh0bjpz32NaYoOgYO+ue5J7o8xslnxm6dQCEmZe5DAtn/yzS5FIVFuELlSHLwkCa8VheVocLtlwS362en0yZJai4WZwi27do6aDNP/Znii6faMkPt51lHvHczWoYvxbvcPgvxRfet0+/LuVlWZbb8hyAXpaQnyZ+2SQ3JXa5DnfzWzDW4pGepK2dAE+zWEURE5D2QUQoWBFRpP6xj98JS2hZ55tB2NJaUIsg4+v1H3hxZigrOPu+uGdV9Pl8VXGK8NrNTjeqk5yaMimODlTP6+HODPK5lAO2Om6NiTrKYPdH2IusOIhM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"fcf9797f1c374a75bb1d82c1444c7bde"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:13 GMT + expires: + - '-1' + location: + - https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview&request_id=fcf9797f1c374a75bb1d82c1444c7bde + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCuxN2tf0WAbOb7DqQ0Bdiop8nZWujUtuSPkh0bjpz32NaYoOgYO+ue5J7o8xslnxm6dQCEmZe5DAtn/yzS5FIVFuELlSHLwkCa8VheVocLtlwS362en0yZJai4WZwi27do6aDNP/Znii6faMkPt51lHvHczWoYvxbvcPgvxRfet0+/LuVlWZbb8hyAXpaQnyZ+2SQ3JXa5DnfzWzDW4pGepK2dAE+zWEURE5D2QUQoWBFRpP6xj98JS2hZ55tB2NJaUIsg4+v1H3hxZigrOPu+uGdV9Pl8VXGK8NrNTjeqk5yaMimODlTP6+HODPK5lAO2Om6NiTrKYPdH2IusOIhM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"fcf9797f1c374a75bb1d82c1444c7bde"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCuxN2tf0WAbOb7DqQ0Bdiop8nZWujUtuSPkh0bjpz32NaYoOgYO+ue5J7o8xslnxm6dQCEmZe5DAtn/yzS5FIVFuELlSHLwkCa8VheVocLtlwS362en0yZJai4WZwi27do6aDNP/Znii6faMkPt51lHvHczWoYvxbvcPgvxRfet0+/LuVlWZbb8hyAXpaQnyZ+2SQ3JXa5DnfzWzDW4pGepK2dAE+zWEURE5D2QUQoWBFRpP6xj98JS2hZ55tB2NJaUIsg4+v1H3hxZigrOPu+uGdV9Pl8VXGK8NrNTjeqk5yaMimODlTP6+HODPK5lAO2Om6NiTrKYPdH2IusOIhM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"fcf9797f1c374a75bb1d82c1444c7bde"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCuxN2tf0WAbOb7DqQ0Bdiop8nZWujUtuSPkh0bjpz32NaYoOgYO+ue5J7o8xslnxm6dQCEmZe5DAtn/yzS5FIVFuELlSHLwkCa8VheVocLtlwS362en0yZJai4WZwi27do6aDNP/Znii6faMkPt51lHvHczWoYvxbvcPgvxRfet0+/LuVlWZbb8hyAXpaQnyZ+2SQ3JXa5DnfzWzDW4pGepK2dAE+zWEURE5D2QUQoWBFRpP6xj98JS2hZ55tB2NJaUIsg4+v1H3hxZigrOPu+uGdV9Pl8VXGK8NrNTjeqk5yaMimODlTP6+HODPK5lAO2Om6NiTrKYPdH2IusOIhM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"fcf9797f1c374a75bb1d82c1444c7bde"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:23 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCuxN2tf0WAbOb7DqQ0Bdiop8nZWujUtuSPkh0bjpz32NaYoOgYO+ue5J7o8xslnxm6dQCEmZe5DAtn/yzS5FIVFuELlSHLwkCa8VheVocLtlwS362en0yZJai4WZwi27do6aDNP/Znii6faMkPt51lHvHczWoYvxbvcPgvxRfet0+/LuVlWZbb8hyAXpaQnyZ+2SQ3JXa5DnfzWzDW4pGepK2dAE+zWEURE5D2QUQoWBFRpP6xj98JS2hZ55tB2NJaUIsg4+v1H3hxZigrOPu+uGdV9Pl8VXGK8NrNTjeqk5yaMimODlTP6+HODPK5lAO2Om6NiTrKYPdH2IusOIhM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"fcf9797f1c374a75bb1d82c1444c7bde"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCuxN2tf0WAbOb7DqQ0Bdiop8nZWujUtuSPkh0bjpz32NaYoOgYO+ue5J7o8xslnxm6dQCEmZe5DAtn/yzS5FIVFuELlSHLwkCa8VheVocLtlwS362en0yZJai4WZwi27do6aDNP/Znii6faMkPt51lHvHczWoYvxbvcPgvxRfet0+/LuVlWZbb8hyAXpaQnyZ+2SQ3JXa5DnfzWzDW4pGepK2dAE+zWEURE5D2QUQoWBFRpP6xj98JS2hZ55tB2NJaUIsg4+v1H3hxZigrOPu+uGdV9Pl8VXGK8NrNTjeqk5yaMimODlTP6+HODPK5lAO2Om6NiTrKYPdH2IusOIhM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"fcf9797f1c374a75bb1d82c1444c7bde"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCuxN2tf0WAbOb7DqQ0Bdiop8nZWujUtuSPkh0bjpz32NaYoOgYO+ue5J7o8xslnxm6dQCEmZe5DAtn/yzS5FIVFuELlSHLwkCa8VheVocLtlwS362en0yZJai4WZwi27do6aDNP/Znii6faMkPt51lHvHczWoYvxbvcPgvxRfet0+/LuVlWZbb8hyAXpaQnyZ+2SQ3JXa5DnfzWzDW4pGepK2dAE+zWEURE5D2QUQoWBFRpP6xj98JS2hZ55tB2NJaUIsg4+v1H3hxZigrOPu+uGdV9Pl8VXGK8NrNTjeqk5yaMimODlTP6+HODPK5lAO2Om6NiTrKYPdH2IusOIhM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"fcf9797f1c374a75bb1d82c1444c7bde"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCuxN2tf0WAbOb7DqQ0Bdiop8nZWujUtuSPkh0bjpz32NaYoOgYO+ue5J7o8xslnxm6dQCEmZe5DAtn/yzS5FIVFuELlSHLwkCa8VheVocLtlwS362en0yZJai4WZwi27do6aDNP/Znii6faMkPt51lHvHczWoYvxbvcPgvxRfet0+/LuVlWZbb8hyAXpaQnyZ+2SQ3JXa5DnfzWzDW4pGepK2dAE+zWEURE5D2QUQoWBFRpP6xj98JS2hZ55tB2NJaUIsg4+v1H3hxZigrOPu+uGdV9Pl8VXGK8NrNTjeqk5yaMimODlTP6+HODPK5lAO2Om6NiTrKYPdH2IusOIhM","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert4b4615c8","request_id":"fcf9797f1c374a75bb1d82c1444c7bde"}' + headers: + cache-control: + - no-cache + content-length: + - '1223' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/3cd87d2ad0c14d3595fc743adc48ec3e","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/3cd87d2ad0c14d3595fc743adc48ec3e","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/3cd87d2ad0c14d3595fc743adc48ec3e","x5t":"0dlXzif8pKdt4X90IjY_ObMqdFM","cer":"MIIDNjCCAh6gAwIBAgIQZJk1wi4bSQmsBfH3knkyNjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTY0MVoXDTIxMDcyODIxMDY0MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFGELQwIZkNRra8uUCKkYnxvPLECfMB0GA1UdDgQWBBRhC0MCGZDUa2vLlAipGJ8bzyxAnzANBgkqhkiG9w0BAQsFAAOCAQEAJsw2wwcPUYnFxvyUCVXT5hxa90bpndcIOgbz0SWJwZumii5VrKG0fm06SyTB/CQrII+t7RYHynBMJFpidqPGJW90WFLfyEPjVEl0YJh0Pdk85knhzet58RkdEseQrPto6LbSVaKgJIDJf0nd6tLmg3COsbq/UOYyUJOKkj1acYJtG6bZ5f7JijmPLkTDH/LEg43rpvhWbgyXUoje6eoHBijhlCBxGaOoWlPOzqDL9DwvGcts1w8FE2uaLrccrr0r7uOXDs2dqKR/U4hiEEKl7xf2QW+iI4ThPPHAPdz484Sc4GKvhTsdkwkPNgaP1m59Uo77UCMTjBOyleFmG/fSEA==","attributes":{"enabled":true,"nbf":1595969801,"exp":1627506401,"created":1595970401,"updated":1595970401,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970303,"updated":1595970372}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending"}}' + headers: + cache-control: + - no-cache + content-length: + - '2387' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKtLNXZHTQ/uZ/yqwyYVvdvUvZm5kHvcRG6VLK9B82yXl03ONf5K0DsZ4zXfHL3a2TnAwuL/ygn79jcOAxdit81VxxiPuH7+u10pyEqaVXLEG8cdJN/n2kqOOlr4Urd+50lkjEXZkzda+cKumzyUw5ote7jgnfYsyRQ3wBhA2+DROLc11SfGz9PCvqE7+8fFOC7n7IWT/Apa4nhgQV7JLPVHE0xDkN6rxAHqU+Lu3wQDN+XOXsFr0GeYhoJhpJgFSjqn1+BGhuXv0KLuyIMA2O3oaicbqlDBYF/AX50zeAux7c0Decp7LZydgJIKsxT7FCC8wKyR/pZDrG4U5iKC3kcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAqDUrzLyRi3iMgYI/UiJx4aDfXqOvRo5QZbv1/7Thx4xfRhN2yXWVmqCDDbZaE19JVSOv+pvZWvCVtxZZ1fm0Zf0xBLD/s7EIuJAOkRIeU7qo3DqNnxUFC0jLpdvuuSGc61g/d1/4TmdVP0g48Rkt8C39x56oGVl0VeCMU4leAdMXbD6VeZTt4GwzUWc2IHkBmkMXH3WKow5AwAIjjy8UTD9iQS6RYUuvYpf+9zMhGe6Mi5ChW7UYP4Iebvt0hTui5T4SENXj2nqe5lVC7DsYA4yTptIJZDP6A5vLp8MaRpm67/5AhdjxfOaPT0d8gYOAw0HWzzhoCiv/MbTY8pLOE","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"620ec14cdd3f479db3f328e539921dd7"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:44 GMT + expires: + - '-1' + location: + - https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview&request_id=620ec14cdd3f479db3f328e539921dd7 + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKtLNXZHTQ/uZ/yqwyYVvdvUvZm5kHvcRG6VLK9B82yXl03ONf5K0DsZ4zXfHL3a2TnAwuL/ygn79jcOAxdit81VxxiPuH7+u10pyEqaVXLEG8cdJN/n2kqOOlr4Urd+50lkjEXZkzda+cKumzyUw5ote7jgnfYsyRQ3wBhA2+DROLc11SfGz9PCvqE7+8fFOC7n7IWT/Apa4nhgQV7JLPVHE0xDkN6rxAHqU+Lu3wQDN+XOXsFr0GeYhoJhpJgFSjqn1+BGhuXv0KLuyIMA2O3oaicbqlDBYF/AX50zeAux7c0Decp7LZydgJIKsxT7FCC8wKyR/pZDrG4U5iKC3kcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAqDUrzLyRi3iMgYI/UiJx4aDfXqOvRo5QZbv1/7Thx4xfRhN2yXWVmqCDDbZaE19JVSOv+pvZWvCVtxZZ1fm0Zf0xBLD/s7EIuJAOkRIeU7qo3DqNnxUFC0jLpdvuuSGc61g/d1/4TmdVP0g48Rkt8C39x56oGVl0VeCMU4leAdMXbD6VeZTt4GwzUWc2IHkBmkMXH3WKow5AwAIjjy8UTD9iQS6RYUuvYpf+9zMhGe6Mi5ChW7UYP4Iebvt0hTui5T4SENXj2nqe5lVC7DsYA4yTptIJZDP6A5vLp8MaRpm67/5AhdjxfOaPT0d8gYOAw0HWzzhoCiv/MbTY8pLOE","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"620ec14cdd3f479db3f328e539921dd7"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:44 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKtLNXZHTQ/uZ/yqwyYVvdvUvZm5kHvcRG6VLK9B82yXl03ONf5K0DsZ4zXfHL3a2TnAwuL/ygn79jcOAxdit81VxxiPuH7+u10pyEqaVXLEG8cdJN/n2kqOOlr4Urd+50lkjEXZkzda+cKumzyUw5ote7jgnfYsyRQ3wBhA2+DROLc11SfGz9PCvqE7+8fFOC7n7IWT/Apa4nhgQV7JLPVHE0xDkN6rxAHqU+Lu3wQDN+XOXsFr0GeYhoJhpJgFSjqn1+BGhuXv0KLuyIMA2O3oaicbqlDBYF/AX50zeAux7c0Decp7LZydgJIKsxT7FCC8wKyR/pZDrG4U5iKC3kcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAqDUrzLyRi3iMgYI/UiJx4aDfXqOvRo5QZbv1/7Thx4xfRhN2yXWVmqCDDbZaE19JVSOv+pvZWvCVtxZZ1fm0Zf0xBLD/s7EIuJAOkRIeU7qo3DqNnxUFC0jLpdvuuSGc61g/d1/4TmdVP0g48Rkt8C39x56oGVl0VeCMU4leAdMXbD6VeZTt4GwzUWc2IHkBmkMXH3WKow5AwAIjjy8UTD9iQS6RYUuvYpf+9zMhGe6Mi5ChW7UYP4Iebvt0hTui5T4SENXj2nqe5lVC7DsYA4yTptIJZDP6A5vLp8MaRpm67/5AhdjxfOaPT0d8gYOAw0HWzzhoCiv/MbTY8pLOE","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"620ec14cdd3f479db3f328e539921dd7"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKtLNXZHTQ/uZ/yqwyYVvdvUvZm5kHvcRG6VLK9B82yXl03ONf5K0DsZ4zXfHL3a2TnAwuL/ygn79jcOAxdit81VxxiPuH7+u10pyEqaVXLEG8cdJN/n2kqOOlr4Urd+50lkjEXZkzda+cKumzyUw5ote7jgnfYsyRQ3wBhA2+DROLc11SfGz9PCvqE7+8fFOC7n7IWT/Apa4nhgQV7JLPVHE0xDkN6rxAHqU+Lu3wQDN+XOXsFr0GeYhoJhpJgFSjqn1+BGhuXv0KLuyIMA2O3oaicbqlDBYF/AX50zeAux7c0Decp7LZydgJIKsxT7FCC8wKyR/pZDrG4U5iKC3kcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAqDUrzLyRi3iMgYI/UiJx4aDfXqOvRo5QZbv1/7Thx4xfRhN2yXWVmqCDDbZaE19JVSOv+pvZWvCVtxZZ1fm0Zf0xBLD/s7EIuJAOkRIeU7qo3DqNnxUFC0jLpdvuuSGc61g/d1/4TmdVP0g48Rkt8C39x56oGVl0VeCMU4leAdMXbD6VeZTt4GwzUWc2IHkBmkMXH3WKow5AwAIjjy8UTD9iQS6RYUuvYpf+9zMhGe6Mi5ChW7UYP4Iebvt0hTui5T4SENXj2nqe5lVC7DsYA4yTptIJZDP6A5vLp8MaRpm67/5AhdjxfOaPT0d8gYOAw0HWzzhoCiv/MbTY8pLOE","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"620ec14cdd3f479db3f328e539921dd7"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:06:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKtLNXZHTQ/uZ/yqwyYVvdvUvZm5kHvcRG6VLK9B82yXl03ONf5K0DsZ4zXfHL3a2TnAwuL/ygn79jcOAxdit81VxxiPuH7+u10pyEqaVXLEG8cdJN/n2kqOOlr4Urd+50lkjEXZkzda+cKumzyUw5ote7jgnfYsyRQ3wBhA2+DROLc11SfGz9PCvqE7+8fFOC7n7IWT/Apa4nhgQV7JLPVHE0xDkN6rxAHqU+Lu3wQDN+XOXsFr0GeYhoJhpJgFSjqn1+BGhuXv0KLuyIMA2O3oaicbqlDBYF/AX50zeAux7c0Decp7LZydgJIKsxT7FCC8wKyR/pZDrG4U5iKC3kcCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAqDUrzLyRi3iMgYI/UiJx4aDfXqOvRo5QZbv1/7Thx4xfRhN2yXWVmqCDDbZaE19JVSOv+pvZWvCVtxZZ1fm0Zf0xBLD/s7EIuJAOkRIeU7qo3DqNnxUFC0jLpdvuuSGc61g/d1/4TmdVP0g48Rkt8C39x56oGVl0VeCMU4leAdMXbD6VeZTt4GwzUWc2IHkBmkMXH3WKow5AwAIjjy8UTD9iQS6RYUuvYpf+9zMhGe6Mi5ChW7UYP4Iebvt0hTui5T4SENXj2nqe5lVC7DsYA4yTptIJZDP6A5vLp8MaRpm67/5AhdjxfOaPT0d8gYOAw0HWzzhoCiv/MbTY8pLOE","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert4b4615c8","request_id":"620ec14cdd3f479db3f328e539921dd7"}' + headers: + cache-control: + - no-cache + content-length: + - '1223' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/8aff8e692a854e7e9953e28fc79e5996","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/8aff8e692a854e7e9953e28fc79e5996","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/8aff8e692a854e7e9953e28fc79e5996","x5t":"zLiaKfhWse_TcSUuoyNx5v8DZxE","cer":"MIIDNjCCAh6gAwIBAgIQdwY+EpqXS0ybtHoP0Ka7MjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTY1NloXDTIxMDcyODIxMDY1NlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKtLNXZHTQ/uZ/yqwyYVvdvUvZm5kHvcRG6VLK9B82yXl03ONf5K0DsZ4zXfHL3a2TnAwuL/ygn79jcOAxdit81VxxiPuH7+u10pyEqaVXLEG8cdJN/n2kqOOlr4Urd+50lkjEXZkzda+cKumzyUw5ote7jgnfYsyRQ3wBhA2+DROLc11SfGz9PCvqE7+8fFOC7n7IWT/Apa4nhgQV7JLPVHE0xDkN6rxAHqU+Lu3wQDN+XOXsFr0GeYhoJhpJgFSjqn1+BGhuXv0KLuyIMA2O3oaicbqlDBYF/AX50zeAux7c0Decp7LZydgJIKsxT7FCC8wKyR/pZDrG4U5iKC3kcCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDpO46qj4GiVM25Ab9pCsKu7VY2VMB0GA1UdDgQWBBQ6TuOqo+BolTNuQG/aQrCru1WNlTANBgkqhkiG9w0BAQsFAAOCAQEAm1pp3cAE2k1AE9OQ3X1eKsDM1J2z9Bl8sIk0eSp9J6GwNqpDpwe05x1l7OWlJZA+HSgO0QXfQSdm3mdfClWZjyhEt7GPDO2d856OXvKI8GqrcfT4vbqj1JtATwLc3OxKj29z1q2xCTbKHCJexHStda1cay8v+BvLsoVS9vGRjd1V3jadsZkEVuU/FyQXhNywNlEpsbRLRZ+icaEic71XEE1XaWX5GulloplvtNS8jocWr+k/qmHqvz53TOJf8b2sxKzr1hnZIsdzB/4+NOS8+lrgAmD8C8eW6nLVLmc0HGAvSGftgaapWzjTM/nFn43VxKq2ggNvrhUUpv/Aaiz54A==","attributes":{"enabled":true,"nbf":1595969816,"exp":1627506416,"created":1595970417,"updated":1595970417,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970303,"updated":1595970404}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending"}}' + headers: + cache-control: + - no-cache + content-length: + - '2387' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBIOSacmkggZTxrK6KBQooy/490NJt8/QUy9px7JSB4ZWpnRfDJhZQveXHE0gy/UceEMYjNZxpem4nF7SylmsNWBqLAB/bapB7NxSTY2RH8RscdD4o2uj5+ZtkZ/eWWR5TVeTvZhKEYz9f7yxOLI6jOYieWKgvZwoSd9OQWkUe40HA/Sba7UVh/olY4NWXPhErKHDPTXzKKqsq9VA5ZhvCdxpkVHvZpavxzdnUAs41cdQ2yN9usEVJraOPc2xqyJXFf9uLksPphHMxYOTVne7jbsNc5v1yyw86p6xhRpdQMbiEzKL8qC++cWnMvHccHO2vcZnhMrdRKixyZJgyXLTER","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"b1a9291acca24129a197c4193fd4c3da"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:00 GMT + expires: + - '-1' + location: + - https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview&request_id=b1a9291acca24129a197c4193fd4c3da + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBIOSacmkggZTxrK6KBQooy/490NJt8/QUy9px7JSB4ZWpnRfDJhZQveXHE0gy/UceEMYjNZxpem4nF7SylmsNWBqLAB/bapB7NxSTY2RH8RscdD4o2uj5+ZtkZ/eWWR5TVeTvZhKEYz9f7yxOLI6jOYieWKgvZwoSd9OQWkUe40HA/Sba7UVh/olY4NWXPhErKHDPTXzKKqsq9VA5ZhvCdxpkVHvZpavxzdnUAs41cdQ2yN9usEVJraOPc2xqyJXFf9uLksPphHMxYOTVne7jbsNc5v1yyw86p6xhRpdQMbiEzKL8qC++cWnMvHccHO2vcZnhMrdRKixyZJgyXLTER","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"b1a9291acca24129a197c4193fd4c3da"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBIOSacmkggZTxrK6KBQooy/490NJt8/QUy9px7JSB4ZWpnRfDJhZQveXHE0gy/UceEMYjNZxpem4nF7SylmsNWBqLAB/bapB7NxSTY2RH8RscdD4o2uj5+ZtkZ/eWWR5TVeTvZhKEYz9f7yxOLI6jOYieWKgvZwoSd9OQWkUe40HA/Sba7UVh/olY4NWXPhErKHDPTXzKKqsq9VA5ZhvCdxpkVHvZpavxzdnUAs41cdQ2yN9usEVJraOPc2xqyJXFf9uLksPphHMxYOTVne7jbsNc5v1yyw86p6xhRpdQMbiEzKL8qC++cWnMvHccHO2vcZnhMrdRKixyZJgyXLTER","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"b1a9291acca24129a197c4193fd4c3da"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBIOSacmkggZTxrK6KBQooy/490NJt8/QUy9px7JSB4ZWpnRfDJhZQveXHE0gy/UceEMYjNZxpem4nF7SylmsNWBqLAB/bapB7NxSTY2RH8RscdD4o2uj5+ZtkZ/eWWR5TVeTvZhKEYz9f7yxOLI6jOYieWKgvZwoSd9OQWkUe40HA/Sba7UVh/olY4NWXPhErKHDPTXzKKqsq9VA5ZhvCdxpkVHvZpavxzdnUAs41cdQ2yN9usEVJraOPc2xqyJXFf9uLksPphHMxYOTVne7jbsNc5v1yyw86p6xhRpdQMbiEzKL8qC++cWnMvHccHO2vcZnhMrdRKixyZJgyXLTER","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"b1a9291acca24129a197c4193fd4c3da"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBIOSacmkggZTxrK6KBQooy/490NJt8/QUy9px7JSB4ZWpnRfDJhZQveXHE0gy/UceEMYjNZxpem4nF7SylmsNWBqLAB/bapB7NxSTY2RH8RscdD4o2uj5+ZtkZ/eWWR5TVeTvZhKEYz9f7yxOLI6jOYieWKgvZwoSd9OQWkUe40HA/Sba7UVh/olY4NWXPhErKHDPTXzKKqsq9VA5ZhvCdxpkVHvZpavxzdnUAs41cdQ2yN9usEVJraOPc2xqyJXFf9uLksPphHMxYOTVne7jbsNc5v1yyw86p6xhRpdQMbiEzKL8qC++cWnMvHccHO2vcZnhMrdRKixyZJgyXLTER","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"b1a9291acca24129a197c4193fd4c3da"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBIOSacmkggZTxrK6KBQooy/490NJt8/QUy9px7JSB4ZWpnRfDJhZQveXHE0gy/UceEMYjNZxpem4nF7SylmsNWBqLAB/bapB7NxSTY2RH8RscdD4o2uj5+ZtkZ/eWWR5TVeTvZhKEYz9f7yxOLI6jOYieWKgvZwoSd9OQWkUe40HA/Sba7UVh/olY4NWXPhErKHDPTXzKKqsq9VA5ZhvCdxpkVHvZpavxzdnUAs41cdQ2yN9usEVJraOPc2xqyJXFf9uLksPphHMxYOTVne7jbsNc5v1yyw86p6xhRpdQMbiEzKL8qC++cWnMvHccHO2vcZnhMrdRKixyZJgyXLTER","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"b1a9291acca24129a197c4193fd4c3da"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:21 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBIOSacmkggZTxrK6KBQooy/490NJt8/QUy9px7JSB4ZWpnRfDJhZQveXHE0gy/UceEMYjNZxpem4nF7SylmsNWBqLAB/bapB7NxSTY2RH8RscdD4o2uj5+ZtkZ/eWWR5TVeTvZhKEYz9f7yxOLI6jOYieWKgvZwoSd9OQWkUe40HA/Sba7UVh/olY4NWXPhErKHDPTXzKKqsq9VA5ZhvCdxpkVHvZpavxzdnUAs41cdQ2yN9usEVJraOPc2xqyJXFf9uLksPphHMxYOTVne7jbsNc5v1yyw86p6xhRpdQMbiEzKL8qC++cWnMvHccHO2vcZnhMrdRKixyZJgyXLTER","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"b1a9291acca24129a197c4193fd4c3da"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:26 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBIOSacmkggZTxrK6KBQooy/490NJt8/QUy9px7JSB4ZWpnRfDJhZQveXHE0gy/UceEMYjNZxpem4nF7SylmsNWBqLAB/bapB7NxSTY2RH8RscdD4o2uj5+ZtkZ/eWWR5TVeTvZhKEYz9f7yxOLI6jOYieWKgvZwoSd9OQWkUe40HA/Sba7UVh/olY4NWXPhErKHDPTXzKKqsq9VA5ZhvCdxpkVHvZpavxzdnUAs41cdQ2yN9usEVJraOPc2xqyJXFf9uLksPphHMxYOTVne7jbsNc5v1yyw86p6xhRpdQMbiEzKL8qC++cWnMvHccHO2vcZnhMrdRKixyZJgyXLTER","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert4b4615c8","request_id":"b1a9291acca24129a197c4193fd4c3da"}' + headers: + cache-control: + - no-cache + content-length: + - '1223' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/2e4d243ecbdd4c248e0cf40d65a9f1d9","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/2e4d243ecbdd4c248e0cf40d65a9f1d9","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/2e4d243ecbdd4c248e0cf40d65a9f1d9","x5t":"UAD_WtFBAx1cN1mpAbNg0EPPmCM","cer":"MIIDNjCCAh6gAwIBAgIQa9k5Qu8/SjOgmMZikvDtZDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTcyN1oXDTIxMDcyODIxMDcyN1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFGZINLLYUCUePFrzDeNHYHqgG5SVMB0GA1UdDgQWBBRmSDSy2FAlHjxa8w3jR2B6oBuUlTANBgkqhkiG9w0BAQsFAAOCAQEAqyu219SyFoj0LiMsCRNlXH4vtqJnCnzbzZizaXjx5uhYorXFw4tsQ2+LPDclnnK46nN/AYvqesS/PNA/GrJG90t+UTr/EV3njrxVw10AYJ0x08FZOSKO4r7azQPavt0yYYbVqgYGQMPcarW3W/npoPjB/A04wjkS5lG68T2Ic6TTPGTQ5kPlVieaMz2u4U7XLkq3T8Afn4U5RE13NkC79yOVhbbLszbb5g8vN6mEVhyfIfIPuHA9RY20U+N0+5LDqMftPaIaMOEvLVm0tHiMchHgyFA1VZPXEAlGRiAE6LY7eJWJIJY6yKwz4NrBZbgu69QUSRZ8+AfsRIFtD6N5/A==","attributes":{"enabled":true,"nbf":1595969847,"exp":1627506447,"created":1595970447,"updated":1595970447,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970303,"updated":1595970420}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending"}}' + headers: + cache-control: + - no-cache + content-length: + - '2387' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJlFRMYRcdXqSjnRIbomMbqbYpFQcQ2Y5H/40IgfWn6VZ9fi4oTMiwnOLaRCCUTlxZk7lC7tUw/1Qz9GQl9ynZRb4pxyfitpbnJR6cIbnrumMn3RrljsPmCKqBGDs5sqdsoitTg8+NpUywKHSQdzPnnZqO/qm90/TjHzCf+/bHeMcs1/xOgTj2uEBkTrLEvIgn8gcR/wBafir4wQe1od125aE+bfyuwzaygZkODpLvfRO20TZOOckdqLh6geMC+Xv8pt0yFLZZF//vuA57l/BK3gFokeY0VbXwwhXMcUZgo1XApazC+Bolwgn5G0qLh+8mtIrMvS9Ud3uTAMpRIIh4MCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCI3Mp4b0CI2FORi4cPrnxH6Qwo9DY+czHYtcSNkpO4tl1GZHbYylspPEw/DwxgBLmTjBAsyeFVE9w8/fTCZCkQrCCzVSTIFk779wVnKOTZMxj/t1N0RCr5Li1JmuXmIvXzeWvZzNsRzTvqNOoLEUSEwwtJXld07nbRskq0RUI4oJS8EM2kptzJgaHae3QnPWAUcwvj7CxjP6YIWZcmEaRjUn3BZZbqtQT1NhgIRIArMDJz2L/0P9Uy3JlCl00MpmK9f6gXjwuFvp6Nk+RZilmEzRfsFgRRn6miSIxLiCLWW4FEZbJn/0ZCYPIMjY5IDdIo27/yDtrtqrhU3QY3Lo4R","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"16c6ef37838146499de928edec1ccaf8"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:31 GMT + expires: + - '-1' + location: + - https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview&request_id=16c6ef37838146499de928edec1ccaf8 + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJlFRMYRcdXqSjnRIbomMbqbYpFQcQ2Y5H/40IgfWn6VZ9fi4oTMiwnOLaRCCUTlxZk7lC7tUw/1Qz9GQl9ynZRb4pxyfitpbnJR6cIbnrumMn3RrljsPmCKqBGDs5sqdsoitTg8+NpUywKHSQdzPnnZqO/qm90/TjHzCf+/bHeMcs1/xOgTj2uEBkTrLEvIgn8gcR/wBafir4wQe1od125aE+bfyuwzaygZkODpLvfRO20TZOOckdqLh6geMC+Xv8pt0yFLZZF//vuA57l/BK3gFokeY0VbXwwhXMcUZgo1XApazC+Bolwgn5G0qLh+8mtIrMvS9Ud3uTAMpRIIh4MCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCI3Mp4b0CI2FORi4cPrnxH6Qwo9DY+czHYtcSNkpO4tl1GZHbYylspPEw/DwxgBLmTjBAsyeFVE9w8/fTCZCkQrCCzVSTIFk779wVnKOTZMxj/t1N0RCr5Li1JmuXmIvXzeWvZzNsRzTvqNOoLEUSEwwtJXld07nbRskq0RUI4oJS8EM2kptzJgaHae3QnPWAUcwvj7CxjP6YIWZcmEaRjUn3BZZbqtQT1NhgIRIArMDJz2L/0P9Uy3JlCl00MpmK9f6gXjwuFvp6Nk+RZilmEzRfsFgRRn6miSIxLiCLWW4FEZbJn/0ZCYPIMjY5IDdIo27/yDtrtqrhU3QY3Lo4R","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"16c6ef37838146499de928edec1ccaf8"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJlFRMYRcdXqSjnRIbomMbqbYpFQcQ2Y5H/40IgfWn6VZ9fi4oTMiwnOLaRCCUTlxZk7lC7tUw/1Qz9GQl9ynZRb4pxyfitpbnJR6cIbnrumMn3RrljsPmCKqBGDs5sqdsoitTg8+NpUywKHSQdzPnnZqO/qm90/TjHzCf+/bHeMcs1/xOgTj2uEBkTrLEvIgn8gcR/wBafir4wQe1od125aE+bfyuwzaygZkODpLvfRO20TZOOckdqLh6geMC+Xv8pt0yFLZZF//vuA57l/BK3gFokeY0VbXwwhXMcUZgo1XApazC+Bolwgn5G0qLh+8mtIrMvS9Ud3uTAMpRIIh4MCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCI3Mp4b0CI2FORi4cPrnxH6Qwo9DY+czHYtcSNkpO4tl1GZHbYylspPEw/DwxgBLmTjBAsyeFVE9w8/fTCZCkQrCCzVSTIFk779wVnKOTZMxj/t1N0RCr5Li1JmuXmIvXzeWvZzNsRzTvqNOoLEUSEwwtJXld07nbRskq0RUI4oJS8EM2kptzJgaHae3QnPWAUcwvj7CxjP6YIWZcmEaRjUn3BZZbqtQT1NhgIRIArMDJz2L/0P9Uy3JlCl00MpmK9f6gXjwuFvp6Nk+RZilmEzRfsFgRRn6miSIxLiCLWW4FEZbJn/0ZCYPIMjY5IDdIo27/yDtrtqrhU3QY3Lo4R","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"16c6ef37838146499de928edec1ccaf8"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJlFRMYRcdXqSjnRIbomMbqbYpFQcQ2Y5H/40IgfWn6VZ9fi4oTMiwnOLaRCCUTlxZk7lC7tUw/1Qz9GQl9ynZRb4pxyfitpbnJR6cIbnrumMn3RrljsPmCKqBGDs5sqdsoitTg8+NpUywKHSQdzPnnZqO/qm90/TjHzCf+/bHeMcs1/xOgTj2uEBkTrLEvIgn8gcR/wBafir4wQe1od125aE+bfyuwzaygZkODpLvfRO20TZOOckdqLh6geMC+Xv8pt0yFLZZF//vuA57l/BK3gFokeY0VbXwwhXMcUZgo1XApazC+Bolwgn5G0qLh+8mtIrMvS9Ud3uTAMpRIIh4MCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCI3Mp4b0CI2FORi4cPrnxH6Qwo9DY+czHYtcSNkpO4tl1GZHbYylspPEw/DwxgBLmTjBAsyeFVE9w8/fTCZCkQrCCzVSTIFk779wVnKOTZMxj/t1N0RCr5Li1JmuXmIvXzeWvZzNsRzTvqNOoLEUSEwwtJXld07nbRskq0RUI4oJS8EM2kptzJgaHae3QnPWAUcwvj7CxjP6YIWZcmEaRjUn3BZZbqtQT1NhgIRIArMDJz2L/0P9Uy3JlCl00MpmK9f6gXjwuFvp6Nk+RZilmEzRfsFgRRn6miSIxLiCLWW4FEZbJn/0ZCYPIMjY5IDdIo27/yDtrtqrhU3QY3Lo4R","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"16c6ef37838146499de928edec1ccaf8"}' + headers: + cache-control: + - no-cache + content-length: + - '1302' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJlFRMYRcdXqSjnRIbomMbqbYpFQcQ2Y5H/40IgfWn6VZ9fi4oTMiwnOLaRCCUTlxZk7lC7tUw/1Qz9GQl9ynZRb4pxyfitpbnJR6cIbnrumMn3RrljsPmCKqBGDs5sqdsoitTg8+NpUywKHSQdzPnnZqO/qm90/TjHzCf+/bHeMcs1/xOgTj2uEBkTrLEvIgn8gcR/wBafir4wQe1od125aE+bfyuwzaygZkODpLvfRO20TZOOckdqLh6geMC+Xv8pt0yFLZZF//vuA57l/BK3gFokeY0VbXwwhXMcUZgo1XApazC+Bolwgn5G0qLh+8mtIrMvS9Ud3uTAMpRIIh4MCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCI3Mp4b0CI2FORi4cPrnxH6Qwo9DY+czHYtcSNkpO4tl1GZHbYylspPEw/DwxgBLmTjBAsyeFVE9w8/fTCZCkQrCCzVSTIFk779wVnKOTZMxj/t1N0RCr5Li1JmuXmIvXzeWvZzNsRzTvqNOoLEUSEwwtJXld07nbRskq0RUI4oJS8EM2kptzJgaHae3QnPWAUcwvj7CxjP6YIWZcmEaRjUn3BZZbqtQT1NhgIRIArMDJz2L/0P9Uy3JlCl00MpmK9f6gXjwuFvp6Nk+RZilmEzRfsFgRRn6miSIxLiCLWW4FEZbJn/0ZCYPIMjY5IDdIo27/yDtrtqrhU3QY3Lo4R","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert4b4615c8","request_id":"16c6ef37838146499de928edec1ccaf8"}' + headers: + cache-control: + - no-cache + content-length: + - '1223' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/f39fb36730564152a1b7b14f12d4ef6a","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/f39fb36730564152a1b7b14f12d4ef6a","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/f39fb36730564152a1b7b14f12d4ef6a","x5t":"eYM4VUopZaClCK_fPK8oBFkAOu8","cer":"MIIDNjCCAh6gAwIBAgIQRskZ8HttTGyx+fE73luXyjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTc0M1oXDTIxMDcyODIxMDc0M1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJlFRMYRcdXqSjnRIbomMbqbYpFQcQ2Y5H/40IgfWn6VZ9fi4oTMiwnOLaRCCUTlxZk7lC7tUw/1Qz9GQl9ynZRb4pxyfitpbnJR6cIbnrumMn3RrljsPmCKqBGDs5sqdsoitTg8+NpUywKHSQdzPnnZqO/qm90/TjHzCf+/bHeMcs1/xOgTj2uEBkTrLEvIgn8gcR/wBafir4wQe1od125aE+bfyuwzaygZkODpLvfRO20TZOOckdqLh6geMC+Xv8pt0yFLZZF//vuA57l/BK3gFokeY0VbXwwhXMcUZgo1XApazC+Bolwgn5G0qLh+8mtIrMvS9Ud3uTAMpRIIh4MCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLJX+SmAMZEIh2f8gx1LWTv069rOMB0GA1UdDgQWBBSyV/kpgDGRCIdn/IMdS1k79OvazjANBgkqhkiG9w0BAQsFAAOCAQEAXGqW0fz/nb/f8zIlOASoqDWFG9fKg8JlXYfvrVlIOGL8mQtPvRZlQxiNelrT+UDQk26EjQ4SAZc/I3CZZt/Caom50Vkzo1m6WqYVJDp4EO9MrATnTGNom36gTAP5kzCJKo4EYtSv3EYnxYhUadOXQLvXS5rW10M/sQXtNQCnBVbPsZiJ/HwByMjXE1M6jBQviwsi2BwzZ677jM11DVoks64Ynwxn1DBFQfq1Nr4tCc0dgYpveT+cnUDlih3Zb4BLe99x6l4HIBd0RxX/2hN4fH2Ab/8O3AYjT/fbRT2C2tBuOavnC2H+eSAXZectU/ijSDqxYnPsqLcxv9fNb1bkZg==","attributes":{"enabled":true,"nbf":1595969863,"exp":1627506463,"created":1595970463,"updated":1595970463,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970303,"updated":1595970452}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/pending"}}' + headers: + cache-control: + - no-cache + content-length: + - '2387' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/versions?api-version=7.1-preview + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/03ab7f35a5da4901963804d604c33ce8","x5t":"fXH5bzMk3eOao5WjYLZYHGlysQE","attributes":{"enabled":true,"nbf":1595969755,"exp":1627506355,"created":1595970355,"updated":1595970355},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/2e4d243ecbdd4c248e0cf40d65a9f1d9","x5t":"UAD_WtFBAx1cN1mpAbNg0EPPmCM","attributes":{"enabled":true,"nbf":1595969847,"exp":1627506447,"created":1595970447,"updated":1595970447},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/3cd87d2ad0c14d3595fc743adc48ec3e","x5t":"0dlXzif8pKdt4X90IjY_ObMqdFM","attributes":{"enabled":true,"nbf":1595969801,"exp":1627506401,"created":1595970401,"updated":1595970401},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/45d0138b92f14844a468cd28a6b8d8a9","x5t":"GsgG7jXzaWjevp7SmDliB-i2h_c","attributes":{"enabled":true,"nbf":1595969770,"exp":1627506370,"created":1595970370,"updated":1595970370},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/8aff8e692a854e7e9953e28fc79e5996","x5t":"zLiaKfhWse_TcSUuoyNx5v8DZxE","attributes":{"enabled":true,"nbf":1595969816,"exp":1627506416,"created":1595970417,"updated":1595970417},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/f00ee8250b2a45b1b2ff14ac241b364c","x5t":"zFG8eeriqHVAPFDY92lL28lsrY0","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/f39fb36730564152a1b7b14f12d4ef6a","x5t":"eYM4VUopZaClCK_fPK8oBFkAOu8","attributes":{"enabled":true,"nbf":1595969863,"exp":1627506463,"created":1595970463,"updated":1595970463},"subject":""}],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '1931' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/03ab7f35a5da4901963804d604c33ce8?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/03ab7f35a5da4901963804d604c33ce8","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/03ab7f35a5da4901963804d604c33ce8","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/03ab7f35a5da4901963804d604c33ce8","x5t":"fXH5bzMk3eOao5WjYLZYHGlysQE","cer":"MIIDNjCCAh6gAwIBAgIQWvu+YnDqR9++ttKfV1b94zANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTU1NVoXDTIxMDcyODIxMDU1NVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKOaPDNcGK2EYSf2joOFihJzCI18U3UmSJY+yzckzGjGkatg4qy2GVLotCGzF/ZtMVeO9OokPUwQgSiOOpKHM7A83xsYh0UWJ0sIyX2pEQK4nYMabl1DqFufmdVGyhnjonPiopMX6n6utaBNUW03s4ie9/gNqE4Jyuy5BNjjw92R8ZpYCDvpj0BbiHsAnxp7ChdJx0uZM2qVgMeREjVtBPKwiZ70xkR9zZlHYzo+iak/RRBpjLkkIaTYstgZ3GDcMW/s8GfKK07lPdZjeMCyrytDABL67Cd3hKLnf9lF97RI3TrKlsjawdDNhZEGowjT+DdmU9bh+pilGTutSw2sOLcCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDuED/xdc1s/s8+mH87me3T94bEgMB0GA1UdDgQWBBQ7hA/8XXNbP7PPph/O5nt0/eGxIDANBgkqhkiG9w0BAQsFAAOCAQEAoFPZu5Rdm6k2NRgv4gjongOhz3dnZN7tJFbah47WxWvhysSJD5gMfbxmYFwVO5CwMQF+gToChe59sNBZ8fE/7qQFt6HbLswHHMD3h4dUH9XXRupKrGvWedsToCt6w3kU1ZIw4Nsr20FVDgdVeeeDoLbJMjyngCHYBJI4Tq+Puita/h1AveCuITAMe9q2fkIzJUeqz6/n+haeLC9tzRxPcTshVVX/WUp6SDrGtasfPYNlmAtbWTe0sSuiL3czbaaBh1Vrm1PhK/LP76HZ/vNBh4sRx9+fXBTLdbqxPT1XuZNQOL7zamWMUHUfAdHtHozbrdPMKKs83YbKZ/AHDIlCmQ==","attributes":{"enabled":true,"nbf":1595969755,"exp":1627506355,"created":1595970355,"updated":1595970355,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/2e4d243ecbdd4c248e0cf40d65a9f1d9?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/2e4d243ecbdd4c248e0cf40d65a9f1d9","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/2e4d243ecbdd4c248e0cf40d65a9f1d9","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/2e4d243ecbdd4c248e0cf40d65a9f1d9","x5t":"UAD_WtFBAx1cN1mpAbNg0EPPmCM","cer":"MIIDNjCCAh6gAwIBAgIQa9k5Qu8/SjOgmMZikvDtZDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTcyN1oXDTIxMDcyODIxMDcyN1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFe7fYwGpDCtGM54swWnJB1WajRqnV4YV85qkNYloP1tnuFKavySvyyVwLHdXZC4XLaT5Z6LsILYWEC7AxdjZdUtbbWoxN+AdZIlmrTz8VCnP6vtnUPhabyDSLXihnA8FywSrqPvbEwfw/bWi59q8DmqGrqyAerw4YV+5I/mQ0ilyAT08+r14hbKh9F3SS9Sfq83nggm6f06sbOuQL9T6AXaqag96PXdI03ebTsPDBdoyKGlCnbQve2HxRXqCfSjqNd2oVvkSQIICoHX4QH6n+pEG3A8yqB6rb4DHDnkL5hQIW272+EZXf4sA4XG/gxBCCjM39ccf2J35L5n5wA+OsCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFGZINLLYUCUePFrzDeNHYHqgG5SVMB0GA1UdDgQWBBRmSDSy2FAlHjxa8w3jR2B6oBuUlTANBgkqhkiG9w0BAQsFAAOCAQEAqyu219SyFoj0LiMsCRNlXH4vtqJnCnzbzZizaXjx5uhYorXFw4tsQ2+LPDclnnK46nN/AYvqesS/PNA/GrJG90t+UTr/EV3njrxVw10AYJ0x08FZOSKO4r7azQPavt0yYYbVqgYGQMPcarW3W/npoPjB/A04wjkS5lG68T2Ic6TTPGTQ5kPlVieaMz2u4U7XLkq3T8Afn4U5RE13NkC79yOVhbbLszbb5g8vN6mEVhyfIfIPuHA9RY20U+N0+5LDqMftPaIaMOEvLVm0tHiMchHgyFA1VZPXEAlGRiAE6LY7eJWJIJY6yKwz4NrBZbgu69QUSRZ8+AfsRIFtD6N5/A==","attributes":{"enabled":true,"nbf":1595969847,"exp":1627506447,"created":1595970447,"updated":1595970447,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/3cd87d2ad0c14d3595fc743adc48ec3e?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/3cd87d2ad0c14d3595fc743adc48ec3e","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/3cd87d2ad0c14d3595fc743adc48ec3e","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/3cd87d2ad0c14d3595fc743adc48ec3e","x5t":"0dlXzif8pKdt4X90IjY_ObMqdFM","cer":"MIIDNjCCAh6gAwIBAgIQZJk1wi4bSQmsBfH3knkyNjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTY0MVoXDTIxMDcyODIxMDY0MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM96Z7wPX3UJ/P0mm61g2k7o0B0rBky6BqgVfQJzDoFSmMLZ4LBLH6/RVoXKW5aKsndRSBqqOUNSxYYmRbBMjEtzogvABJcTx9L1budhHHlsh1yg6JJenTLZWxDdSBtdgTCVUPcNbiUZbnxSvKqB+sKJd+cB9Vfclx3l1Bk+raE1A24iZFzZuMApjD6lv+7ersJ3LcmWt6qd68dKUKLH5g8W/bn9vFedRdzBd46HR12V8fGN+wjnPxFKtRU5sCknZYRXR/445EAwUFVB1dpN4YF2P+pppcRu8tH/JO4rVbbliQSMmE8aVB1cVnS2lkzObgZaG2f1ZDCSZPqbrYb8QEECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFGELQwIZkNRra8uUCKkYnxvPLECfMB0GA1UdDgQWBBRhC0MCGZDUa2vLlAipGJ8bzyxAnzANBgkqhkiG9w0BAQsFAAOCAQEAJsw2wwcPUYnFxvyUCVXT5hxa90bpndcIOgbz0SWJwZumii5VrKG0fm06SyTB/CQrII+t7RYHynBMJFpidqPGJW90WFLfyEPjVEl0YJh0Pdk85knhzet58RkdEseQrPto6LbSVaKgJIDJf0nd6tLmg3COsbq/UOYyUJOKkj1acYJtG6bZ5f7JijmPLkTDH/LEg43rpvhWbgyXUoje6eoHBijhlCBxGaOoWlPOzqDL9DwvGcts1w8FE2uaLrccrr0r7uOXDs2dqKR/U4hiEEKl7xf2QW+iI4ThPPHAPdz484Sc4GKvhTsdkwkPNgaP1m59Uo77UCMTjBOyleFmG/fSEA==","attributes":{"enabled":true,"nbf":1595969801,"exp":1627506401,"created":1595970401,"updated":1595970401,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/45d0138b92f14844a468cd28a6b8d8a9?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/45d0138b92f14844a468cd28a6b8d8a9","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/45d0138b92f14844a468cd28a6b8d8a9","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/45d0138b92f14844a468cd28a6b8d8a9","x5t":"GsgG7jXzaWjevp7SmDliB-i2h_c","cer":"MIIDNjCCAh6gAwIBAgIQHEHL5fnITp2J2cGqMXElkDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTYxMFoXDTIxMDcyODIxMDYxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANg1vqOFo0DGIJYnJOSmTZ+8Vvu18SnQxtxuVtPQ8ygg99lkljQMyO5klwDvB3Lyi/7FmHM6T7ojOzf91FmSv1jfra0XLpHhvWG1EMRc6OhXQcicpfTXRfMBsrStsxMXQZFFru8RD33OJdLIf0wUxOsmK7Hi7U6A5kYNmuXjTYJYQC9cC3bvh7pprY9J3zr8qZgkYYQAeWxELUzcPwBPL2e7+gTQO6SqYDaQiOhfPPzOm93W2A/0uCLuyFSCJ2S7XnRdR943rCvkz+zEAR7j3q+ZduhgFl9fz4jQRhlBtXVJpSS47gIvIKu3xafYOvcYRRys8OmLCKKLoUY4ADeRaXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDO6PwNFT+wMJSDz6H8tAVXDNdNYMB0GA1UdDgQWBBQzuj8DRU/sDCUg8+h/LQFVwzXTWDANBgkqhkiG9w0BAQsFAAOCAQEAkdsnKtezPCMojOQ8KdK0RXZi5yDRWkpMlT9M9u4qON6Cr2s0DE6IPXGBPM1BUzjd9se9AhKQygyoWKRyuy6qH8s/sOmsWLo6k2xgWyd9BBjZxRbHkbFleUd8vncl7WO1UbMJw+i7RG5zNV7KGEJQHBrvIfy1LBcKZUWZPdm085at1N6q8VBcR3LvQBqgQUzKcgfc/mPcY3NGnWxyZ4gPzGUrHRVnZlqCAlUCPKvE+hGiFvyGYrVEmag9VyHUwAY9yakMG0uajQEnTFHXj7w1tYsJUZylh9+uLVqppPctYNIHfzPZRqKOaqqjrspa0RioKrx6iMnb00dClrTnHuzUvg==","attributes":{"enabled":true,"nbf":1595969770,"exp":1627506370,"created":1595970370,"updated":1595970370,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/8aff8e692a854e7e9953e28fc79e5996?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/8aff8e692a854e7e9953e28fc79e5996","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/8aff8e692a854e7e9953e28fc79e5996","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/8aff8e692a854e7e9953e28fc79e5996","x5t":"zLiaKfhWse_TcSUuoyNx5v8DZxE","cer":"MIIDNjCCAh6gAwIBAgIQdwY+EpqXS0ybtHoP0Ka7MjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTY1NloXDTIxMDcyODIxMDY1NlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKtLNXZHTQ/uZ/yqwyYVvdvUvZm5kHvcRG6VLK9B82yXl03ONf5K0DsZ4zXfHL3a2TnAwuL/ygn79jcOAxdit81VxxiPuH7+u10pyEqaVXLEG8cdJN/n2kqOOlr4Urd+50lkjEXZkzda+cKumzyUw5ote7jgnfYsyRQ3wBhA2+DROLc11SfGz9PCvqE7+8fFOC7n7IWT/Apa4nhgQV7JLPVHE0xDkN6rxAHqU+Lu3wQDN+XOXsFr0GeYhoJhpJgFSjqn1+BGhuXv0KLuyIMA2O3oaicbqlDBYF/AX50zeAux7c0Decp7LZydgJIKsxT7FCC8wKyR/pZDrG4U5iKC3kcCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDpO46qj4GiVM25Ab9pCsKu7VY2VMB0GA1UdDgQWBBQ6TuOqo+BolTNuQG/aQrCru1WNlTANBgkqhkiG9w0BAQsFAAOCAQEAm1pp3cAE2k1AE9OQ3X1eKsDM1J2z9Bl8sIk0eSp9J6GwNqpDpwe05x1l7OWlJZA+HSgO0QXfQSdm3mdfClWZjyhEt7GPDO2d856OXvKI8GqrcfT4vbqj1JtATwLc3OxKj29z1q2xCTbKHCJexHStda1cay8v+BvLsoVS9vGRjd1V3jadsZkEVuU/FyQXhNywNlEpsbRLRZ+icaEic71XEE1XaWX5GulloplvtNS8jocWr+k/qmHqvz53TOJf8b2sxKzr1hnZIsdzB/4+NOS8+lrgAmD8C8eW6nLVLmc0HGAvSGftgaapWzjTM/nFn43VxKq2ggNvrhUUpv/Aaiz54A==","attributes":{"enabled":true,"nbf":1595969816,"exp":1627506416,"created":1595970417,"updated":1595970417,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/f00ee8250b2a45b1b2ff14ac241b364c?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/f00ee8250b2a45b1b2ff14ac241b364c","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/f00ee8250b2a45b1b2ff14ac241b364c","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/f00ee8250b2a45b1b2ff14ac241b364c","x5t":"zFG8eeriqHVAPFDY92lL28lsrY0","cer":"MIIDNjCCAh6gAwIBAgIQCjgjhOJOTZu/xdmBI3PdAjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1WbpJib9v6R7kS0VICHnJAb+IAjfAyRddwNmQMKgzl2RNRvkpACB3ddgGrkJt4NquZl0R6Q61G2Oe19HTWigyZkoOgWFUWm7IMVF9fHAjAYg6njLF3zcerp/BtzfecEpaMljn39QrvwmUMOP5q50YKyXVFovw2h0yfvz1DmK1xAGRsgCI4GBJSLD8m+O2TwALtTSPhmboQ2Mq99jEqhMUIYHQHCAN8sqz8RgAEm7/1xFYURBlYD3KgFlXA6HzXlAfdxpsgMVEkd+ogwXknUWGHUYwtSK1/qUNFBPDo/xmucVFw6T64gtUT3bTs33F6Fh/upWa7PsXnRPO9TjY2xIUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFAv8QWIsi5ImD9tjazk+A1uYNb9VMB0GA1UdDgQWBBQL/EFiLIuSJg/bY2s5PgNbmDW/VTANBgkqhkiG9w0BAQsFAAOCAQEAl1CHhbe8/u3o9yFvz7wAQ5bL2ZvuWqQ8gxBMxNDWyWOFAsYfCdlimCfxU8ZcrgatXJ1PBQPqV+DGNheQ50VKTCWoLo9yLScDwevxMAGLwprUbTzrZ4K9JJnnNaWlEcpdAzG1tQSaA3Z/khZs+RpzXlVBWvlqOEVs5GXndwsE+W/+GvgtpJmrEyKHk4MrmtaiSL4liUC+cgw8Gs9m6UNdCqHGuGHBO702Oe/87+CeShpuiXLRYIdnYEHsSG9BqaQZ+AcaXU/95jT26AfRrEaawDvVhvvK4PtNMgdXO7fZPKcCExhAmVCPCrnd0Bk9PCwJcQ4wG3dtQj2jl75mqVSaYg==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:48 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert4b4615c8/f39fb36730564152a1b7b14f12d4ef6a?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert4b4615c8/f39fb36730564152a1b7b14f12d4ef6a","kid":"https://vaultname.vault.azure.net/keys/cert4b4615c8/f39fb36730564152a1b7b14f12d4ef6a","sid":"https://vaultname.vault.azure.net/secrets/cert4b4615c8/f39fb36730564152a1b7b14f12d4ef6a","x5t":"eYM4VUopZaClCK_fPK8oBFkAOu8","cer":"MIIDNjCCAh6gAwIBAgIQRskZ8HttTGyx+fE73luXyjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTc0M1oXDTIxMDcyODIxMDc0M1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJlFRMYRcdXqSjnRIbomMbqbYpFQcQ2Y5H/40IgfWn6VZ9fi4oTMiwnOLaRCCUTlxZk7lC7tUw/1Qz9GQl9ynZRb4pxyfitpbnJR6cIbnrumMn3RrljsPmCKqBGDs5sqdsoitTg8+NpUywKHSQdzPnnZqO/qm90/TjHzCf+/bHeMcs1/xOgTj2uEBkTrLEvIgn8gcR/wBafir4wQe1od125aE+bfyuwzaygZkODpLvfRO20TZOOckdqLh6geMC+Xv8pt0yFLZZF//vuA57l/BK3gFokeY0VbXwwhXMcUZgo1XApazC+Bolwgn5G0qLh+8mtIrMvS9Ud3uTAMpRIIh4MCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLJX+SmAMZEIh2f8gx1LWTv069rOMB0GA1UdDgQWBBSyV/kpgDGRCIdn/IMdS1k79OvazjANBgkqhkiG9w0BAQsFAAOCAQEAXGqW0fz/nb/f8zIlOASoqDWFG9fKg8JlXYfvrVlIOGL8mQtPvRZlQxiNelrT+UDQk26EjQ4SAZc/I3CZZt/Caom50Vkzo1m6WqYVJDp4EO9MrATnTGNom36gTAP5kzCJKo4EYtSv3EYnxYhUadOXQLvXS5rW10M/sQXtNQCnBVbPsZiJ/HwByMjXE1M6jBQviwsi2BwzZ677jM11DVoks64Ynwxn1DBFQfq1Nr4tCc0dgYpveT+cnUDlih3Zb4BLe99x6l4HIBd0RxX/2hN4fH2Ab/8O3AYjT/fbRT2C2tBuOavnC2H+eSAXZectU/ijSDqxYnPsqLcxv9fNb1bkZg==","attributes":{"enabled":true,"nbf":1595969863,"exp":1627506463,"created":1595970463,"updated":1595970463,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '1651' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 21:07:48 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_lst_versions.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_lst_versions.yaml deleted file mode 100644 index 263e3ee8ca30..000000000000 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_lst_versions.yaml +++ /dev/null @@ -1,428 +0,0 @@ -interactions: -- request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '3339' - Content-Type: - - application/json; charset=utf-8 - User-Agent: - - python/3.7.2 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b1 azsdk-python-azure-keyvault/7.0 - method: POST - uri: https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/import?api-version=7.0 - response: - body: - string: '{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/ef910c91df49425ab0909f847c971ea2","kid":"https://vault74b5116c.vault.azure.net/keys/certver74b5116c/ef910c91df49425ab0909f847c971ea2","sid":"https://vault74b5116c.vault.azure.net/secrets/certver74b5116c/ef910c91df49425ab0909f847c971ea2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110297,"updated":1562110297,"recoveryLevel":"Purgeable"},"policy":{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1562110297,"updated":1562110297}}}' - headers: - cache-control: - - no-cache - content-length: - - '1802' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 02 Jul 2019 23:31:38 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Microsoft-IIS/10.0 - strict-transport-security: - - max-age=31536000;includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-content-type-options: - - nosniff - x-ms-keyvault-network-info: - - addr=131.107.160.26;act_addr_fam=InterNetwork; - x-ms-keyvault-region: - - westus - x-ms-keyvault-service-version: - - 1.1.0.872 - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -- request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '3339' - Content-Type: - - application/json; charset=utf-8 - User-Agent: - - python/3.7.2 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b1 azsdk-python-azure-keyvault/7.0 - method: POST - uri: https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/import?api-version=7.0 - response: - body: - string: '{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/ea9afeaafc0e4257a5cf430725877245","kid":"https://vault74b5116c.vault.azure.net/keys/certver74b5116c/ea9afeaafc0e4257a5cf430725877245","sid":"https://vault74b5116c.vault.azure.net/secrets/certver74b5116c/ea9afeaafc0e4257a5cf430725877245","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110298,"updated":1562110298,"recoveryLevel":"Purgeable"},"policy":{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1562110297,"updated":1562110298}}}' - headers: - cache-control: - - no-cache - content-length: - - '1802' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 02 Jul 2019 23:31:38 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Microsoft-IIS/10.0 - strict-transport-security: - - max-age=31536000;includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-content-type-options: - - nosniff - x-ms-keyvault-network-info: - - addr=131.107.160.26;act_addr_fam=InterNetwork; - x-ms-keyvault-region: - - westus - x-ms-keyvault-service-version: - - 1.1.0.872 - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -- request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '3339' - Content-Type: - - application/json; charset=utf-8 - User-Agent: - - python/3.7.2 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b1 azsdk-python-azure-keyvault/7.0 - method: POST - uri: https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/import?api-version=7.0 - response: - body: - string: '{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/447e151392b641c29cf8b42805d27d8f","kid":"https://vault74b5116c.vault.azure.net/keys/certver74b5116c/447e151392b641c29cf8b42805d27d8f","sid":"https://vault74b5116c.vault.azure.net/secrets/certver74b5116c/447e151392b641c29cf8b42805d27d8f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110299,"updated":1562110299,"recoveryLevel":"Purgeable"},"policy":{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1562110297,"updated":1562110299}}}' - headers: - cache-control: - - no-cache - content-length: - - '1802' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 02 Jul 2019 23:31:39 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Microsoft-IIS/10.0 - strict-transport-security: - - max-age=31536000;includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-content-type-options: - - nosniff - x-ms-keyvault-network-info: - - addr=131.107.160.26;act_addr_fam=InterNetwork; - x-ms-keyvault-region: - - westus - x-ms-keyvault-service-version: - - 1.1.0.872 - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -- request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '3339' - Content-Type: - - application/json; charset=utf-8 - User-Agent: - - python/3.7.2 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b1 azsdk-python-azure-keyvault/7.0 - method: POST - uri: https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/import?api-version=7.0 - response: - body: - string: '{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/06c17c5072114f4db7f93273f5c0c4b6","kid":"https://vault74b5116c.vault.azure.net/keys/certver74b5116c/06c17c5072114f4db7f93273f5c0c4b6","sid":"https://vault74b5116c.vault.azure.net/secrets/certver74b5116c/06c17c5072114f4db7f93273f5c0c4b6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110299,"updated":1562110299,"recoveryLevel":"Purgeable"},"policy":{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1562110297,"updated":1562110299}}}' - headers: - cache-control: - - no-cache - content-length: - - '1802' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 02 Jul 2019 23:31:39 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Microsoft-IIS/10.0 - strict-transport-security: - - max-age=31536000;includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-content-type-options: - - nosniff - x-ms-keyvault-network-info: - - addr=131.107.160.26;act_addr_fam=InterNetwork; - x-ms-keyvault-region: - - westus - x-ms-keyvault-service-version: - - 1.1.0.872 - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -- request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '3339' - Content-Type: - - application/json; charset=utf-8 - User-Agent: - - python/3.7.2 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b1 azsdk-python-azure-keyvault/7.0 - method: POST - uri: https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/import?api-version=7.0 - response: - body: - string: '{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/cb8748730cbb4c58af71535f52519a7a","kid":"https://vault74b5116c.vault.azure.net/keys/certver74b5116c/cb8748730cbb4c58af71535f52519a7a","sid":"https://vault74b5116c.vault.azure.net/secrets/certver74b5116c/cb8748730cbb4c58af71535f52519a7a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110300,"updated":1562110300,"recoveryLevel":"Purgeable"},"policy":{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1562110297,"updated":1562110300}}}' - headers: - cache-control: - - no-cache - content-length: - - '1802' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 02 Jul 2019 23:31:39 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Microsoft-IIS/10.0 - strict-transport-security: - - max-age=31536000;includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-content-type-options: - - nosniff - x-ms-keyvault-network-info: - - addr=131.107.160.26;act_addr_fam=InterNetwork; - x-ms-keyvault-region: - - westus - x-ms-keyvault-service-version: - - 1.1.0.872 - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -- request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '3339' - Content-Type: - - application/json; charset=utf-8 - User-Agent: - - python/3.7.2 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b1 azsdk-python-azure-keyvault/7.0 - method: POST - uri: https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/import?api-version=7.0 - response: - body: - string: '{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/1d26f8d39dc04660bc77246e5ce6950c","kid":"https://vault74b5116c.vault.azure.net/keys/certver74b5116c/1d26f8d39dc04660bc77246e5ce6950c","sid":"https://vault74b5116c.vault.azure.net/secrets/certver74b5116c/1d26f8d39dc04660bc77246e5ce6950c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110300,"updated":1562110300,"recoveryLevel":"Purgeable"},"policy":{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1562110297,"updated":1562110300}}}' - headers: - cache-control: - - no-cache - content-length: - - '1802' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 02 Jul 2019 23:31:40 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Microsoft-IIS/10.0 - strict-transport-security: - - max-age=31536000;includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-content-type-options: - - nosniff - x-ms-keyvault-network-info: - - addr=131.107.160.26;act_addr_fam=InterNetwork; - x-ms-keyvault-region: - - westus - x-ms-keyvault-service-version: - - 1.1.0.872 - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -- request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '3339' - Content-Type: - - application/json; charset=utf-8 - User-Agent: - - python/3.7.2 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b1 azsdk-python-azure-keyvault/7.0 - method: POST - uri: https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/import?api-version=7.0 - response: - body: - string: '{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/69da2ff6abd145a3a9d1ad352fcbdd90","kid":"https://vault74b5116c.vault.azure.net/keys/certver74b5116c/69da2ff6abd145a3a9d1ad352fcbdd90","sid":"https://vault74b5116c.vault.azure.net/secrets/certver74b5116c/69da2ff6abd145a3a9d1ad352fcbdd90","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110300,"updated":1562110300,"recoveryLevel":"Purgeable"},"policy":{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1562110297,"updated":1562110300}}}' - headers: - cache-control: - - no-cache - content-length: - - '1802' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 02 Jul 2019 23:31:40 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Microsoft-IIS/10.0 - strict-transport-security: - - max-age=31536000;includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-content-type-options: - - nosniff - x-ms-keyvault-network-info: - - addr=131.107.160.26;act_addr_fam=InterNetwork; - x-ms-keyvault-region: - - westus - x-ms-keyvault-service-version: - - 1.1.0.872 - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python/3.7.2 (Windows-10-10.0.18362-SP0) azure-core/1.0.0b1 azsdk-python-azure-keyvault/7.0 - method: GET - uri: https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/versions?api-version=7.0 - response: - body: - string: '{"value":[{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/06c17c5072114f4db7f93273f5c0c4b6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110299,"updated":1562110299},"subject":""},{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/1d26f8d39dc04660bc77246e5ce6950c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110300,"updated":1562110300},"subject":""},{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/447e151392b641c29cf8b42805d27d8f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110299,"updated":1562110299},"subject":""},{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/69da2ff6abd145a3a9d1ad352fcbdd90","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110300,"updated":1562110300},"subject":""},{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/cb8748730cbb4c58af71535f52519a7a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110300,"updated":1562110300},"subject":""},{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/ea9afeaafc0e4257a5cf430725877245","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110298,"updated":1562110298},"subject":""},{"id":"https://vault74b5116c.vault.azure.net/certificates/certver74b5116c/ef910c91df49425ab0909f847c971ea2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1562110297,"updated":1562110297},"subject":""}],"nextLink":null}' - headers: - cache-control: - - no-cache - content-length: - - '1875' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 02 Jul 2019 23:31:40 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Microsoft-IIS/10.0 - strict-transport-security: - - max-age=31536000;includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-content-type-options: - - nosniff - x-ms-keyvault-network-info: - - addr=131.107.160.26;act_addr_fam=InterNetwork; - x-ms-keyvault-region: - - westus - x-ms-keyvault-service-version: - - 1.1.0.872 - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_get_certificate_version.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_get_certificate_version.yaml new file mode 100644 index 000000000000..2adae3aff774 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_get_certificate_version.yaml @@ -0,0 +1,2127 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer + or PoP token."}}' + headers: + cache-control: no-cache + content-length: '87' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMKhifF0iXcdMPvppglmNp7IpplaxrSs6j9dqEwQK8sgMMauomdwh80gA9iCVmV6Pls8JJNs0Dr8QUZV0oPboL0pD/GWnDTXKKpdjFgDUG8+J2KtIN6FP2VdHeeAj7frluoyazXwmMr1AJ8tuK0CNGbcMf8pSlFgL9w4ujgB36nb8ZRopdiDznvfK9X18cM7peFTODdX/oWyP2e3zU4AQPNYDCf4xI7X7+e7+QJGdjq8YR7hT/75BbRLSH6bmSUD67SQB4h5R3SaA7ExsdCp5/YxY/79s7YN7DwUIg0Fsch9YpjaCBHx8M/60xGNkfc+t/EIuPM5U7uB+cxpsws9PPUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCYzLH3pl/aOoOhWI0SD1nVLwQv5WdyRHHyp0YFBGxRCGwiDFOniFhULAlFWodat/olCGRlRV+IVDvUcIvLulnl5j0Yx4iSpOF0GdsuAZdnmnVbAYBXlO1XMVyC+KuYKXi62vq9bVndfYuQx9ScCrlfHKFfKygjc9q7RWu+x0o4ckdVxf1EkXGU7GBh2YrxqrHV7SNTYpAtK6cIeyMAhmnA0lk5iUpgdExdAMYzli80/QDMtcWhaBMzWKBJUc9axPvENjfk8IJ6yqVr97s8PMxuYmbz/Xhm+hDrAYkWps2VJI4SvGKwZl1S+NH58SmzzgHpXz3/qQCO9R0//h/6crxZ","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"c7dc025386264c92b74dcd29b0546575"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:04 GMT + expires: '-1' + location: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview&request_id=c7dc025386264c92b74dcd29b0546575 + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMANn74mvJlTubP16VihNAyjmveZutSZPFGsuylZiRvgoxEM+33aoFt7LfSK7IT0OyNPOMGRFPuEtShrthoRuoVkgEoeJwy8wYpRkpfq9HWT5OvJp8+XYBQxJtUNWRs6jTUiQTT7BE/4mXqilb+usL6Y5heyTeZ7DnFtNP5DRM3k8d9xiBwCdIEWGOJThmFiwcCzYQZkPry81pFiIaj5CiUygF8zmqbvtRwmd6jChGFWVtG2qL7MU2app0QJY+5vBz2ar3PMQAQw1rVq9lkqg8TMtvCoX5yhOz1F7ru8oeS/1ndlezzuSc/i9RGyp2xLf0V+is2LUYDd3VbUkoDTqdUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCnWNNBcZAqbx5LTKKBApv6ZmeldA7Qu5h/X7lxc3AJBtFUrNFyhGrSiCLcH1assMzFPGiWPv9HQaWW0BdElAS+8LppyVVNsk2QNHshfeWf2Idm1byiOwnkEncSA9bEfmihBzqB/CzJlGo05eUpHmoFxN66Z7HwrOgmpoIyNZ1/hak7gPRUGTN+iAH135r7jvTMJcW+Vrc21cVbLLHq+btbMCE9XefcJBOAXz39u1Yj6p0fCUE3FZVk5elhL2JD4kbDhw8wIJxa/5VE+KajxjOKIKGb5QE0kmjE9C4gfAXKWvwDIBrGf0y79Ekjsxif5y+kDDQ1P/PWSzAILLGLojZt","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"36382667ffd44018bcab416f8e1e3aaa"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:04 GMT + expires: '-1' + location: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview&request_id=36382667ffd44018bcab416f8e1e3aaa + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALTx1ubiJ+/YITh7kACZV7zDMLCLlfs1jSGjjt2ulcFIr3Rp1U3iqg+qoPDewSHo2QgfkBH+iqzMTGrmFy43EiHUHTgynVr3YW67m+qlm+T6J1DAjCZIPPuennvbhEvYWT28wi2qECT3+pU+jwXzXwHxbvACUI622dcA3HglZYtQczkFFSsNTYXwx4bYU/6dr1e1K3Edk5R3GBtbXzFVSQZMq5dUdQxrTD6GZvMvCaje82SQw6p2uTkF5XTG6zytk1pNnl0OObonyrBBzfkPBEZ8yUK0n+BK/XAk1srsEuXA3/lokuG795FejnHszhA8F/Mf5B+sITQ9hZmBoVnnwl8CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAM4YLO9LGyALh4brNCgpqijz77NQ+YUDSo/vebnRgX4sYBaxOxPVcjy0XZar/oti36UuIUZjHvwDoJajbLaaTpkO3QuvDbayHtUpaNnv9tkom0opR+qz4vTvj5Trv5NxEw0fVOTnxrfF7+GT8Gj1VY6sIM7N+MMxyWIDPUh8iSc7AemrhiilLHmvzrBE7QxeypLPzAr6TG+vmSVk7QDt/4CBDWn3EcNwQP2DRwWRVHxlkGXnTkkmulU3tTsxjJ+WvYjm37NnyQExC5lEKL+pFxYxfVgXuUGP3XD0FNzxrd3/f020d1rN8ky+FpPoSXwWs8s0+IaSexKqKyJ5ac3Pmn","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"e5b33a1542694bcc92d6ba09e54e10e1"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:05 GMT + expires: '-1' + location: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview&request_id=e5b33a1542694bcc92d6ba09e54e10e1 + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKuQJCH2iR+bGvjF4WFJeH8lzgY9P9AzaCWS6X2t9eVmUeRh2wBekFaGmQLGTdCjWT7tF9ssfg7w0/IWGudeIufCS3MN0sLaT3U9veApgbRNoqEXMoagUYealtJroYdb4EvCC8rfWu6J+U7IErvQxpwcl1gAKM0pGb4P7Y0rqsEnBsLPtLwuyGADqo5zcDkB4wq72tr5jg57vjcqaYpKR8pe3VOtIR4T7/6Y5ZLLQy/8lDK83omzMpQqXuPWpskPE2JbpZDB1IamGfl5RQUPifDywB9K644dvzQqlPe3lIVWxydwCT5vIfhyvUJxkvydrokLh/Ig4RZm+5c0fu67E9sCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCH5ModBk3/5jaYhiesncsA6WdiCRX2MNaBcYBV2PRHRlR3ZBjdhege1pm2By1xDBQmpgtndzTBrYOuqsUoCJ7TjulF2/MiX9knQmz44ynMmAQ1cQPOKYXQaQvv4v9nf8oi1awim98sSoYZbU7FN871fvFrw/AFcNJLpck4cGJG73fYtPMsOtyTThQGm0DeL0NIT2XyCCawSC9TwGf/Hu3Dc7/1jB+3MF8wvQ4QNLZwsajpasIqxyR6JjZRfflWLtD/DDwv56qWyzP3hlQ+y+Esr6xk9JQaUKgW+nV2ml844gxyDstMB+SIozunsZ36yqZu+Ui0i6A0nb6DS5rCxtPO","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"96f04f0b5eb449c9a273dc2aac4b3074"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:05 GMT + expires: '-1' + location: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview&request_id=96f04f0b5eb449c9a273dc2aac4b3074 + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHn1Ae3ma7YnxNsjtzMv75ECoeRp21r+iV2zkIbXKoGTmQSqyuPMK7UIP4UNbAVzrxF0AnwJ40IhxSkg7P2ywV1Afm/nR81DHvL9JXmzocbHV4w+hD/3IxEoZJPLjiyFgGt3ybxNp4jCdOv35FQAX5lFs6BoOTyebcbTB6meqlv6dMvb0nfjRNKjOF4wTa+uHPq2tOTA45IfaYH4lvRHMAqQMNt7qigMwZHBOginw8l1m4IRZhN8fVL3KiVfng2J4Li/VpAnN0dfKGfbNid03pzwdaut5Ruh0Tm2WpE2wm7RINcz/OypouaWi0iB+TpQ4HoUYfcEzfqjDEBK1zDgHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAJDYkqhoGtWXKuP+dkd8N0pzalmkYPraIYfOprP++TTF+XwPiV7I9QO6vN72qBOvOaCPJfsjgS8L9dedkruAOQNCntueqKLX4tL2usglZra1i9KWy42JHqsRkMJwr6XL+Z9Riyiv+SV2HFou7+oemUqi5F1pdh6nWVkApxdsGgTVRXOmDIZ49spfq37FI1t7p2ETjnL3yF8zP9+lbTtjZl8PdO8T0HWDQZj0NpobLk+K17yQqUfFe83QMAjTV6sM+cznDBveURA+YVUUbzhars97b+SmnBOnoeZouJW6XkkOokL5MpsNWcpdl+UQhu/MKerBn+C+/FkEkglqhWv6wM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"e1c14daea834481d8cecca9cf724425b"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:04 GMT + expires: '-1' + location: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview&request_id=e1c14daea834481d8cecca9cf724425b + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOuBjDZ+4XwQyKpEGZHh7haqVoav1R3ZgdubErM+E1m2CeGjeQ1zV/zUilXYje6nRGb85hgvfi0HMJpSKodsSoy0CT4A1n7Y9dxZq+hmozz8mKzm2kSN0tUnMotatbZ3qb644cLu6E8mqH6QF4I+iAGbb7JXjLSYZbCwyA31I+/XScvxUX+xVxPYkmmwxYsqVeltez3VrmJpC7XdBfTE6D1wDyNAxKc6c22cqrcAPe2xGgghwCi7KL0gO2oh5enOKObbmCO3GOFvt+RlU0uipMBpf9Ny0wdNA9BzdwM0kBorQb8TiW40B0K648hjIs8R0FOZirEWxXuiGVJRRVn0eBUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC1+V4oCQN+hc53ja6lGPXtMP4ApIHN0KWGL+SHK2v0SJNR4BcHn5IrSZ/kBxYM+4gx5HlOHQQZ5KE6QI4pQSiKmN7fVVATF4IhaZsWJ4D5QYrW4udwQ9Am+u1JHf0Y31wM+cnreNZvO+VUXo24c7Dlvn7V/b2xCFgDRol6rUsN0X2TRA4+aAWS6xqhBCqzBm9jjnZtdxLxq4jAeRlyI0vcrZOOSTPZ1Z+UZQsLomX5HC/X9ndP+gmA5y/ORexruiQNdjtljZAziY3+wOts+lqeZ06pEd+zL+uGcGMWN9JMqYLslfs7ZjVKJcioatnGhjKCGMyyuuwHNJVc9kmuBnRo","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"f1b1a7a2763c45b3afd9480be69663cd"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:05 GMT + expires: '-1' + location: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview&request_id=f1b1a7a2763c45b3afd9480be69663cd + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHn1Ae3ma7YnxNsjtzMv75ECoeRp21r+iV2zkIbXKoGTmQSqyuPMK7UIP4UNbAVzrxF0AnwJ40IhxSkg7P2ywV1Afm/nR81DHvL9JXmzocbHV4w+hD/3IxEoZJPLjiyFgGt3ybxNp4jCdOv35FQAX5lFs6BoOTyebcbTB6meqlv6dMvb0nfjRNKjOF4wTa+uHPq2tOTA45IfaYH4lvRHMAqQMNt7qigMwZHBOginw8l1m4IRZhN8fVL3KiVfng2J4Li/VpAnN0dfKGfbNid03pzwdaut5Ruh0Tm2WpE2wm7RINcz/OypouaWi0iB+TpQ4HoUYfcEzfqjDEBK1zDgHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAJDYkqhoGtWXKuP+dkd8N0pzalmkYPraIYfOprP++TTF+XwPiV7I9QO6vN72qBOvOaCPJfsjgS8L9dedkruAOQNCntueqKLX4tL2usglZra1i9KWy42JHqsRkMJwr6XL+Z9Riyiv+SV2HFou7+oemUqi5F1pdh6nWVkApxdsGgTVRXOmDIZ49spfq37FI1t7p2ETjnL3yF8zP9+lbTtjZl8PdO8T0HWDQZj0NpobLk+K17yQqUfFe83QMAjTV6sM+cznDBveURA+YVUUbzhars97b+SmnBOnoeZouJW6XkkOokL5MpsNWcpdl+UQhu/MKerBn+C+/FkEkglqhWv6wM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"e1c14daea834481d8cecca9cf724425b"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHn1Ae3ma7YnxNsjtzMv75ECoeRp21r+iV2zkIbXKoGTmQSqyuPMK7UIP4UNbAVzrxF0AnwJ40IhxSkg7P2ywV1Afm/nR81DHvL9JXmzocbHV4w+hD/3IxEoZJPLjiyFgGt3ybxNp4jCdOv35FQAX5lFs6BoOTyebcbTB6meqlv6dMvb0nfjRNKjOF4wTa+uHPq2tOTA45IfaYH4lvRHMAqQMNt7qigMwZHBOginw8l1m4IRZhN8fVL3KiVfng2J4Li/VpAnN0dfKGfbNid03pzwdaut5Ruh0Tm2WpE2wm7RINcz/OypouaWi0iB+TpQ4HoUYfcEzfqjDEBK1zDgHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAJDYkqhoGtWXKuP+dkd8N0pzalmkYPraIYfOprP++TTF+XwPiV7I9QO6vN72qBOvOaCPJfsjgS8L9dedkruAOQNCntueqKLX4tL2usglZra1i9KWy42JHqsRkMJwr6XL+Z9Riyiv+SV2HFou7+oemUqi5F1pdh6nWVkApxdsGgTVRXOmDIZ49spfq37FI1t7p2ETjnL3yF8zP9+lbTtjZl8PdO8T0HWDQZj0NpobLk+K17yQqUfFe83QMAjTV6sM+cznDBveURA+YVUUbzhars97b+SmnBOnoeZouJW6XkkOokL5MpsNWcpdl+UQhu/MKerBn+C+/FkEkglqhWv6wM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"e1c14daea834481d8cecca9cf724425b"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHn1Ae3ma7YnxNsjtzMv75ECoeRp21r+iV2zkIbXKoGTmQSqyuPMK7UIP4UNbAVzrxF0AnwJ40IhxSkg7P2ywV1Afm/nR81DHvL9JXmzocbHV4w+hD/3IxEoZJPLjiyFgGt3ybxNp4jCdOv35FQAX5lFs6BoOTyebcbTB6meqlv6dMvb0nfjRNKjOF4wTa+uHPq2tOTA45IfaYH4lvRHMAqQMNt7qigMwZHBOginw8l1m4IRZhN8fVL3KiVfng2J4Li/VpAnN0dfKGfbNid03pzwdaut5Ruh0Tm2WpE2wm7RINcz/OypouaWi0iB+TpQ4HoUYfcEzfqjDEBK1zDgHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAJDYkqhoGtWXKuP+dkd8N0pzalmkYPraIYfOprP++TTF+XwPiV7I9QO6vN72qBOvOaCPJfsjgS8L9dedkruAOQNCntueqKLX4tL2usglZra1i9KWy42JHqsRkMJwr6XL+Z9Riyiv+SV2HFou7+oemUqi5F1pdh6nWVkApxdsGgTVRXOmDIZ49spfq37FI1t7p2ETjnL3yF8zP9+lbTtjZl8PdO8T0HWDQZj0NpobLk+K17yQqUfFe83QMAjTV6sM+cznDBveURA+YVUUbzhars97b+SmnBOnoeZouJW6XkkOokL5MpsNWcpdl+UQhu/MKerBn+C+/FkEkglqhWv6wM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"e1c14daea834481d8cecca9cf724425b"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHn1Ae3ma7YnxNsjtzMv75ECoeRp21r+iV2zkIbXKoGTmQSqyuPMK7UIP4UNbAVzrxF0AnwJ40IhxSkg7P2ywV1Afm/nR81DHvL9JXmzocbHV4w+hD/3IxEoZJPLjiyFgGt3ybxNp4jCdOv35FQAX5lFs6BoOTyebcbTB6meqlv6dMvb0nfjRNKjOF4wTa+uHPq2tOTA45IfaYH4lvRHMAqQMNt7qigMwZHBOginw8l1m4IRZhN8fVL3KiVfng2J4Li/VpAnN0dfKGfbNid03pzwdaut5Ruh0Tm2WpE2wm7RINcz/OypouaWi0iB+TpQ4HoUYfcEzfqjDEBK1zDgHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAJDYkqhoGtWXKuP+dkd8N0pzalmkYPraIYfOprP++TTF+XwPiV7I9QO6vN72qBOvOaCPJfsjgS8L9dedkruAOQNCntueqKLX4tL2usglZra1i9KWy42JHqsRkMJwr6XL+Z9Riyiv+SV2HFou7+oemUqi5F1pdh6nWVkApxdsGgTVRXOmDIZ49spfq37FI1t7p2ETjnL3yF8zP9+lbTtjZl8PdO8T0HWDQZj0NpobLk+K17yQqUfFe83QMAjTV6sM+cznDBveURA+YVUUbzhars97b+SmnBOnoeZouJW6XkkOokL5MpsNWcpdl+UQhu/MKerBn+C+/FkEkglqhWv6wM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"e1c14daea834481d8cecca9cf724425b"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHn1Ae3ma7YnxNsjtzMv75ECoeRp21r+iV2zkIbXKoGTmQSqyuPMK7UIP4UNbAVzrxF0AnwJ40IhxSkg7P2ywV1Afm/nR81DHvL9JXmzocbHV4w+hD/3IxEoZJPLjiyFgGt3ybxNp4jCdOv35FQAX5lFs6BoOTyebcbTB6meqlv6dMvb0nfjRNKjOF4wTa+uHPq2tOTA45IfaYH4lvRHMAqQMNt7qigMwZHBOginw8l1m4IRZhN8fVL3KiVfng2J4Li/VpAnN0dfKGfbNid03pzwdaut5Ruh0Tm2WpE2wm7RINcz/OypouaWi0iB+TpQ4HoUYfcEzfqjDEBK1zDgHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAJDYkqhoGtWXKuP+dkd8N0pzalmkYPraIYfOprP++TTF+XwPiV7I9QO6vN72qBOvOaCPJfsjgS8L9dedkruAOQNCntueqKLX4tL2usglZra1i9KWy42JHqsRkMJwr6XL+Z9Riyiv+SV2HFou7+oemUqi5F1pdh6nWVkApxdsGgTVRXOmDIZ49spfq37FI1t7p2ETjnL3yF8zP9+lbTtjZl8PdO8T0HWDQZj0NpobLk+K17yQqUfFe83QMAjTV6sM+cznDBveURA+YVUUbzhars97b+SmnBOnoeZouJW6XkkOokL5MpsNWcpdl+UQhu/MKerBn+C+/FkEkglqhWv6wM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"e1c14daea834481d8cecca9cf724425b"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHn1Ae3ma7YnxNsjtzMv75ECoeRp21r+iV2zkIbXKoGTmQSqyuPMK7UIP4UNbAVzrxF0AnwJ40IhxSkg7P2ywV1Afm/nR81DHvL9JXmzocbHV4w+hD/3IxEoZJPLjiyFgGt3ybxNp4jCdOv35FQAX5lFs6BoOTyebcbTB6meqlv6dMvb0nfjRNKjOF4wTa+uHPq2tOTA45IfaYH4lvRHMAqQMNt7qigMwZHBOginw8l1m4IRZhN8fVL3KiVfng2J4Li/VpAnN0dfKGfbNid03pzwdaut5Ruh0Tm2WpE2wm7RINcz/OypouaWi0iB+TpQ4HoUYfcEzfqjDEBK1zDgHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAJDYkqhoGtWXKuP+dkd8N0pzalmkYPraIYfOprP++TTF+XwPiV7I9QO6vN72qBOvOaCPJfsjgS8L9dedkruAOQNCntueqKLX4tL2usglZra1i9KWy42JHqsRkMJwr6XL+Z9Riyiv+SV2HFou7+oemUqi5F1pdh6nWVkApxdsGgTVRXOmDIZ49spfq37FI1t7p2ETjnL3yF8zP9+lbTtjZl8PdO8T0HWDQZj0NpobLk+K17yQqUfFe83QMAjTV6sM+cznDBveURA+YVUUbzhars97b+SmnBOnoeZouJW6XkkOokL5MpsNWcpdl+UQhu/MKerBn+C+/FkEkglqhWv6wM","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"e1c14daea834481d8cecca9cf724425b"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: '{"policy": {"x509_props": {"subject": "CN=DefaultPolicy", "sans": {}}, + "issuer": {"name": "Self"}}}' + headers: + Accept: + - application/json + Content-Length: + - '99' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:05 GMT + expires: '-1' + location: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview&request_id=3737a5a2130c4f24952c055d21316a67 + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/create?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:14 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:14 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1302' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certd7bc1845","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1223' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certd7bc1845","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1223' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certd7bc1845","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1223' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","kid":"https://vaultname.vault.azure.net/keys/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","sid":"https://vaultname.vault.azure.net/secrets/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","cer":"MIIDNjCCAh6gAwIBAgIQLiGzI5pJR3Wi7FgKqSkwEjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNoDXxo7VvDC83oDfLXEAIfRgQw7MB0GA1UdDgQWBBTaA18aO1bwwvN6A3y1xACH0YEMOzANBgkqhkiG9w0BAQsFAAOCAQEAftBJfdE18JPzMH8bL1uXNzU4U5285UPUjKxMFZRdPy5a3bh7auboZnykjSSZ9EUBQgPvnmhNjDJvv0obscdlMfH3ulgYBIQJwwcLSdrsUGODNh0DJBHOXWq/8JanUod+o7q/UVfFYnpCQlyPPx9T6uYjSq2zoGct+puAMWuvPBkBiA0FfW4oWMYEq95bIOPA0QBLkA7V0YEa7KSN6jMYrEQ5HGWnzjy5ZyaQziOEPUtIQecIYyVZ4MDJfJMv6cjk5v1cAQsYIqu3qLEYYeF99B6npwz4MLf2mGo+tEVRy4rIWm0KlLI1nmvKR55MxsvvRr62VUeM13uaG5i47nQlag==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970305,"updated":1595970305}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending"}}' + headers: + cache-control: no-cache + content-length: '2387' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certd7bc1845","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1223' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certd7bc1845","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1223' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","kid":"https://vaultname.vault.azure.net/keys/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","sid":"https://vaultname.vault.azure.net/secrets/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","cer":"MIIDNjCCAh6gAwIBAgIQLiGzI5pJR3Wi7FgKqSkwEjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNoDXxo7VvDC83oDfLXEAIfRgQw7MB0GA1UdDgQWBBTaA18aO1bwwvN6A3y1xACH0YEMOzANBgkqhkiG9w0BAQsFAAOCAQEAftBJfdE18JPzMH8bL1uXNzU4U5285UPUjKxMFZRdPy5a3bh7auboZnykjSSZ9EUBQgPvnmhNjDJvv0obscdlMfH3ulgYBIQJwwcLSdrsUGODNh0DJBHOXWq/8JanUod+o7q/UVfFYnpCQlyPPx9T6uYjSq2zoGct+puAMWuvPBkBiA0FfW4oWMYEq95bIOPA0QBLkA7V0YEa7KSN6jMYrEQ5HGWnzjy5ZyaQziOEPUtIQecIYyVZ4MDJfJMv6cjk5v1cAQsYIqu3qLEYYeF99B6npwz4MLf2mGo+tEVRy4rIWm0KlLI1nmvKR55MxsvvRr62VUeM13uaG5i47nQlag==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970305,"updated":1595970305}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending"}}' + headers: + cache-control: no-cache + content-length: '2387' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","kid":"https://vaultname.vault.azure.net/keys/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","sid":"https://vaultname.vault.azure.net/secrets/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","cer":"MIIDNjCCAh6gAwIBAgIQLiGzI5pJR3Wi7FgKqSkwEjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNoDXxo7VvDC83oDfLXEAIfRgQw7MB0GA1UdDgQWBBTaA18aO1bwwvN6A3y1xACH0YEMOzANBgkqhkiG9w0BAQsFAAOCAQEAftBJfdE18JPzMH8bL1uXNzU4U5285UPUjKxMFZRdPy5a3bh7auboZnykjSSZ9EUBQgPvnmhNjDJvv0obscdlMfH3ulgYBIQJwwcLSdrsUGODNh0DJBHOXWq/8JanUod+o7q/UVfFYnpCQlyPPx9T6uYjSq2zoGct+puAMWuvPBkBiA0FfW4oWMYEq95bIOPA0QBLkA7V0YEa7KSN6jMYrEQ5HGWnzjy5ZyaQziOEPUtIQecIYyVZ4MDJfJMv6cjk5v1cAQsYIqu3qLEYYeF99B6npwz4MLf2mGo+tEVRy4rIWm0KlLI1nmvKR55MxsvvRr62VUeM13uaG5i47nQlag==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970305,"updated":1595970305}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending"}}' + headers: + cache-control: no-cache + content-length: '2387' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","kid":"https://vaultname.vault.azure.net/keys/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","sid":"https://vaultname.vault.azure.net/secrets/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","cer":"MIIDNjCCAh6gAwIBAgIQLiGzI5pJR3Wi7FgKqSkwEjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNoDXxo7VvDC83oDfLXEAIfRgQw7MB0GA1UdDgQWBBTaA18aO1bwwvN6A3y1xACH0YEMOzANBgkqhkiG9w0BAQsFAAOCAQEAftBJfdE18JPzMH8bL1uXNzU4U5285UPUjKxMFZRdPy5a3bh7auboZnykjSSZ9EUBQgPvnmhNjDJvv0obscdlMfH3ulgYBIQJwwcLSdrsUGODNh0DJBHOXWq/8JanUod+o7q/UVfFYnpCQlyPPx9T6uYjSq2zoGct+puAMWuvPBkBiA0FfW4oWMYEq95bIOPA0QBLkA7V0YEa7KSN6jMYrEQ5HGWnzjy5ZyaQziOEPUtIQecIYyVZ4MDJfJMv6cjk5v1cAQsYIqu3qLEYYeF99B6npwz4MLf2mGo+tEVRy4rIWm0KlLI1nmvKR55MxsvvRr62VUeM13uaG5i47nQlag==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970305,"updated":1595970305}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending"}}' + headers: + cache-control: no-cache + content-length: '2387' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","kid":"https://vaultname.vault.azure.net/keys/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","sid":"https://vaultname.vault.azure.net/secrets/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","cer":"MIIDNjCCAh6gAwIBAgIQLiGzI5pJR3Wi7FgKqSkwEjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNoDXxo7VvDC83oDfLXEAIfRgQw7MB0GA1UdDgQWBBTaA18aO1bwwvN6A3y1xACH0YEMOzANBgkqhkiG9w0BAQsFAAOCAQEAftBJfdE18JPzMH8bL1uXNzU4U5285UPUjKxMFZRdPy5a3bh7auboZnykjSSZ9EUBQgPvnmhNjDJvv0obscdlMfH3ulgYBIQJwwcLSdrsUGODNh0DJBHOXWq/8JanUod+o7q/UVfFYnpCQlyPPx9T6uYjSq2zoGct+puAMWuvPBkBiA0FfW4oWMYEq95bIOPA0QBLkA7V0YEa7KSN6jMYrEQ5HGWnzjy5ZyaQziOEPUtIQecIYyVZ4MDJfJMv6cjk5v1cAQsYIqu3qLEYYeF99B6npwz4MLf2mGo+tEVRy4rIWm0KlLI1nmvKR55MxsvvRr62VUeM13uaG5i47nQlag==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970305,"updated":1595970305}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending"}}' + headers: + cache-control: no-cache + content-length: '2387' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certd7bc1845","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1223' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","kid":"https://vaultname.vault.azure.net/keys/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","sid":"https://vaultname.vault.azure.net/secrets/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","cer":"MIIDNjCCAh6gAwIBAgIQLiGzI5pJR3Wi7FgKqSkwEjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNoDXxo7VvDC83oDfLXEAIfRgQw7MB0GA1UdDgQWBBTaA18aO1bwwvN6A3y1xACH0YEMOzANBgkqhkiG9w0BAQsFAAOCAQEAftBJfdE18JPzMH8bL1uXNzU4U5285UPUjKxMFZRdPy5a3bh7auboZnykjSSZ9EUBQgPvnmhNjDJvv0obscdlMfH3ulgYBIQJwwcLSdrsUGODNh0DJBHOXWq/8JanUod+o7q/UVfFYnpCQlyPPx9T6uYjSq2zoGct+puAMWuvPBkBiA0FfW4oWMYEq95bIOPA0QBLkA7V0YEa7KSN6jMYrEQ5HGWnzjy5ZyaQziOEPUtIQecIYyVZ4MDJfJMv6cjk5v1cAQsYIqu3qLEYYeF99B6npwz4MLf2mGo+tEVRy4rIWm0KlLI1nmvKR55MxsvvRr62VUeM13uaG5i47nQlag==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970305,"updated":1595970305}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending"}}' + headers: + cache-control: no-cache + content-length: '2387' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending","issuer":{"name":"Self"},"csr":"MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCUi4KzyDUIMMTWLCBUocUNHzArcf7Mwc3UUOmP9u9H5zecJ0SeKC3/k7jucSKHCooPGE55CFCVaRTRC8BdwpQPx6HgHQkYRsqpk+O9PS0ALUJ9e7eX2Bp9F7PCR79V6znOyubvnI9okpfxAcITRg1UnQ9q25meRdjntR7EdpPUhkv7+pRgJagMkOZ9Q5W+xdOmRszIIS41rUlm7TqDGgcLoxNGZFyvzMEUgzHaCPU8f0HyNHp/y3PvNz+uL8JZrCkLqHEN2wkForzuSH7RSAeR3r0ZrPr0mjHya1UYdZSmfqTZiXL3T43iBULurpo6VZLawwqXtYZVzT1xJdRF0ufB","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certd7bc1845","request_id":"3737a5a2130c4f24952c055d21316a67"}' + headers: + cache-control: no-cache + content-length: '1223' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/pending?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","kid":"https://vaultname.vault.azure.net/keys/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","sid":"https://vaultname.vault.azure.net/secrets/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","cer":"MIIDNjCCAh6gAwIBAgIQLiGzI5pJR3Wi7FgKqSkwEjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNoDXxo7VvDC83oDfLXEAIfRgQw7MB0GA1UdDgQWBBTaA18aO1bwwvN6A3y1xACH0YEMOzANBgkqhkiG9w0BAQsFAAOCAQEAftBJfdE18JPzMH8bL1uXNzU4U5285UPUjKxMFZRdPy5a3bh7auboZnykjSSZ9EUBQgPvnmhNjDJvv0obscdlMfH3ulgYBIQJwwcLSdrsUGODNh0DJBHOXWq/8JanUod+o7q/UVfFYnpCQlyPPx9T6uYjSq2zoGct+puAMWuvPBkBiA0FfW4oWMYEq95bIOPA0QBLkA7V0YEa7KSN6jMYrEQ5HGWnzjy5ZyaQziOEPUtIQecIYyVZ4MDJfJMv6cjk5v1cAQsYIqu3qLEYYeF99B6npwz4MLf2mGo+tEVRy4rIWm0KlLI1nmvKR55MxsvvRr62VUeM13uaG5i47nQlag==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=DefaultPolicy","sans":{},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":12,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595970305,"updated":1595970305}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/pending"}}' + headers: + cache-control: no-cache + content-length: '2387' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/versions?api-version=7.1-preview + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325},"subject":""}],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '299' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/versions?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","kid":"https://vaultname.vault.azure.net/keys/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","sid":"https://vaultname.vault.azure.net/secrets/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335","x5t":"p96uJ4_4oGzD2ZRK7I1ipmoG198","cer":"MIIDNjCCAh6gAwIBAgIQLiGzI5pJR3Wi7FgKqSkwEjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIwMDcyODIwNTUyNVoXDTIxMDcyODIxMDUyNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE/Pmha+9W230dAsE9pwG1v2ppC4RdhrGGVLyz/WACWUqAOePYY8OtPgGfNfaA0F+k+uJ84OOPhn+HG1HgXJufuixRHSVDobc18W1ao32pJrkJYQro3N722Q9wp4Mu/wVOuNnM4FGlF78yJV/+p+W072UvkS9HVnaa7UEZym1HAcySqBwKSwz51S3p+sQ46n7QlKbf2Q1ijjdGu0PfB/NgofoghBw/ZmUfMC92FTlfSssv2OKQcdvm5BfX7yOHGXsUU2Ler7fFVmIeiZYy5Q2Y5/R2e2zL5E9Axa6a9WYO7QPr/z0UCzEJ/+fUjyAjMj5544TSBYIIb/vHJ/Xo9T+0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNoDXxo7VvDC83oDfLXEAIfRgQw7MB0GA1UdDgQWBBTaA18aO1bwwvN6A3y1xACH0YEMOzANBgkqhkiG9w0BAQsFAAOCAQEAftBJfdE18JPzMH8bL1uXNzU4U5285UPUjKxMFZRdPy5a3bh7auboZnykjSSZ9EUBQgPvnmhNjDJvv0obscdlMfH3ulgYBIQJwwcLSdrsUGODNh0DJBHOXWq/8JanUod+o7q/UVfFYnpCQlyPPx9T6uYjSq2zoGct+puAMWuvPBkBiA0FfW4oWMYEq95bIOPA0QBLkA7V0YEa7KSN6jMYrEQ5HGWnzjy5ZyaQziOEPUtIQecIYyVZ4MDJfJMv6cjk5v1cAQsYIqu3qLEYYeF99B6npwz4MLf2mGo+tEVRy4rIWm0KlLI1nmvKR55MxsvvRr62VUeM13uaG5i47nQlag==","attributes":{"enabled":true,"nbf":1595969725,"exp":1627506325,"created":1595970325,"updated":1595970325,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: no-cache + content-length: '1651' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 21:05:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://kw7kteqmd6wjwzxzsncpm62z.vault.azure.net/certificates/certd7bc1845/9a3e00d8b7f04709bebca8d2c533c335?api-version=7.1-preview +version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_examples_certificates.test_example_certificate_list_operations.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_examples_certificates.test_example_certificate_list_operations.yaml index 0fc1cd7823dd..499e95458aac 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_examples_certificates.test_example_certificate_list_operations.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_examples_certificates.test_example_certificate_list_operations.yaml @@ -13,9 +13,9 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate0/create?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/create?api-version=7.1-preview response: body: string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer @@ -28,13 +28,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:11 GMT + - Tue, 28 Jul 2020 20:49:45 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains www-authenticate: @@ -45,21 +43,21 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, - "x509_props": {"subject": "CN=*.microsoft.com", "sans": {"dns_names": ["sdk.azure-int.net"]}, - "validity_months": 24}, "issuer": {"name": "Self"}}}' + body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": + {"name": "Self"}, "key_props": {"key_size": 2048, "reuse_key": false, "kty": + "RSA", "exportable": true}, "x509_props": {"subject": "CN=*.microsoft.com", + "validity_months": 24, "sans": {"dns_names": ["sdk.azure-int.net"]}}}}' headers: Accept: - application/json @@ -72,31 +70,29 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate0/create?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/create?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwFLHk2KIlzPyLzVV2ZnV/dferUOFcwM7Vq2z3uVkma+y8lzRcZuWtj8TEveVw7oowlKXPFX4fa0ENJqx7fXZNRK4Fy7V9/i0GxBf+t55+ccdO8VSDWQVVY5wwB4lK+KXI/ygJtVg8KOSDuGcmmWfnXMEPcIkfwNDhbGdxOv90gND5CdnPPBIsOP3ELI/vRf5NRM2r8o1wuio81vIaP/FNWm1Z5oIM8u+Hq6FxNtvoU0Wtk1JKmTUiddba9h94P9PdcMoE+wnncL/xXWEHjc/7tvpLc28zwtgxBFkqK50Md0e+CeoudxB520p+I1KqcMfY3p46E7VDI0j872B+MjOTwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADElXERwBiOFhkpNGxP4x+NLkahE1M1kd/hRfMoEoRuhWMTXQv6x5D/ZjJhdrNB0pr8ebL+Qp7dS2M1IcF8W///lgcNLFYVWbVyOf51vcXad46xfQuzELSbsUC5xeRyXlyJB0TGLSI9f8y3qLfQwOeTbs6ZzlKdJsJwNcUc2ujISUWATt5SJc0zLR/tKfEGvgYR2vbHF+yT9bDZdpDjyN0c4h6/NalBLzpjIQwRydruDdHCQpmhEQEyrspp3eaJVAh318a+3sVwYG/uWkFEKUACZ3tVaeICsW6gPhyTCOlwxcCLId9l+BJmS4qFi+6s7JL7gG5UgBoPqajEtbii9qsw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjl+kmfyhVqfJUoH2a8+xoLkihn282P1Hz4UzVdkyGXjPMSFv6s9jn65zX39hL5tH0k6ORZYLifh7aAEnyAgDaHTuXaLUuByc2johenckCJyjyMYQpNrMY6isZXnAk5oqL1u4K7x41zxYmWPXaItztSbzzDbu82J4vGpZ7ksosPSeU9XFx0a7EaCwMpQ3T2vrYGplELrxHk9UeB8Oj12u9aHMlPiU6SzJngozRhtDmXYY1AbKt/0mkBS9/qmMn1/tlfy9NFaZkfL/dM09VyJlaHkQ5cqFK4hqrK83aNA9S+/bkXW791Yr95wmX6LqnKssw9IfmbBf1aVOONhz9eiqSwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAG5VwKbABihQK59namqHK3nG3Fqf0iXDwPvyCGBA3qZWRyTLPre+1tK75EsjSoOywlFWm76pU2nBtH5sTIoxaiY0GIOzCyQY6xrmnBkF0fLJBzS/9PWjp5f1mpdxurLzyphhXoUDg8cJTQNrPTP893a40yQWZ5r3c7ORR+EbxzCWVm2yTzfdeaeARABPrMhtD2X7c/I+FRQGR09N7RwH4AuT1VFzSTwStWzDLKhDNcpBSmxMJbJyuneGTmX3iabE99JYXZZ8qQsr9qPjSgwI17QzrGLkk6bP9z+1A1wKj7fDUPn6kR8uSrdHIhfuqsJWCENS9bZA3jp3On2h8wr0p54=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"725fafeb0ef54138bfcb57290c03a051"}' + time based on the issuer provider. Please check again later.","request_id":"2abd43e55625495688342f9bbf06d59f"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:12 GMT + - Tue, 28 Jul 2020 20:49:46 GMT expires: - '-1' location: - - https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview&request_id=725fafeb0ef54138bfcb57290c03a051 + - https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview&request_id=2abd43e55625495688342f9bbf06d59f pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -104,11 +100,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -124,29 +120,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwFLHk2KIlzPyLzVV2ZnV/dferUOFcwM7Vq2z3uVkma+y8lzRcZuWtj8TEveVw7oowlKXPFX4fa0ENJqx7fXZNRK4Fy7V9/i0GxBf+t55+ccdO8VSDWQVVY5wwB4lK+KXI/ygJtVg8KOSDuGcmmWfnXMEPcIkfwNDhbGdxOv90gND5CdnPPBIsOP3ELI/vRf5NRM2r8o1wuio81vIaP/FNWm1Z5oIM8u+Hq6FxNtvoU0Wtk1JKmTUiddba9h94P9PdcMoE+wnncL/xXWEHjc/7tvpLc28zwtgxBFkqK50Md0e+CeoudxB520p+I1KqcMfY3p46E7VDI0j872B+MjOTwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADElXERwBiOFhkpNGxP4x+NLkahE1M1kd/hRfMoEoRuhWMTXQv6x5D/ZjJhdrNB0pr8ebL+Qp7dS2M1IcF8W///lgcNLFYVWbVyOf51vcXad46xfQuzELSbsUC5xeRyXlyJB0TGLSI9f8y3qLfQwOeTbs6ZzlKdJsJwNcUc2ujISUWATt5SJc0zLR/tKfEGvgYR2vbHF+yT9bDZdpDjyN0c4h6/NalBLzpjIQwRydruDdHCQpmhEQEyrspp3eaJVAh318a+3sVwYG/uWkFEKUACZ3tVaeICsW6gPhyTCOlwxcCLId9l+BJmS4qFi+6s7JL7gG5UgBoPqajEtbii9qsw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjl+kmfyhVqfJUoH2a8+xoLkihn282P1Hz4UzVdkyGXjPMSFv6s9jn65zX39hL5tH0k6ORZYLifh7aAEnyAgDaHTuXaLUuByc2johenckCJyjyMYQpNrMY6isZXnAk5oqL1u4K7x41zxYmWPXaItztSbzzDbu82J4vGpZ7ksosPSeU9XFx0a7EaCwMpQ3T2vrYGplELrxHk9UeB8Oj12u9aHMlPiU6SzJngozRhtDmXYY1AbKt/0mkBS9/qmMn1/tlfy9NFaZkfL/dM09VyJlaHkQ5cqFK4hqrK83aNA9S+/bkXW791Yr95wmX6LqnKssw9IfmbBf1aVOONhz9eiqSwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAG5VwKbABihQK59namqHK3nG3Fqf0iXDwPvyCGBA3qZWRyTLPre+1tK75EsjSoOywlFWm76pU2nBtH5sTIoxaiY0GIOzCyQY6xrmnBkF0fLJBzS/9PWjp5f1mpdxurLzyphhXoUDg8cJTQNrPTP893a40yQWZ5r3c7ORR+EbxzCWVm2yTzfdeaeARABPrMhtD2X7c/I+FRQGR09N7RwH4AuT1VFzSTwStWzDLKhDNcpBSmxMJbJyuneGTmX3iabE99JYXZZ8qQsr9qPjSgwI17QzrGLkk6bP9z+1A1wKj7fDUPn6kR8uSrdHIhfuqsJWCENS9bZA3jp3On2h8wr0p54=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"725fafeb0ef54138bfcb57290c03a051"}' + time based on the issuer provider. Please check again later.","request_id":"2abd43e55625495688342f9bbf06d59f"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:12 GMT + - Tue, 28 Jul 2020 20:49:46 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -154,11 +148,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -174,29 +168,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwFLHk2KIlzPyLzVV2ZnV/dferUOFcwM7Vq2z3uVkma+y8lzRcZuWtj8TEveVw7oowlKXPFX4fa0ENJqx7fXZNRK4Fy7V9/i0GxBf+t55+ccdO8VSDWQVVY5wwB4lK+KXI/ygJtVg8KOSDuGcmmWfnXMEPcIkfwNDhbGdxOv90gND5CdnPPBIsOP3ELI/vRf5NRM2r8o1wuio81vIaP/FNWm1Z5oIM8u+Hq6FxNtvoU0Wtk1JKmTUiddba9h94P9PdcMoE+wnncL/xXWEHjc/7tvpLc28zwtgxBFkqK50Md0e+CeoudxB520p+I1KqcMfY3p46E7VDI0j872B+MjOTwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADElXERwBiOFhkpNGxP4x+NLkahE1M1kd/hRfMoEoRuhWMTXQv6x5D/ZjJhdrNB0pr8ebL+Qp7dS2M1IcF8W///lgcNLFYVWbVyOf51vcXad46xfQuzELSbsUC5xeRyXlyJB0TGLSI9f8y3qLfQwOeTbs6ZzlKdJsJwNcUc2ujISUWATt5SJc0zLR/tKfEGvgYR2vbHF+yT9bDZdpDjyN0c4h6/NalBLzpjIQwRydruDdHCQpmhEQEyrspp3eaJVAh318a+3sVwYG/uWkFEKUACZ3tVaeICsW6gPhyTCOlwxcCLId9l+BJmS4qFi+6s7JL7gG5UgBoPqajEtbii9qsw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjl+kmfyhVqfJUoH2a8+xoLkihn282P1Hz4UzVdkyGXjPMSFv6s9jn65zX39hL5tH0k6ORZYLifh7aAEnyAgDaHTuXaLUuByc2johenckCJyjyMYQpNrMY6isZXnAk5oqL1u4K7x41zxYmWPXaItztSbzzDbu82J4vGpZ7ksosPSeU9XFx0a7EaCwMpQ3T2vrYGplELrxHk9UeB8Oj12u9aHMlPiU6SzJngozRhtDmXYY1AbKt/0mkBS9/qmMn1/tlfy9NFaZkfL/dM09VyJlaHkQ5cqFK4hqrK83aNA9S+/bkXW791Yr95wmX6LqnKssw9IfmbBf1aVOONhz9eiqSwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAG5VwKbABihQK59namqHK3nG3Fqf0iXDwPvyCGBA3qZWRyTLPre+1tK75EsjSoOywlFWm76pU2nBtH5sTIoxaiY0GIOzCyQY6xrmnBkF0fLJBzS/9PWjp5f1mpdxurLzyphhXoUDg8cJTQNrPTP893a40yQWZ5r3c7ORR+EbxzCWVm2yTzfdeaeARABPrMhtD2X7c/I+FRQGR09N7RwH4AuT1VFzSTwStWzDLKhDNcpBSmxMJbJyuneGTmX3iabE99JYXZZ8qQsr9qPjSgwI17QzrGLkk6bP9z+1A1wKj7fDUPn6kR8uSrdHIhfuqsJWCENS9bZA3jp3On2h8wr0p54=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"725fafeb0ef54138bfcb57290c03a051"}' + time based on the issuer provider. Please check again later.","request_id":"2abd43e55625495688342f9bbf06d59f"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:22 GMT + - Tue, 28 Jul 2020 20:49:51 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -204,11 +196,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -224,29 +216,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwFLHk2KIlzPyLzVV2ZnV/dferUOFcwM7Vq2z3uVkma+y8lzRcZuWtj8TEveVw7oowlKXPFX4fa0ENJqx7fXZNRK4Fy7V9/i0GxBf+t55+ccdO8VSDWQVVY5wwB4lK+KXI/ygJtVg8KOSDuGcmmWfnXMEPcIkfwNDhbGdxOv90gND5CdnPPBIsOP3ELI/vRf5NRM2r8o1wuio81vIaP/FNWm1Z5oIM8u+Hq6FxNtvoU0Wtk1JKmTUiddba9h94P9PdcMoE+wnncL/xXWEHjc/7tvpLc28zwtgxBFkqK50Md0e+CeoudxB520p+I1KqcMfY3p46E7VDI0j872B+MjOTwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADElXERwBiOFhkpNGxP4x+NLkahE1M1kd/hRfMoEoRuhWMTXQv6x5D/ZjJhdrNB0pr8ebL+Qp7dS2M1IcF8W///lgcNLFYVWbVyOf51vcXad46xfQuzELSbsUC5xeRyXlyJB0TGLSI9f8y3qLfQwOeTbs6ZzlKdJsJwNcUc2ujISUWATt5SJc0zLR/tKfEGvgYR2vbHF+yT9bDZdpDjyN0c4h6/NalBLzpjIQwRydruDdHCQpmhEQEyrspp3eaJVAh318a+3sVwYG/uWkFEKUACZ3tVaeICsW6gPhyTCOlwxcCLId9l+BJmS4qFi+6s7JL7gG5UgBoPqajEtbii9qsw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjl+kmfyhVqfJUoH2a8+xoLkihn282P1Hz4UzVdkyGXjPMSFv6s9jn65zX39hL5tH0k6ORZYLifh7aAEnyAgDaHTuXaLUuByc2johenckCJyjyMYQpNrMY6isZXnAk5oqL1u4K7x41zxYmWPXaItztSbzzDbu82J4vGpZ7ksosPSeU9XFx0a7EaCwMpQ3T2vrYGplELrxHk9UeB8Oj12u9aHMlPiU6SzJngozRhtDmXYY1AbKt/0mkBS9/qmMn1/tlfy9NFaZkfL/dM09VyJlaHkQ5cqFK4hqrK83aNA9S+/bkXW791Yr95wmX6LqnKssw9IfmbBf1aVOONhz9eiqSwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAG5VwKbABihQK59namqHK3nG3Fqf0iXDwPvyCGBA3qZWRyTLPre+1tK75EsjSoOywlFWm76pU2nBtH5sTIoxaiY0GIOzCyQY6xrmnBkF0fLJBzS/9PWjp5f1mpdxurLzyphhXoUDg8cJTQNrPTP893a40yQWZ5r3c7ORR+EbxzCWVm2yTzfdeaeARABPrMhtD2X7c/I+FRQGR09N7RwH4AuT1VFzSTwStWzDLKhDNcpBSmxMJbJyuneGTmX3iabE99JYXZZ8qQsr9qPjSgwI17QzrGLkk6bP9z+1A1wKj7fDUPn6kR8uSrdHIhfuqsJWCENS9bZA3jp3On2h8wr0p54=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"725fafeb0ef54138bfcb57290c03a051"}' + time based on the issuer provider. Please check again later.","request_id":"2abd43e55625495688342f9bbf06d59f"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:32 GMT + - Tue, 28 Jul 2020 20:49:57 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -254,11 +244,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -274,27 +264,25 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwFLHk2KIlzPyLzVV2ZnV/dferUOFcwM7Vq2z3uVkma+y8lzRcZuWtj8TEveVw7oowlKXPFX4fa0ENJqx7fXZNRK4Fy7V9/i0GxBf+t55+ccdO8VSDWQVVY5wwB4lK+KXI/ygJtVg8KOSDuGcmmWfnXMEPcIkfwNDhbGdxOv90gND5CdnPPBIsOP3ELI/vRf5NRM2r8o1wuio81vIaP/FNWm1Z5oIM8u+Hq6FxNtvoU0Wtk1JKmTUiddba9h94P9PdcMoE+wnncL/xXWEHjc/7tvpLc28zwtgxBFkqK50Md0e+CeoudxB520p+I1KqcMfY3p46E7VDI0j872B+MjOTwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADElXERwBiOFhkpNGxP4x+NLkahE1M1kd/hRfMoEoRuhWMTXQv6x5D/ZjJhdrNB0pr8ebL+Qp7dS2M1IcF8W///lgcNLFYVWbVyOf51vcXad46xfQuzELSbsUC5xeRyXlyJB0TGLSI9f8y3qLfQwOeTbs6ZzlKdJsJwNcUc2ujISUWATt5SJc0zLR/tKfEGvgYR2vbHF+yT9bDZdpDjyN0c4h6/NalBLzpjIQwRydruDdHCQpmhEQEyrspp3eaJVAh318a+3sVwYG/uWkFEKUACZ3tVaeICsW6gPhyTCOlwxcCLId9l+BJmS4qFi+6s7JL7gG5UgBoPqajEtbii9qsw=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certificate0","request_id":"725fafeb0ef54138bfcb57290c03a051"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjl+kmfyhVqfJUoH2a8+xoLkihn282P1Hz4UzVdkyGXjPMSFv6s9jn65zX39hL5tH0k6ORZYLifh7aAEnyAgDaHTuXaLUuByc2johenckCJyjyMYQpNrMY6isZXnAk5oqL1u4K7x41zxYmWPXaItztSbzzDbu82J4vGpZ7ksosPSeU9XFx0a7EaCwMpQ3T2vrYGplELrxHk9UeB8Oj12u9aHMlPiU6SzJngozRhtDmXYY1AbKt/0mkBS9/qmMn1/tlfy9NFaZkfL/dM09VyJlaHkQ5cqFK4hqrK83aNA9S+/bkXW791Yr95wmX6LqnKssw9IfmbBf1aVOONhz9eiqSwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAG5VwKbABihQK59namqHK3nG3Fqf0iXDwPvyCGBA3qZWRyTLPre+1tK75EsjSoOywlFWm76pU2nBtH5sTIoxaiY0GIOzCyQY6xrmnBkF0fLJBzS/9PWjp5f1mpdxurLzyphhXoUDg8cJTQNrPTP893a40yQWZ5r3c7ORR+EbxzCWVm2yTzfdeaeARABPrMhtD2X7c/I+FRQGR09N7RwH4AuT1VFzSTwStWzDLKhDNcpBSmxMJbJyuneGTmX3iabE99JYXZZ8qQsr9qPjSgwI17QzrGLkk6bP9z+1A1wKj7fDUPn6kR8uSrdHIhfuqsJWCENS9bZA3jp3On2h8wr0p54=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert","request_id":"2abd43e55625495688342f9bbf06d59f"}' headers: cache-control: - no-cache content-length: - - '1267' + - '1251' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:42 GMT + - Tue, 28 Jul 2020 20:50:02 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -302,11 +290,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -322,27 +310,25 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/a310fd9eb2af4a23b3e6537e40b4d99e","kid":"https://vaultname.vault.azure.net/keys/certificate0/a310fd9eb2af4a23b3e6537e40b4d99e","sid":"https://vaultname.vault.azure.net/secrets/certificate0/a310fd9eb2af4a23b3e6537e40b4d99e","x5t":"gy17olot0BV7OJXhOHa8Xr2yRIo","cer":"MIIDWjCCAkKgAwIBAgIQRAzh76EkSKSv0wm43AMQYzANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwMzA1MjM1ODM5WhcNMjIwMzA2MDAwODM5WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDAUseTYoiXM/IvNVXZmdX9196tQ4VzAztWrbPe5WSZr7LyXNFxm5a2PxMS95XDuijCUpc8Vfh9rQQ0mrHt9dk1ErgXLtX3+LQbEF/63nn5xx07xVINZBVVjnDAHiUr4pcj/KAm1WDwo5IO4ZyaZZ+dcwQ9wiR/A0OFsZ3E6/3SA0PkJ2c88Eiw4/cQsj+9F/k1EzavyjXC6KjzW8ho/8U1abVnmggzy74eroXE22+hTRa2TUkqZNSJ11tr2H3g/091wygT7Cedwv/FdYQeNz/u2+ktzbzPC2DEEWSornQx3R74J6i53EHnbSn4jUqpwx9jenjoTtUMjSPzvYH4yM5PAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFOFigIF9IUEOPCeeLZ9RjXSAB4RGMB0GA1UdDgQWBBThYoCBfSFBDjwnni2fUY10gAeERjANBgkqhkiG9w0BAQsFAAOCAQEATebPSrHTtu/a6GVyAL5PGPNogvt8KsIVFUsPfxWPchtP1g8sXH+1c1ZlTSFJEv2NlNhn+jJan3vMYN7Ypu8VRxO0AIujpQcGxOZ/DyG/gOb8SzEmzRpiorw81TNByoj+nQGxbIHlZesMdAvnphAZuss5+UbSjw8oD8nzx8vuqvpSnOZ6vLr/66tf3YXpzqafEfal0z7wvL9C+cBW3B6gz4Vga8KiFZofbcdeun02NSGI68VRdG5SZKLDMgMc9mFcFjjJ/GU/8cCtTH+iEjjRBRAhBXJ9+jUvtEmWYljJUjAvuUXwVmXaaD0ZAPu6M49X7ftAr0ZrdbibZ1Rr7eWswA==","attributes":{"enabled":true,"nbf":1583452719,"exp":1646525319,"created":1583453319,"updated":1583453319,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certificate0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1583453292,"updated":1583453292}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/5d274280d779457ebe96bbfc99b00472","kid":"https://vaultname.vault.azure.net/keys/cert/5d274280d779457ebe96bbfc99b00472","sid":"https://vaultname.vault.azure.net/secrets/cert/5d274280d779457ebe96bbfc99b00472","x5t":"AiGySZCKVISS0uzpCb-27Fm42Bk","cer":"MIIDWjCCAkKgAwIBAgIQXG+5ra5iR6SxFwB+K0okszANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwNzI4MjA0MDAwWhcNMjIwNzI4MjA1MDAwWjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCOX6SZ/KFWp8lSgfZrz7GguSKGfbzY/UfPhTNV2TIZeM8xIW/qz2OfrnNff2Evm0fSTo5FlguJ+HtoASfICANodO5dotS4HJzaOiF6dyQInKPIxhCk2sxjqKxlecCTmiovW7grvHjXPFiZY9doi3O1JvPMNu7zYni8alnuSyiw9J5T1cXHRrsRoLAylDdPa+tgamUQuvEeT1R4Hw6PXa71ocyU+JTpLMmeCjNGG0OZdhjUBsq3/SaQFL3+qYyfX+2V/L00VpmR8v90zT1XImVoeRDlyoUriGqsrzdo0D1L79uRdbv3Viv3nCZfouqcqyzD0h+ZsF/VpU442HP16KpLAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFLMROb6AGqM2CcU8USsfEeDhzdKdMB0GA1UdDgQWBBSzETm+gBqjNgnFPFErHxHg4c3SnTANBgkqhkiG9w0BAQsFAAOCAQEAHfE8r4hDtlevexfjjxgDxtoTODZediQVg5H/cyY0XKQrdWxamqL+5OpyjbApQna29QCiO0DwUaQ+efqLLzThT65zp7J/m052tFZCrWYDBbNFWKWAGtpao0cmee95HnkyOlVIzK9Q0JfttTeeSQvOarYZPgRf7fgvplDdDCsuDGOErPyqOPf307n2lmudIlaiv54yyg5rNpwSb92/UM9QmpRYFQQcuuu2iEQdVzKVH2YI/kUKbp0XAi3LExUeESFkNiwLujv9qBukp8MGAEdnJz6Mr2XG709wx3qER5UYh07W6RdmHy4WMII02q0BsXu5bp0XxksabfzGuq70CYHlXA==","attributes":{"enabled":true,"nbf":1595968800,"exp":1659041400,"created":1595969401,"updated":1595969401,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595969387,"updated":1595969387}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert/pending"}}' headers: cache-control: - no-cache content-length: - - '2449' + - '2430' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:42 GMT + - Tue, 28 Jul 2020 20:50:02 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -350,21 +336,67 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, - "x509_props": {"subject": "CN=*.microsoft.com", "sans": {"dns_names": ["sdk.azure-int.net"]}, - "validity_months": 24}, "issuer": {"name": "Self"}}}' + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1-preview + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/cert","x5t":"AiGySZCKVISS0uzpCb-27Fm42Bk","attributes":{"enabled":true,"nbf":1595968800,"exp":1659041400,"created":1595969401,"updated":1595969401},"subject":""}],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '258' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 28 Jul 2020 20:50:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus + x-ms-keyvault-service-version: + - 1.1.10.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": + {"name": "Self"}, "key_props": {"key_size": 2048, "reuse_key": false, "kty": + "RSA", "exportable": true}, "x509_props": {"subject": "CN=*.microsoft.com", + "validity_months": 24, "sans": {"dns_names": ["sdk.azure-int.net"]}}}}' headers: Accept: - application/json @@ -377,31 +409,29 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate1/create?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/create?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqU+quGgR5hh/HJ0uid+iU3+imY/XNCG8gfAtrTc/7NohmIe0bDHmXvjVQ4LT+YcCCE14imVeW4er165J4IYvqJYhht5f+dOubZ4NDn2eHa90VhnNdEX/EONPvcSF4nb/oTvDrxmTJWZ+PSGzrSlc/+PNv7s0o0v7xObZa9w5KCJ19T/2N+yu0WgkxSxhBENSQU6lggfPyQWvNS+vC3B1lTsrE7CmLC5yX7lZJ+IqgpAz0lnwfMr/OPIIOQBJJ6nj/5izxTKAXkHOcrl6oJv5ZIprwfH8jrWHgbxO67fKIzu5ZJna7Y9ykIfxMvlqKe8Stwd8xm62988o0Xr72kK1wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAFUC4fxaqB5YTjVVLiswLu0sZyJmzjKXAx7nQNddvlIPJfezhV6CR58MjQ06NklsMCZRulsZqLsiQdQ4s/lOK1Lot4J7buyBNT/vYlGvI5kp1J2CLpAZOA4Nsv6xZZLP10dXuGQ6/R5YalT/BIaQV+EQs8abK8Q+lpY2SyKrfPykCZgTnhhHyke/ahIPdYklbaaEpWeSOAUyyGoT6T3jFXB9p/qcNUazU7zEhyCNfG72Thi6yFM1QWFMfuFx8pzZxKFGjGXbx53Y2YwDiPOjO99776CqcNxXItXll9898sYx46n5XPPswY6+fEvCCA18A2Mu2GqmGZVOIOEbhT+flsw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmgseV+8x1I1ZkYLSACMk1NCURC46+rfmDIFO1GJlDmYGfAAA9qo/1x4NQZ0n9cAVc3lPw6mAYMF9WjrBcOhAwbtlYMe3vijfZAbx8eh2f0r+RVy5p+rqDX6zovajMiHeKpiy8CTVMaItOqWpSoWakm3i9LGSGe2+FLsW3RqPi5TqBBCmpVOAWCQxg2iUWMRv8PPSCwA676DaKujCLFT8F4/rHW21gOEYrvp92v/i55Rsayh+bomOlN//+RLTEwvRGkOic7+JAW0d1hlczFY2TUPDhKEqwV0Fqg2thbNbn1f4R0eyUlk+lHK4xL3hHIj/te9Z/E1sGE0wu59tBostKwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGI4dB9WwRqqE0cikyJx/3xpJZ5kiOkdYKrpe+DP2MRqYM8qz2hiHZ0dc+6SgvQCpsGLUvVFwoCiVpISReOuNGO11Dnv5Yzh+kJMoUQSKCJRyyFrATRj0NM12MIFZMam4e9XA9j0a+rICmOsLlSsFQblVTM8fKalOTJGkF0W1e6khRpk1VF/yzfCDxu6ddQLU8wkXKywFV+CdJTTH8OSCAl//tCpSa46LyfuzCe4otn2OgoyzbswjIISj0zKd1s0G+PeZNjLHd0iF/wCsS8SjeYzx28xrNrxLVfGarbWxF4vJEBVXMD/nNkViQkPyQo5SlB6kesZkApzBsTIMxXkzYE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"2c11eadd29994551a2cc819a8f873d2e"}' + time based on the issuer provider. Please check again later.","request_id":"9e496f5197c64082be44accbc0275227"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:42 GMT + - Tue, 28 Jul 2020 20:50:03 GMT expires: - '-1' location: - - https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview&request_id=2c11eadd29994551a2cc819a8f873d2e + - https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview&request_id=9e496f5197c64082be44accbc0275227 pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -409,11 +439,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -429,29 +459,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqU+quGgR5hh/HJ0uid+iU3+imY/XNCG8gfAtrTc/7NohmIe0bDHmXvjVQ4LT+YcCCE14imVeW4er165J4IYvqJYhht5f+dOubZ4NDn2eHa90VhnNdEX/EONPvcSF4nb/oTvDrxmTJWZ+PSGzrSlc/+PNv7s0o0v7xObZa9w5KCJ19T/2N+yu0WgkxSxhBENSQU6lggfPyQWvNS+vC3B1lTsrE7CmLC5yX7lZJ+IqgpAz0lnwfMr/OPIIOQBJJ6nj/5izxTKAXkHOcrl6oJv5ZIprwfH8jrWHgbxO67fKIzu5ZJna7Y9ykIfxMvlqKe8Stwd8xm62988o0Xr72kK1wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAFUC4fxaqB5YTjVVLiswLu0sZyJmzjKXAx7nQNddvlIPJfezhV6CR58MjQ06NklsMCZRulsZqLsiQdQ4s/lOK1Lot4J7buyBNT/vYlGvI5kp1J2CLpAZOA4Nsv6xZZLP10dXuGQ6/R5YalT/BIaQV+EQs8abK8Q+lpY2SyKrfPykCZgTnhhHyke/ahIPdYklbaaEpWeSOAUyyGoT6T3jFXB9p/qcNUazU7zEhyCNfG72Thi6yFM1QWFMfuFx8pzZxKFGjGXbx53Y2YwDiPOjO99776CqcNxXItXll9898sYx46n5XPPswY6+fEvCCA18A2Mu2GqmGZVOIOEbhT+flsw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmgseV+8x1I1ZkYLSACMk1NCURC46+rfmDIFO1GJlDmYGfAAA9qo/1x4NQZ0n9cAVc3lPw6mAYMF9WjrBcOhAwbtlYMe3vijfZAbx8eh2f0r+RVy5p+rqDX6zovajMiHeKpiy8CTVMaItOqWpSoWakm3i9LGSGe2+FLsW3RqPi5TqBBCmpVOAWCQxg2iUWMRv8PPSCwA676DaKujCLFT8F4/rHW21gOEYrvp92v/i55Rsayh+bomOlN//+RLTEwvRGkOic7+JAW0d1hlczFY2TUPDhKEqwV0Fqg2thbNbn1f4R0eyUlk+lHK4xL3hHIj/te9Z/E1sGE0wu59tBostKwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGI4dB9WwRqqE0cikyJx/3xpJZ5kiOkdYKrpe+DP2MRqYM8qz2hiHZ0dc+6SgvQCpsGLUvVFwoCiVpISReOuNGO11Dnv5Yzh+kJMoUQSKCJRyyFrATRj0NM12MIFZMam4e9XA9j0a+rICmOsLlSsFQblVTM8fKalOTJGkF0W1e6khRpk1VF/yzfCDxu6ddQLU8wkXKywFV+CdJTTH8OSCAl//tCpSa46LyfuzCe4otn2OgoyzbswjIISj0zKd1s0G+PeZNjLHd0iF/wCsS8SjeYzx28xrNrxLVfGarbWxF4vJEBVXMD/nNkViQkPyQo5SlB6kesZkApzBsTIMxXkzYE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"2c11eadd29994551a2cc819a8f873d2e"}' + time based on the issuer provider. Please check again later.","request_id":"9e496f5197c64082be44accbc0275227"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:42 GMT + - Tue, 28 Jul 2020 20:50:03 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -459,11 +487,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -479,29 +507,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqU+quGgR5hh/HJ0uid+iU3+imY/XNCG8gfAtrTc/7NohmIe0bDHmXvjVQ4LT+YcCCE14imVeW4er165J4IYvqJYhht5f+dOubZ4NDn2eHa90VhnNdEX/EONPvcSF4nb/oTvDrxmTJWZ+PSGzrSlc/+PNv7s0o0v7xObZa9w5KCJ19T/2N+yu0WgkxSxhBENSQU6lggfPyQWvNS+vC3B1lTsrE7CmLC5yX7lZJ+IqgpAz0lnwfMr/OPIIOQBJJ6nj/5izxTKAXkHOcrl6oJv5ZIprwfH8jrWHgbxO67fKIzu5ZJna7Y9ykIfxMvlqKe8Stwd8xm62988o0Xr72kK1wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAFUC4fxaqB5YTjVVLiswLu0sZyJmzjKXAx7nQNddvlIPJfezhV6CR58MjQ06NklsMCZRulsZqLsiQdQ4s/lOK1Lot4J7buyBNT/vYlGvI5kp1J2CLpAZOA4Nsv6xZZLP10dXuGQ6/R5YalT/BIaQV+EQs8abK8Q+lpY2SyKrfPykCZgTnhhHyke/ahIPdYklbaaEpWeSOAUyyGoT6T3jFXB9p/qcNUazU7zEhyCNfG72Thi6yFM1QWFMfuFx8pzZxKFGjGXbx53Y2YwDiPOjO99776CqcNxXItXll9898sYx46n5XPPswY6+fEvCCA18A2Mu2GqmGZVOIOEbhT+flsw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmgseV+8x1I1ZkYLSACMk1NCURC46+rfmDIFO1GJlDmYGfAAA9qo/1x4NQZ0n9cAVc3lPw6mAYMF9WjrBcOhAwbtlYMe3vijfZAbx8eh2f0r+RVy5p+rqDX6zovajMiHeKpiy8CTVMaItOqWpSoWakm3i9LGSGe2+FLsW3RqPi5TqBBCmpVOAWCQxg2iUWMRv8PPSCwA676DaKujCLFT8F4/rHW21gOEYrvp92v/i55Rsayh+bomOlN//+RLTEwvRGkOic7+JAW0d1hlczFY2TUPDhKEqwV0Fqg2thbNbn1f4R0eyUlk+lHK4xL3hHIj/te9Z/E1sGE0wu59tBostKwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGI4dB9WwRqqE0cikyJx/3xpJZ5kiOkdYKrpe+DP2MRqYM8qz2hiHZ0dc+6SgvQCpsGLUvVFwoCiVpISReOuNGO11Dnv5Yzh+kJMoUQSKCJRyyFrATRj0NM12MIFZMam4e9XA9j0a+rICmOsLlSsFQblVTM8fKalOTJGkF0W1e6khRpk1VF/yzfCDxu6ddQLU8wkXKywFV+CdJTTH8OSCAl//tCpSa46LyfuzCe4otn2OgoyzbswjIISj0zKd1s0G+PeZNjLHd0iF/wCsS8SjeYzx28xrNrxLVfGarbWxF4vJEBVXMD/nNkViQkPyQo5SlB6kesZkApzBsTIMxXkzYE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"2c11eadd29994551a2cc819a8f873d2e"}' + time based on the issuer provider. Please check again later.","request_id":"9e496f5197c64082be44accbc0275227"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:08:53 GMT + - Tue, 28 Jul 2020 20:50:08 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -509,11 +535,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -529,29 +555,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqU+quGgR5hh/HJ0uid+iU3+imY/XNCG8gfAtrTc/7NohmIe0bDHmXvjVQ4LT+YcCCE14imVeW4er165J4IYvqJYhht5f+dOubZ4NDn2eHa90VhnNdEX/EONPvcSF4nb/oTvDrxmTJWZ+PSGzrSlc/+PNv7s0o0v7xObZa9w5KCJ19T/2N+yu0WgkxSxhBENSQU6lggfPyQWvNS+vC3B1lTsrE7CmLC5yX7lZJ+IqgpAz0lnwfMr/OPIIOQBJJ6nj/5izxTKAXkHOcrl6oJv5ZIprwfH8jrWHgbxO67fKIzu5ZJna7Y9ykIfxMvlqKe8Stwd8xm62988o0Xr72kK1wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAFUC4fxaqB5YTjVVLiswLu0sZyJmzjKXAx7nQNddvlIPJfezhV6CR58MjQ06NklsMCZRulsZqLsiQdQ4s/lOK1Lot4J7buyBNT/vYlGvI5kp1J2CLpAZOA4Nsv6xZZLP10dXuGQ6/R5YalT/BIaQV+EQs8abK8Q+lpY2SyKrfPykCZgTnhhHyke/ahIPdYklbaaEpWeSOAUyyGoT6T3jFXB9p/qcNUazU7zEhyCNfG72Thi6yFM1QWFMfuFx8pzZxKFGjGXbx53Y2YwDiPOjO99776CqcNxXItXll9898sYx46n5XPPswY6+fEvCCA18A2Mu2GqmGZVOIOEbhT+flsw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmgseV+8x1I1ZkYLSACMk1NCURC46+rfmDIFO1GJlDmYGfAAA9qo/1x4NQZ0n9cAVc3lPw6mAYMF9WjrBcOhAwbtlYMe3vijfZAbx8eh2f0r+RVy5p+rqDX6zovajMiHeKpiy8CTVMaItOqWpSoWakm3i9LGSGe2+FLsW3RqPi5TqBBCmpVOAWCQxg2iUWMRv8PPSCwA676DaKujCLFT8F4/rHW21gOEYrvp92v/i55Rsayh+bomOlN//+RLTEwvRGkOic7+JAW0d1hlczFY2TUPDhKEqwV0Fqg2thbNbn1f4R0eyUlk+lHK4xL3hHIj/te9Z/E1sGE0wu59tBostKwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGI4dB9WwRqqE0cikyJx/3xpJZ5kiOkdYKrpe+DP2MRqYM8qz2hiHZ0dc+6SgvQCpsGLUvVFwoCiVpISReOuNGO11Dnv5Yzh+kJMoUQSKCJRyyFrATRj0NM12MIFZMam4e9XA9j0a+rICmOsLlSsFQblVTM8fKalOTJGkF0W1e6khRpk1VF/yzfCDxu6ddQLU8wkXKywFV+CdJTTH8OSCAl//tCpSa46LyfuzCe4otn2OgoyzbswjIISj0zKd1s0G+PeZNjLHd0iF/wCsS8SjeYzx28xrNrxLVfGarbWxF4vJEBVXMD/nNkViQkPyQo5SlB6kesZkApzBsTIMxXkzYE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"2c11eadd29994551a2cc819a8f873d2e"}' + time based on the issuer provider. Please check again later.","request_id":"9e496f5197c64082be44accbc0275227"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:03 GMT + - Tue, 28 Jul 2020 20:50:13 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -559,11 +583,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -579,27 +603,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqU+quGgR5hh/HJ0uid+iU3+imY/XNCG8gfAtrTc/7NohmIe0bDHmXvjVQ4LT+YcCCE14imVeW4er165J4IYvqJYhht5f+dOubZ4NDn2eHa90VhnNdEX/EONPvcSF4nb/oTvDrxmTJWZ+PSGzrSlc/+PNv7s0o0v7xObZa9w5KCJ19T/2N+yu0WgkxSxhBENSQU6lggfPyQWvNS+vC3B1lTsrE7CmLC5yX7lZJ+IqgpAz0lnwfMr/OPIIOQBJJ6nj/5izxTKAXkHOcrl6oJv5ZIprwfH8jrWHgbxO67fKIzu5ZJna7Y9ykIfxMvlqKe8Stwd8xm62988o0Xr72kK1wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAFUC4fxaqB5YTjVVLiswLu0sZyJmzjKXAx7nQNddvlIPJfezhV6CR58MjQ06NklsMCZRulsZqLsiQdQ4s/lOK1Lot4J7buyBNT/vYlGvI5kp1J2CLpAZOA4Nsv6xZZLP10dXuGQ6/R5YalT/BIaQV+EQs8abK8Q+lpY2SyKrfPykCZgTnhhHyke/ahIPdYklbaaEpWeSOAUyyGoT6T3jFXB9p/qcNUazU7zEhyCNfG72Thi6yFM1QWFMfuFx8pzZxKFGjGXbx53Y2YwDiPOjO99776CqcNxXItXll9898sYx46n5XPPswY6+fEvCCA18A2Mu2GqmGZVOIOEbhT+flsw=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certificate1","request_id":"2c11eadd29994551a2cc819a8f873d2e"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmgseV+8x1I1ZkYLSACMk1NCURC46+rfmDIFO1GJlDmYGfAAA9qo/1x4NQZ0n9cAVc3lPw6mAYMF9WjrBcOhAwbtlYMe3vijfZAbx8eh2f0r+RVy5p+rqDX6zovajMiHeKpiy8CTVMaItOqWpSoWakm3i9LGSGe2+FLsW3RqPi5TqBBCmpVOAWCQxg2iUWMRv8PPSCwA676DaKujCLFT8F4/rHW21gOEYrvp92v/i55Rsayh+bomOlN//+RLTEwvRGkOic7+JAW0d1hlczFY2TUPDhKEqwV0Fqg2thbNbn1f4R0eyUlk+lHK4xL3hHIj/te9Z/E1sGE0wu59tBostKwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGI4dB9WwRqqE0cikyJx/3xpJZ5kiOkdYKrpe+DP2MRqYM8qz2hiHZ0dc+6SgvQCpsGLUvVFwoCiVpISReOuNGO11Dnv5Yzh+kJMoUQSKCJRyyFrATRj0NM12MIFZMam4e9XA9j0a+rICmOsLlSsFQblVTM8fKalOTJGkF0W1e6khRpk1VF/yzfCDxu6ddQLU8wkXKywFV+CdJTTH8OSCAl//tCpSa46LyfuzCe4otn2OgoyzbswjIISj0zKd1s0G+PeZNjLHd0iF/wCsS8SjeYzx28xrNrxLVfGarbWxF4vJEBVXMD/nNkViQkPyQo5SlB6kesZkApzBsTIMxXkzYE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"9e496f5197c64082be44accbc0275227"}' headers: cache-control: - no-cache content-length: - - '1267' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:13 GMT + - Tue, 28 Jul 2020 20:50:18 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -607,11 +631,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -627,27 +651,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/fdd2e30be1b24a5cb97623c29e0edd22","kid":"https://vaultname.vault.azure.net/keys/certificate1/fdd2e30be1b24a5cb97623c29e0edd22","sid":"https://vaultname.vault.azure.net/secrets/certificate1/fdd2e30be1b24a5cb97623c29e0edd22","x5t":"dZ2aA1SjRZ_jpz5SlV5Gk-W7c-c","cer":"MIIDWjCCAkKgAwIBAgIQATWMBDUsRc6UgHsucuG85TANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwMzA1MjM1OTA0WhcNMjIwMzA2MDAwOTA0WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOpT6q4aBHmGH8cnS6J36JTf6KZj9c0IbyB8C2tNz/s2iGYh7RsMeZe+NVDgtP5hwIITXiKZV5bh6vXrknghi+oliGG3l/5065tng0OfZ4dr3RWGc10Rf8Q40+9xIXidv+hO8OvGZMlZn49IbOtKVz/482/uzSjS/vE5tlr3DkoInX1P/Y37K7RaCTFLGEEQ1JBTqWCB8/JBa81L68LcHWVOysTsKYsLnJfuVkn4iqCkDPSWfB8yv848gg5AEknqeP/mLPFMoBeQc5yuXqgm/lkimvB8fyOtYeBvE7rt8ojO7lkmdrtj3KQh/Ey+Wop7xK3B3zGbrb3zyjRevvaQrXAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFNQBG2AeNcj7USSum6d3m4L9zhzKMB0GA1UdDgQWBBTUARtgHjXI+1Ekrpund5uC/c4cyjANBgkqhkiG9w0BAQsFAAOCAQEAJWakIT0C7JNju0GPggQ/45sxWZvsStG1GSdo4lIoOOUnyy9gWK+d+FnLC681hsqIdGoMX9uaaMMuge3hUE7ofyphC9Ve+2BqPFieOAWfSBniv7ROYj7arC3PrAPrKoUoQGpfhtRYXyUhmFfsycVP9Niu9szQR88ofhIK2Bngh7HNmDiMH9jZGd+6eB3tgkSVNcTjysoRgNJ0l/RRe22N29HADkQyCW4BKjE4tPBLVw9Upj8MagFrLb3YwKuxNPhuyyn6iBZuvasgI5ET4IhyGwOOtV4HTqOM4rBVkTD9esx2ybm35ajgh2VYo80MMorIzhFM+bxpLptql83AAInynQ==","attributes":{"enabled":true,"nbf":1583452744,"exp":1646525344,"created":1583453344,"updated":1583453344,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certificate1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1583453323,"updated":1583453323}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmgseV+8x1I1ZkYLSACMk1NCURC46+rfmDIFO1GJlDmYGfAAA9qo/1x4NQZ0n9cAVc3lPw6mAYMF9WjrBcOhAwbtlYMe3vijfZAbx8eh2f0r+RVy5p+rqDX6zovajMiHeKpiy8CTVMaItOqWpSoWakm3i9LGSGe2+FLsW3RqPi5TqBBCmpVOAWCQxg2iUWMRv8PPSCwA676DaKujCLFT8F4/rHW21gOEYrvp92v/i55Rsayh+bomOlN//+RLTEwvRGkOic7+JAW0d1hlczFY2TUPDhKEqwV0Fqg2thbNbn1f4R0eyUlk+lHK4xL3hHIj/te9Z/E1sGE0wu59tBostKwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGI4dB9WwRqqE0cikyJx/3xpJZ5kiOkdYKrpe+DP2MRqYM8qz2hiHZ0dc+6SgvQCpsGLUvVFwoCiVpISReOuNGO11Dnv5Yzh+kJMoUQSKCJRyyFrATRj0NM12MIFZMam4e9XA9j0a+rICmOsLlSsFQblVTM8fKalOTJGkF0W1e6khRpk1VF/yzfCDxu6ddQLU8wkXKywFV+CdJTTH8OSCAl//tCpSa46LyfuzCe4otn2OgoyzbswjIISj0zKd1s0G+PeZNjLHd0iF/wCsS8SjeYzx28xrNrxLVfGarbWxF4vJEBVXMD/nNkViQkPyQo5SlB6kesZkApzBsTIMxXkzYE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"9e496f5197c64082be44accbc0275227"}' headers: cache-control: - no-cache content-length: - - '2449' + - '1338' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:13 GMT + - Tue, 28 Jul 2020 20:50:23 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -655,21 +679,18 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, - "x509_props": {"subject": "CN=*.microsoft.com", "sans": {"dns_names": ["sdk.azure-int.net"]}, - "validity_months": 24}, "issuer": {"name": "Self"}}}' + body: null headers: Accept: - application/json @@ -677,36 +698,26 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '302' - Content-Type: - - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) - method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate2/create?api-version=7.1-preview + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1S0Ya0E4CUJBuwKNHA/t3pket7F4wP3ZvzTX8ssguzU/L5ndMqOPQ/VCjJ7dQKgUoT54e5EvFmerq5VrfCVQWfXmdhgzgyyWAv3qGkedd9IW+Il/n5YTRK1FBjog3aJn54h2HOcvCCiP3EaT1JLK/LZxE7I7wX9aFhl8BeXgxlQblNk9s6klOryPCGiPJklNDmW7cXapQxX/oANlwBL0kIDQqp8c1WGtRdxX6NhPHZQrQBSTsbapYDSB1o9i9woX76BGOKoU+oY6lsNiOc1/hdYizmPPUh94LFDkxRHMgAe7D21ICQeoFiSMenpgCoC665LEjqV9Wv7c+NIXak/o6wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADKc50u5ZbSLuZOB69uSiZPwbb82a6gASN7X9FhvfKSPzKGk7hxtAeMYbwJFmjRxOgh/fiLP+3989FMyu0zvYMGOhv0ZYkdwi1/sss8nzZUT3O2ILWkv0feVjcNDNYz4u0We6/cKX+SEclGkDKznt3Igq0MRulhPbT8zImOKzbbcS1JPf84jxiuA4oe2U424RCt1gW2t6r4K+5Zfki6Pm3oVwx5JsNO5zm+s0GyNSG3TVCmeu+Ih7FN8MYaFovemwaFs6wCTA3W4rPLnK/aLbdELUMSJrThIwGVIdgTPWFVUOhaVsvN3X7q0I9/RxslvBgzGwjgO47GW4onUYGQswbs=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"c262bd0030d1472ab0b91e6765fe18ed"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmgseV+8x1I1ZkYLSACMk1NCURC46+rfmDIFO1GJlDmYGfAAA9qo/1x4NQZ0n9cAVc3lPw6mAYMF9WjrBcOhAwbtlYMe3vijfZAbx8eh2f0r+RVy5p+rqDX6zovajMiHeKpiy8CTVMaItOqWpSoWakm3i9LGSGe2+FLsW3RqPi5TqBBCmpVOAWCQxg2iUWMRv8PPSCwA676DaKujCLFT8F4/rHW21gOEYrvp92v/i55Rsayh+bomOlN//+RLTEwvRGkOic7+JAW0d1hlczFY2TUPDhKEqwV0Fqg2thbNbn1f4R0eyUlk+lHK4xL3hHIj/te9Z/E1sGE0wu59tBostKwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGI4dB9WwRqqE0cikyJx/3xpJZ5kiOkdYKrpe+DP2MRqYM8qz2hiHZ0dc+6SgvQCpsGLUvVFwoCiVpISReOuNGO11Dnv5Yzh+kJMoUQSKCJRyyFrATRj0NM12MIFZMam4e9XA9j0a+rICmOsLlSsFQblVTM8fKalOTJGkF0W1e6khRpk1VF/yzfCDxu6ddQLU8wkXKywFV+CdJTTH8OSCAl//tCpSa46LyfuzCe4otn2OgoyzbswjIISj0zKd1s0G+PeZNjLHd0iF/wCsS8SjeYzx28xrNrxLVfGarbWxF4vJEBVXMD/nNkViQkPyQo5SlB6kesZkApzBsTIMxXkzYE=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert","request_id":"9e496f5197c64082be44accbc0275227"}' headers: cache-control: - no-cache content-length: - - '1346' + - '1251' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:14 GMT + - Tue, 28 Jul 2020 20:50:28 GMT expires: - '-1' - location: - - https://vaultname.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview&request_id=c262bd0030d1472ab0b91e6765fe18ed pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -714,16 +725,16 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 202 - message: Accepted + code: 200 + message: OK - request: body: null headers: @@ -734,29 +745,25 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1S0Ya0E4CUJBuwKNHA/t3pket7F4wP3ZvzTX8ssguzU/L5ndMqOPQ/VCjJ7dQKgUoT54e5EvFmerq5VrfCVQWfXmdhgzgyyWAv3qGkedd9IW+Il/n5YTRK1FBjog3aJn54h2HOcvCCiP3EaT1JLK/LZxE7I7wX9aFhl8BeXgxlQblNk9s6klOryPCGiPJklNDmW7cXapQxX/oANlwBL0kIDQqp8c1WGtRdxX6NhPHZQrQBSTsbapYDSB1o9i9woX76BGOKoU+oY6lsNiOc1/hdYizmPPUh94LFDkxRHMgAe7D21ICQeoFiSMenpgCoC665LEjqV9Wv7c+NIXak/o6wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADKc50u5ZbSLuZOB69uSiZPwbb82a6gASN7X9FhvfKSPzKGk7hxtAeMYbwJFmjRxOgh/fiLP+3989FMyu0zvYMGOhv0ZYkdwi1/sss8nzZUT3O2ILWkv0feVjcNDNYz4u0We6/cKX+SEclGkDKznt3Igq0MRulhPbT8zImOKzbbcS1JPf84jxiuA4oe2U424RCt1gW2t6r4K+5Zfki6Pm3oVwx5JsNO5zm+s0GyNSG3TVCmeu+Ih7FN8MYaFovemwaFs6wCTA3W4rPLnK/aLbdELUMSJrThIwGVIdgTPWFVUOhaVsvN3X7q0I9/RxslvBgzGwjgO47GW4onUYGQswbs=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"c262bd0030d1472ab0b91e6765fe18ed"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/451dbff41524417d9df66bc0e412498b","kid":"https://vaultname.vault.azure.net/keys/cert/451dbff41524417d9df66bc0e412498b","sid":"https://vaultname.vault.azure.net/secrets/cert/451dbff41524417d9df66bc0e412498b","x5t":"MmeH6uSJxeVqk5SQNoq5aXXj2Ww","cer":"MIIDWjCCAkKgAwIBAgIQB9YBbfdARhyOLxba/2655jANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwNzI4MjA0MDI1WhcNMjIwNzI4MjA1MDI1WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCaCx5X7zHUjVmRgtIAIyTU0JRELjr6t+YMgU7UYmUOZgZ8AAD2qj/XHg1BnSf1wBVzeU/DqYBgwX1aOsFw6EDBu2Vgx7e+KN9kBvHx6HZ/Sv5FXLmn6uoNfrOi9qMyId4qmLLwJNUxoi06palKhZqSbeL0sZIZ7b4UuxbdGo+LlOoEEKalU4BYJDGDaJRYxG/w89ILADrvoNoq6MIsVPwXj+sdbbWA4Riu+n3a/+LnlGxrKH5uiY6U3//5EtMTC9EaQ6Jzv4kBbR3WGVzMVjZNQ8OEoSrBXQWqDa2Fs1ufV/hHR7JSWT6UcrjEveEciP+171n8TWwYTTC7n20Giy0rAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFNj97ISMEFdtatv1ry6klJwCkXhNMB0GA1UdDgQWBBTY/eyEjBBXbWrb9a8upJScApF4TTANBgkqhkiG9w0BAQsFAAOCAQEAXs6aB4157hs+IkMXD25H0JmIrCfeuykO1XvLwri/MurBK/IXbJ+MoHjmTrpZ/4E7Mt1xf6bqsArEG0m4/fXGorTz6pK+W6WgZVz7bSpxGMCuNEii1gHzbuMn4L0uE6f4mD++8tOlPif8e7leQEtQgScFNl0jCJygFHimtc+pGKP/DuPkHCjTl3mjEMma8jh4huttihc8kJzn96g3EcGehzvS49ICoO0Fa7TQITfkYKofsAHz3wJhUPGqdzBfBhKL8SmbVRX75B6ThWd2K0i7p61M0mGt7g+FVx38l2G3oLN67Bp7s6zibA9vXvIrmxWBJBKh2v6uJgYx1cbHnZn5kA==","attributes":{"enabled":true,"nbf":1595968825,"exp":1659041425,"created":1595969425,"updated":1595969425,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595969387,"updated":1595969403}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert/pending"}}' headers: cache-control: - no-cache content-length: - - '1346' + - '2430' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:14 GMT + - Tue, 28 Jul 2020 20:50:28 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -764,11 +771,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -784,29 +791,25 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/versions?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1S0Ya0E4CUJBuwKNHA/t3pket7F4wP3ZvzTX8ssguzU/L5ndMqOPQ/VCjJ7dQKgUoT54e5EvFmerq5VrfCVQWfXmdhgzgyyWAv3qGkedd9IW+Il/n5YTRK1FBjog3aJn54h2HOcvCCiP3EaT1JLK/LZxE7I7wX9aFhl8BeXgxlQblNk9s6klOryPCGiPJklNDmW7cXapQxX/oANlwBL0kIDQqp8c1WGtRdxX6NhPHZQrQBSTsbapYDSB1o9i9woX76BGOKoU+oY6lsNiOc1/hdYizmPPUh94LFDkxRHMgAe7D21ICQeoFiSMenpgCoC665LEjqV9Wv7c+NIXak/o6wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADKc50u5ZbSLuZOB69uSiZPwbb82a6gASN7X9FhvfKSPzKGk7hxtAeMYbwJFmjRxOgh/fiLP+3989FMyu0zvYMGOhv0ZYkdwi1/sss8nzZUT3O2ILWkv0feVjcNDNYz4u0We6/cKX+SEclGkDKznt3Igq0MRulhPbT8zImOKzbbcS1JPf84jxiuA4oe2U424RCt1gW2t6r4K+5Zfki6Pm3oVwx5JsNO5zm+s0GyNSG3TVCmeu+Ih7FN8MYaFovemwaFs6wCTA3W4rPLnK/aLbdELUMSJrThIwGVIdgTPWFVUOhaVsvN3X7q0I9/RxslvBgzGwjgO47GW4onUYGQswbs=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"c262bd0030d1472ab0b91e6765fe18ed"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/cert/451dbff41524417d9df66bc0e412498b","x5t":"MmeH6uSJxeVqk5SQNoq5aXXj2Ww","attributes":{"enabled":true,"nbf":1595968825,"exp":1659041425,"created":1595969425,"updated":1595969425},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/cert/5d274280d779457ebe96bbfc99b00472","x5t":"AiGySZCKVISS0uzpCb-27Fm42Bk","attributes":{"enabled":true,"nbf":1595968800,"exp":1659041400,"created":1595969401,"updated":1595969401},"subject":""}],"nextLink":null}' headers: cache-control: - no-cache content-length: - - '1346' + - '555' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:24 GMT + - Tue, 28 Jul 2020 20:50:28 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -814,11 +817,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -833,28 +836,28 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1S0Ya0E4CUJBuwKNHA/t3pket7F4wP3ZvzTX8ssguzU/L5ndMqOPQ/VCjJ7dQKgUoT54e5EvFmerq5VrfCVQWfXmdhgzgyyWAv3qGkedd9IW+Il/n5YTRK1FBjog3aJn54h2HOcvCCiP3EaT1JLK/LZxE7I7wX9aFhl8BeXgxlQblNk9s6klOryPCGiPJklNDmW7cXapQxX/oANlwBL0kIDQqp8c1WGtRdxX6NhPHZQrQBSTsbapYDSB1o9i9woX76BGOKoU+oY6lsNiOc1/hdYizmPPUh94LFDkxRHMgAe7D21ICQeoFiSMenpgCoC665LEjqV9Wv7c+NIXak/o6wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBADKc50u5ZbSLuZOB69uSiZPwbb82a6gASN7X9FhvfKSPzKGk7hxtAeMYbwJFmjRxOgh/fiLP+3989FMyu0zvYMGOhv0ZYkdwi1/sss8nzZUT3O2ILWkv0feVjcNDNYz4u0We6/cKX+SEclGkDKznt3Igq0MRulhPbT8zImOKzbbcS1JPf84jxiuA4oe2U424RCt1gW2t6r4K+5Zfki6Pm3oVwx5JsNO5zm+s0GyNSG3TVCmeu+Ih7FN8MYaFovemwaFs6wCTA3W4rPLnK/aLbdELUMSJrThIwGVIdgTPWFVUOhaVsvN3X7q0I9/RxslvBgzGwjgO47GW4onUYGQswbs=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certificate2","request_id":"c262bd0030d1472ab0b91e6765fe18ed"}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/cert","deletedDate":1595969429,"scheduledPurgeDate":1603745429,"id":"https://vaultname.vault.azure.net/certificates/cert/451dbff41524417d9df66bc0e412498b","kid":"https://vaultname.vault.azure.net/keys/cert/451dbff41524417d9df66bc0e412498b","sid":"https://vaultname.vault.azure.net/secrets/cert/451dbff41524417d9df66bc0e412498b","x5t":"MmeH6uSJxeVqk5SQNoq5aXXj2Ww","cer":"MIIDWjCCAkKgAwIBAgIQB9YBbfdARhyOLxba/2655jANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwNzI4MjA0MDI1WhcNMjIwNzI4MjA1MDI1WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCaCx5X7zHUjVmRgtIAIyTU0JRELjr6t+YMgU7UYmUOZgZ8AAD2qj/XHg1BnSf1wBVzeU/DqYBgwX1aOsFw6EDBu2Vgx7e+KN9kBvHx6HZ/Sv5FXLmn6uoNfrOi9qMyId4qmLLwJNUxoi06palKhZqSbeL0sZIZ7b4UuxbdGo+LlOoEEKalU4BYJDGDaJRYxG/w89ILADrvoNoq6MIsVPwXj+sdbbWA4Riu+n3a/+LnlGxrKH5uiY6U3//5EtMTC9EaQ6Jzv4kBbR3WGVzMVjZNQ8OEoSrBXQWqDa2Fs1ufV/hHR7JSWT6UcrjEveEciP+171n8TWwYTTC7n20Giy0rAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFNj97ISMEFdtatv1ry6klJwCkXhNMB0GA1UdDgQWBBTY/eyEjBBXbWrb9a8upJScApF4TTANBgkqhkiG9w0BAQsFAAOCAQEAXs6aB4157hs+IkMXD25H0JmIrCfeuykO1XvLwri/MurBK/IXbJ+MoHjmTrpZ/4E7Mt1xf6bqsArEG0m4/fXGorTz6pK+W6WgZVz7bSpxGMCuNEii1gHzbuMn4L0uE6f4mD++8tOlPif8e7leQEtQgScFNl0jCJygFHimtc+pGKP/DuPkHCjTl3mjEMma8jh4huttihc8kJzn96g3EcGehzvS49ICoO0Fa7TQITfkYKofsAHz3wJhUPGqdzBfBhKL8SmbVRX75B6ThWd2K0i7p61M0mGt7g+FVx38l2G3oLN67Bp7s6zibA9vXvIrmxWBJBKh2v6uJgYx1cbHnZn5kA==","attributes":{"enabled":true,"nbf":1595968825,"exp":1659041425,"created":1595969425,"updated":1595969425,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595969387,"updated":1595969403}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert/pending"}}' headers: cache-control: - no-cache content-length: - - '1267' + - '2576' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:34 GMT + - Tue, 28 Jul 2020 20:50:29 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -862,11 +865,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -882,27 +885,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate2/?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/3794876c928b494485806318c06a10be","kid":"https://vaultname.vault.azure.net/keys/certificate2/3794876c928b494485806318c06a10be","sid":"https://vaultname.vault.azure.net/secrets/certificate2/3794876c928b494485806318c06a10be","x5t":"WagTdeRzWdfoVX8Vxaoe6wQqlDM","cer":"MIIDWjCCAkKgAwIBAgIQOL7hjgyqTSSX60ODc2X5EjANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwMzA1MjM1OTMwWhcNMjIwMzA2MDAwOTMwWjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVLRhrQTgJQkG7Ao0cD+3emR63sXjA/dm/NNfyyyC7NT8vmd0yo49D9UKMnt1AqBShPnh7kS8WZ6urlWt8JVBZ9eZ2GDODLJYC/eoaR5130hb4iX+flhNErUUGOiDdomfniHYc5y8IKI/cRpPUksr8tnETsjvBf1oWGXwF5eDGVBuU2T2zqSU6vI8IaI8mSU0OZbtxdqlDFf+gA2XAEvSQgNCqnxzVYa1F3Ffo2E8dlCtAFJOxtqlgNIHWj2L3ChfvoEY4qhT6hjqWw2I5zX+F1iLOY89SH3gsUOTFEcyAB7sPbUgJB6gWJIx6emAKgLrrksSOpX1a/tz40hdqT+jrAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFON+k0jQEf/qBBATQmY0tft10n8fMB0GA1UdDgQWBBTjfpNI0BH/6gQQE0JmNLX7ddJ/HzANBgkqhkiG9w0BAQsFAAOCAQEAe5M2+7uMiEPblUN0KaGBa0pPuTnmrwywboo0CDh7LL/gZ8nFRha9DMmhe23XFKCPdgyh8SuijTTdFfjMnkkq4FdGn6uilF9PlaTcUfV/pte26oOW+/H70GZqA/JphjJc2qiYAZfIZExLQFcgTR7upoAwXhXos3K7fdeN8uI955fguz2n+hQJHtxJylQ8AhsSpcb8vxJj040DXq1GXU0fi9lL0BIze0mvUuB3WYHBTxU2hDbcFGS9gmGBX8hbR9uWhrwZBELCMUPSP4v9Pg91SBMjMBENQ96SGaCZjtFNagaekgYw63gDRFjf1Op6tcMIGYSAg7NQmBmm05uHnhDrdw==","attributes":{"enabled":true,"nbf":1583452770,"exp":1646525370,"created":1583453370,"updated":1583453370,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certificate2/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1583453354,"updated":1583453354}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending"}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: - no-cache content-length: - - '2449' + - '88' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:34 GMT + - Tue, 28 Jul 2020 20:50:29 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -910,21 +912,18 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: - body: '{"policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, - "x509_props": {"subject": "CN=*.microsoft.com", "sans": {"dns_names": ["sdk.azure-int.net"]}, - "validity_months": 24}, "issuer": {"name": "Self"}}}' + body: null headers: Accept: - application/json @@ -932,36 +931,27 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '302' - Content-Type: - - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) - method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate3/create?api-version=7.1-preview + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAreaRHSNid38C+6JGDwKAv7pyJvMYCpglU2+XJRtMgKreYqxP2zuWlbRR9TegT7jBMVGjel9yHGgjEu3hgaNzWrOnoeAg2UyNsbEX1u8f1lqSR4xNoLkNgY5+Tjzl713qrRcJQ/qL/cYbH0+u81YNhc5kkiVIIQbnNDQkDhKzRhVAb6KI1F2HrNgKkegvfi8M4DC31eziNvjxyjzJnWqu4X9YrhdYNE0omDoWnLZU5ZQpaHBMA3p85SDw7I2l0iIf1GwVHzq4vyVPqvOfWRVYFchOFukEGLUhfgIf0mvHgqLbWw6b+/+9htBaFYO7rPreBUPj841fhfOPb80G9QLd6QIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGwV84Qs1X/GHGcdmg3gJLwekj0elGXYbGTa8PF7bli6WZHE0RGSI9PbfkLB8ksA05BBhoXuHlbx9n0+NKH2RynbEkAj7NeDZbIkOeS5KindZnc1NYfLOGNXxqRATQoyTSMqbrZeYRo2OuBQ0GJEx74saVFDF9MBmvRKFflEpAzbgrcsB4CxMkyj2yxmRVLyH1xUyFx1Uq6svlidyjOrhni6h5tWy2V2xik6MgnFMoTNZYVvkWwSZAdH6izkYMSQPFEcm2+RQ7noguZ4EQ2H32v0NaVruP4ChzAIQooN3xMzI2klzSOZgQb89CRAtZUXKxp3QLefotrJwhQTX8/jhk8=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"4a14e1d409104aff9209b647f52eee90"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: - no-cache content-length: - - '1346' + - '88' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:35 GMT + - Tue, 28 Jul 2020 20:50:31 GMT expires: - '-1' - location: - - https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview&request_id=4a14e1d409104aff9209b647f52eee90 pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -969,16 +959,16 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 202 - message: Accepted + code: 404 + message: Not Found - request: body: null headers: @@ -989,29 +979,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAreaRHSNid38C+6JGDwKAv7pyJvMYCpglU2+XJRtMgKreYqxP2zuWlbRR9TegT7jBMVGjel9yHGgjEu3hgaNzWrOnoeAg2UyNsbEX1u8f1lqSR4xNoLkNgY5+Tjzl713qrRcJQ/qL/cYbH0+u81YNhc5kkiVIIQbnNDQkDhKzRhVAb6KI1F2HrNgKkegvfi8M4DC31eziNvjxyjzJnWqu4X9YrhdYNE0omDoWnLZU5ZQpaHBMA3p85SDw7I2l0iIf1GwVHzq4vyVPqvOfWRVYFchOFukEGLUhfgIf0mvHgqLbWw6b+/+9htBaFYO7rPreBUPj841fhfOPb80G9QLd6QIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGwV84Qs1X/GHGcdmg3gJLwekj0elGXYbGTa8PF7bli6WZHE0RGSI9PbfkLB8ksA05BBhoXuHlbx9n0+NKH2RynbEkAj7NeDZbIkOeS5KindZnc1NYfLOGNXxqRATQoyTSMqbrZeYRo2OuBQ0GJEx74saVFDF9MBmvRKFflEpAzbgrcsB4CxMkyj2yxmRVLyH1xUyFx1Uq6svlidyjOrhni6h5tWy2V2xik6MgnFMoTNZYVvkWwSZAdH6izkYMSQPFEcm2+RQ7noguZ4EQ2H32v0NaVruP4ChzAIQooN3xMzI2klzSOZgQb89CRAtZUXKxp3QLefotrJwhQTX8/jhk8=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"4a14e1d409104aff9209b647f52eee90"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: - no-cache content-length: - - '1346' + - '88' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:35 GMT + - Tue, 28 Jul 2020 20:50:33 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -1019,16 +1006,16 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1039,29 +1026,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAreaRHSNid38C+6JGDwKAv7pyJvMYCpglU2+XJRtMgKreYqxP2zuWlbRR9TegT7jBMVGjel9yHGgjEu3hgaNzWrOnoeAg2UyNsbEX1u8f1lqSR4xNoLkNgY5+Tjzl713qrRcJQ/qL/cYbH0+u81YNhc5kkiVIIQbnNDQkDhKzRhVAb6KI1F2HrNgKkegvfi8M4DC31eziNvjxyjzJnWqu4X9YrhdYNE0omDoWnLZU5ZQpaHBMA3p85SDw7I2l0iIf1GwVHzq4vyVPqvOfWRVYFchOFukEGLUhfgIf0mvHgqLbWw6b+/+9htBaFYO7rPreBUPj841fhfOPb80G9QLd6QIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGwV84Qs1X/GHGcdmg3gJLwekj0elGXYbGTa8PF7bli6WZHE0RGSI9PbfkLB8ksA05BBhoXuHlbx9n0+NKH2RynbEkAj7NeDZbIkOeS5KindZnc1NYfLOGNXxqRATQoyTSMqbrZeYRo2OuBQ0GJEx74saVFDF9MBmvRKFflEpAzbgrcsB4CxMkyj2yxmRVLyH1xUyFx1Uq6svlidyjOrhni6h5tWy2V2xik6MgnFMoTNZYVvkWwSZAdH6izkYMSQPFEcm2+RQ7noguZ4EQ2H32v0NaVruP4ChzAIQooN3xMzI2klzSOZgQb89CRAtZUXKxp3QLefotrJwhQTX8/jhk8=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"4a14e1d409104aff9209b647f52eee90"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: - no-cache content-length: - - '1346' + - '88' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:45 GMT + - Tue, 28 Jul 2020 20:50:35 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -1069,16 +1053,16 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1089,29 +1073,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAreaRHSNid38C+6JGDwKAv7pyJvMYCpglU2+XJRtMgKreYqxP2zuWlbRR9TegT7jBMVGjel9yHGgjEu3hgaNzWrOnoeAg2UyNsbEX1u8f1lqSR4xNoLkNgY5+Tjzl713qrRcJQ/qL/cYbH0+u81YNhc5kkiVIIQbnNDQkDhKzRhVAb6KI1F2HrNgKkegvfi8M4DC31eziNvjxyjzJnWqu4X9YrhdYNE0omDoWnLZU5ZQpaHBMA3p85SDw7I2l0iIf1GwVHzq4vyVPqvOfWRVYFchOFukEGLUhfgIf0mvHgqLbWw6b+/+9htBaFYO7rPreBUPj841fhfOPb80G9QLd6QIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGwV84Qs1X/GHGcdmg3gJLwekj0elGXYbGTa8PF7bli6WZHE0RGSI9PbfkLB8ksA05BBhoXuHlbx9n0+NKH2RynbEkAj7NeDZbIkOeS5KindZnc1NYfLOGNXxqRATQoyTSMqbrZeYRo2OuBQ0GJEx74saVFDF9MBmvRKFflEpAzbgrcsB4CxMkyj2yxmRVLyH1xUyFx1Uq6svlidyjOrhni6h5tWy2V2xik6MgnFMoTNZYVvkWwSZAdH6izkYMSQPFEcm2+RQ7noguZ4EQ2H32v0NaVruP4ChzAIQooN3xMzI2klzSOZgQb89CRAtZUXKxp3QLefotrJwhQTX8/jhk8=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"4a14e1d409104aff9209b647f52eee90"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: - no-cache content-length: - - '1346' + - '88' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:09:55 GMT + - Tue, 28 Jul 2020 20:50:37 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -1119,16 +1100,16 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1139,27 +1120,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAreaRHSNid38C+6JGDwKAv7pyJvMYCpglU2+XJRtMgKreYqxP2zuWlbRR9TegT7jBMVGjel9yHGgjEu3hgaNzWrOnoeAg2UyNsbEX1u8f1lqSR4xNoLkNgY5+Tjzl713qrRcJQ/qL/cYbH0+u81YNhc5kkiVIIQbnNDQkDhKzRhVAb6KI1F2HrNgKkegvfi8M4DC31eziNvjxyjzJnWqu4X9YrhdYNE0omDoWnLZU5ZQpaHBMA3p85SDw7I2l0iIf1GwVHzq4vyVPqvOfWRVYFchOFukEGLUhfgIf0mvHgqLbWw6b+/+9htBaFYO7rPreBUPj841fhfOPb80G9QLd6QIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAGwV84Qs1X/GHGcdmg3gJLwekj0elGXYbGTa8PF7bli6WZHE0RGSI9PbfkLB8ksA05BBhoXuHlbx9n0+NKH2RynbEkAj7NeDZbIkOeS5KindZnc1NYfLOGNXxqRATQoyTSMqbrZeYRo2OuBQ0GJEx74saVFDF9MBmvRKFflEpAzbgrcsB4CxMkyj2yxmRVLyH1xUyFx1Uq6svlidyjOrhni6h5tWy2V2xik6MgnFMoTNZYVvkWwSZAdH6izkYMSQPFEcm2+RQ7noguZ4EQ2H32v0NaVruP4ChzAIQooN3xMzI2klzSOZgQb89CRAtZUXKxp3QLefotrJwhQTX8/jhk8=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certificate3","request_id":"4a14e1d409104aff9209b647f52eee90"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: - no-cache content-length: - - '1267' + - '88' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:10:05 GMT + - Tue, 28 Jul 2020 20:50:39 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -1167,16 +1147,16 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1187,27 +1167,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/f76e2bb1ee4247b4be1f2356ca948899","kid":"https://vaultname.vault.azure.net/keys/certificate3/f76e2bb1ee4247b4be1f2356ca948899","sid":"https://vaultname.vault.azure.net/secrets/certificate3/f76e2bb1ee4247b4be1f2356ca948899","x5t":"K9LsPFrb0-STD314cCJkqa3etQ0","cer":"MIIDWjCCAkKgAwIBAgIQFJGuGDM8TfeVKEOxJ4L60jANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwMzA1MjM1OTU2WhcNMjIwMzA2MDAwOTU2WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt5pEdI2J3fwL7okYPAoC/unIm8xgKmCVTb5clG0yAqt5irE/bO5aVtFH1N6BPuMExUaN6X3IcaCMS7eGBo3Nas6eh4CDZTI2xsRfW7x/WWpJHjE2guQ2Bjn5OPOXvXeqtFwlD+ov9xhsfT67zVg2FzmSSJUghBuc0NCQOErNGFUBvoojUXYes2AqR6C9+LwzgMLfV7OI2+PHKPMmdaq7hf1iuF1g0TSiYOhactlTllClocEwDenzlIPDsjaXSIh/UbBUfOri/JU+q859ZFVgVyE4W6QQYtSF+Ah/Sa8eCottbDpv7/72G0FoVg7us+t4FQ+PzjV+F849vzQb1At3pAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFA63zhu/tQ/5MTvB8MxJoNV/Qr4OMB0GA1UdDgQWBBQOt84bv7UP+TE7wfDMSaDVf0K+DjANBgkqhkiG9w0BAQsFAAOCAQEAZ8ba+K7afT3JBvFQ1F98eYPlCuhE9Y3FaKNNqp8thWqJbK353UZ/8seNN8B1II6LyKjUXQN7QhOoOFkkwHZhd1pGdPebLZTnfEQT34LAs/fyoUZrYFBoJL1JAqOMLTVUEdgrNjEmZH2aBok0fXv/atuCGLqgK2v6uhg5mAdxkMue6fwCk1YAG2WOK4LLsvbNQR5OdPOWmnPLuu7AJEochr1eocmBD3bhWr8cAqOo67+d/DD3HrKxTiVIvitU0ldZkoentEwsHP0elRid/BQPlwI3e91gQ542E8EpK0ixrKXZv5VtwdNr2wUT+r1XP/rYil4HT3mvxCJl4w6ABdLoTg==","attributes":{"enabled":true,"nbf":1583452796,"exp":1646525396,"created":1583453396,"updated":1583453396,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certificate3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1583453375,"updated":1583453375}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending"}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: - no-cache content-length: - - '2449' + - '88' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:10:05 GMT + - Tue, 28 Jul 2020 20:50:42 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -1215,16 +1194,16 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1235,27 +1214,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/certificate0","x5t":"gy17olot0BV7OJXhOHa8Xr2yRIo","attributes":{"enabled":true,"nbf":1583452719,"exp":1646525319,"created":1583453319,"updated":1583453319},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/certificate1","x5t":"dZ2aA1SjRZ_jpz5SlV5Gk-W7c-c","attributes":{"enabled":true,"nbf":1583452744,"exp":1646525344,"created":1583453344,"updated":1583453344},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/certificate2","x5t":"WagTdeRzWdfoVX8Vxaoe6wQqlDM","attributes":{"enabled":true,"nbf":1583452770,"exp":1646525370,"created":1583453370,"updated":1583453370},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/certificate3","x5t":"K9LsPFrb0-STD314cCJkqa3etQ0","attributes":{"enabled":true,"nbf":1583452796,"exp":1646525396,"created":1583453396,"updated":1583453396},"subject":""}],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: - no-cache content-length: - - '983' + - '88' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:10:06 GMT + - Tue, 28 Jul 2020 20:50:44 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -1263,16 +1241,16 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1283,27 +1261,25 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate-name/versions?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"value":[],"nextLink":null}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/cert","deletedDate":1595969429,"scheduledPurgeDate":1603745429,"id":"https://vaultname.vault.azure.net/certificates/cert/451dbff41524417d9df66bc0e412498b","kid":"https://vaultname.vault.azure.net/keys/cert/451dbff41524417d9df66bc0e412498b","sid":"https://vaultname.vault.azure.net/secrets/cert/451dbff41524417d9df66bc0e412498b","x5t":"MmeH6uSJxeVqk5SQNoq5aXXj2Ww","cer":"MIIDWjCCAkKgAwIBAgIQB9YBbfdARhyOLxba/2655jANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwNzI4MjA0MDI1WhcNMjIwNzI4MjA1MDI1WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCaCx5X7zHUjVmRgtIAIyTU0JRELjr6t+YMgU7UYmUOZgZ8AAD2qj/XHg1BnSf1wBVzeU/DqYBgwX1aOsFw6EDBu2Vgx7e+KN9kBvHx6HZ/Sv5FXLmn6uoNfrOi9qMyId4qmLLwJNUxoi06palKhZqSbeL0sZIZ7b4UuxbdGo+LlOoEEKalU4BYJDGDaJRYxG/w89ILADrvoNoq6MIsVPwXj+sdbbWA4Riu+n3a/+LnlGxrKH5uiY6U3//5EtMTC9EaQ6Jzv4kBbR3WGVzMVjZNQ8OEoSrBXQWqDa2Fs1ufV/hHR7JSWT6UcrjEveEciP+171n8TWwYTTC7n20Giy0rAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFNj97ISMEFdtatv1ry6klJwCkXhNMB0GA1UdDgQWBBTY/eyEjBBXbWrb9a8upJScApF4TTANBgkqhkiG9w0BAQsFAAOCAQEAXs6aB4157hs+IkMXD25H0JmIrCfeuykO1XvLwri/MurBK/IXbJ+MoHjmTrpZ/4E7Mt1xf6bqsArEG0m4/fXGorTz6pK+W6WgZVz7bSpxGMCuNEii1gHzbuMn4L0uE6f4mD++8tOlPif8e7leQEtQgScFNl0jCJygFHimtc+pGKP/DuPkHCjTl3mjEMma8jh4huttihc8kJzn96g3EcGehzvS49ICoO0Fa7TQITfkYKofsAHz3wJhUPGqdzBfBhKL8SmbVRX75B6ThWd2K0i7p61M0mGt7g+FVx38l2G3oLN67Bp7s6zibA9vXvIrmxWBJBKh2v6uJgYx1cbHnZn5kA==","attributes":{"enabled":true,"nbf":1595968825,"exp":1659041425,"created":1595969425,"updated":1595969425,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595969387,"updated":1595969403}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert/pending"}}' headers: cache-control: - no-cache content-length: - - '28' + - '2576' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:10:06 GMT + - Tue, 28 Jul 2020 20:50:46 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -1311,11 +1287,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: @@ -1331,27 +1307,25 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1-preview response: body: - string: '{"value":[],"nextLink":null}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/cert","deletedDate":1595969429,"scheduledPurgeDate":1603745429,"id":"https://vaultname.vault.azure.net/certificates/cert","x5t":"MmeH6uSJxeVqk5SQNoq5aXXj2Ww","attributes":{"enabled":true,"nbf":1595968825,"exp":1659041425,"created":1595969425,"updated":1595969425,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":null}' headers: cache-control: - no-cache content-length: - - '28' + - '452' content-type: - application/json; charset=utf-8 date: - - Fri, 06 Mar 2020 00:10:06 GMT + - Tue, 28 Jul 2020 20:50:46 GMT expires: - '-1' pragma: - no-cache - server: - - Microsoft-IIS/10.0 strict-transport-security: - max-age=31536000;includeSubDomains x-aspnet-version: @@ -1359,11 +1333,11 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-network-info: - - addr=76.121.58.221;act_addr_fam=InterNetwork; + - conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: - westus x-ms-keyvault-service-version: - - 1.1.0.897 + - 1.1.10.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_examples_certificates_async.test_example_certificate_list_operations.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_examples_certificates_async.test_example_certificate_list_operations.yaml index 1584a4812eaf..70196fdfe301 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_examples_certificates_async.test_example_certificate_list_operations.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_examples_certificates_async.test_example_certificate_list_operations.yaml @@ -9,9 +9,9 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate0/create?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/create?api-version=7.1-preview response: body: string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer @@ -20,28 +20,27 @@ interactions: cache-control: no-cache content-length: '87' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:09 GMT + date: Tue, 28 Jul 2020 20:51:25 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", resource="https://vault.azure.net" x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate0/create?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/create?api-version=7.1-preview - request: - body: '{"policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, - "x509_props": {"subject": "CN=*.microsoft.com", "sans": {"dns_names": ["sdk.azure-int.net"]}, - "validity_months": 24}, "issuer": {"name": "Self"}}}' + body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": + {"name": "Self"}, "key_props": {"key_size": 2048, "reuse_key": false, "kty": + "RSA", "exportable": true}, "x509_props": {"subject": "CN=*.microsoft.com", + "validity_months": 24, "sans": {"dns_names": ["sdk.azure-int.net"]}}}}' headers: Accept: - application/json @@ -50,1459 +49,878 @@ interactions: Content-Type: - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate0/create?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/create?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtqSm9ntpNJGosUpxv+CAD3k2E04hwO5ZHs8GBmGBEp8ptKNbDbH6cjy78YnLSOrDekrmadVVN607xId+H+gOMKbmKP+PMa0bR1EBm1T3F0l1vqo61vX9ghgX4i8vCM3qmE3JdTi8nX9CM5iSW4dLlwIvyGfAjpCaaK1u+oDj/m3L1UoHoaSVpeFzOudTMn1e9BmHMOKCXoKXVxK6q5ArT3cVmx7sfvMWK+Enrtqq0aseDvFpFGlfn0JO5qt82Tm7Qh3Be5zCg0IpfW85FV5oyH2RYsLZYNur8j0/6x7fJJBJos8dLC16rcgGq/yiUO8ZtjB/4d3MRVU5Zn0YFC7bKQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACoSPZpOm5/MgdI3hS0xDg2dgdIT4KAJ6gRKHAkDBYqKwvQS44PSI+Lp2lt2wcWc/YgOdXzCvee+RGXOeU0/IYN+f2Gf9l7pQ77j2VKKX7fL2styZ6lDPcnkYfqmUBFG8Y6vrv4rXd1xMC6PtVYbX+sm8PH2KQd6x/9LdlGJWx9BBeOpnoAqEJbsYqMyBdKUGzkqKKx73cLY2Sr3vCmpSvWUw49bKaxSUcr5kSO7YCR0IG/mRkSRhc8C6TR/DuezHsoaOM+G6347YPb/hDYE18i5Y/B68KqdtC2CaKOzIFBRP5vcC41ELCwFmiPetbC/YZpWREQpKkB8i+2q6wZx6tk=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqK4CCjdQ1o9kKUFbNwfeuQqf+SKawBHnfDXBTh7Llfh7QF84XurBFdffkoS05bcx3dkItLJuhZcc5TwhXcqq+PhUHGFpocGH4RiYvKtOt1bM13rtUtju973VE86Rqm8/hadxnFkEncnjr6kmtXgKJ9+xyrWnuWILIUoLr8MgyHPcyiY2F1hAnsy052StbQMlGtbAFGqvjN3PO93PeoA9RWbxIa/ISkzHMusOkNodb+oOTkiVsSGgOPb8F0nIdG+AR147nc+p1kn0Jzsyxx/y+gJJjMjB8aI3a3sRwCbuxYL/dKLhx5DRu6RmqwV8S47wxjckUrj0MIx8nPiw6NJc0wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAH+oaWi/asmAC8XsqH1RTFHvne0gpZyb5/cM/fDdUArctxkbCgg07RQIR8rGOXVVyPnFCVYju72FOW1NJznXMNF0USrQiv5TfgcZECWvEDmKBR8j+2baDb+s+P3ugqSHY4YCb5DKNdCiOZOtQQRB6sUSsxdv4mzT7VVrmXDNl9z/HBKq6nmgcaDvxO8ATCdX2sSxuGIwWBXZqrJHrlOpDYjqtIguOl+ZrTiENqva6Icdz7Kkb2L6k/0LC2+mtxX+ENY2UXUBAR9GIJpLnQSSnl4Y3bQ/dTMtylWzXSlNLXnGXOoHa7E+2ugcA1mEwDum7ei5OpW9lDkqqP+j74ytNPI=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"f15e7ec4a5eb450c9432436ab4f451a2"}' + time based on the issuer provider. Please check again later.","request_id":"60bdf98289ad49f28d8b8db8263694b5"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:11 GMT + date: Tue, 28 Jul 2020 20:51:26 GMT expires: '-1' - location: - - h - - t - - t - - p - - s - - ':' - - / - - / - - r - - z - - '2' - - g - - '3' - - x - - o - - '6' - - '6' - - e - - '6' - - n - - l - - '5' - - f - - o - - k - - q - - x - - '3' - - k - - m - - m - - q - - . - - v - - a - - u - - l - - t - - . - - a - - z - - u - - r - - e - - . - - n - - e - - t - - / - - c - - e - - r - - t - - i - - f - - i - - c - - a - - t - - e - - s - - / - - c - - e - - r - - t - - i - - f - - i - - c - - a - - t - - e - - '0' - - / - - p - - e - - n - - d - - i - - n - - g - - '?' - - a - - p - - i - - '-' - - v - - e - - r - - s - - i - - o - - n - - '=' - - '7' - - . - - '1' - - '-' - - p - - r - - e - - v - - i - - e - - w - - '&' - - r - - e - - q - - u - - e - - s - - t - - _ - - i - - d - - '=' - - f - - '1' - - '5' - - e - - '7' - - e - - c - - '4' - - a - - '5' - - e - - b - - '4' - - '5' - - '0' - - c - - '9' - - '4' - - '3' - - '2' - - '4' - - '3' - - '6' - - a - - b - - '4' - - f - - '4' - - '5' - - '1' - - a - - '2' + location: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview&request_id=60bdf98289ad49f28d8b8db8263694b5 pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 202 message: Accepted - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate0/create?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/create?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtqSm9ntpNJGosUpxv+CAD3k2E04hwO5ZHs8GBmGBEp8ptKNbDbH6cjy78YnLSOrDekrmadVVN607xId+H+gOMKbmKP+PMa0bR1EBm1T3F0l1vqo61vX9ghgX4i8vCM3qmE3JdTi8nX9CM5iSW4dLlwIvyGfAjpCaaK1u+oDj/m3L1UoHoaSVpeFzOudTMn1e9BmHMOKCXoKXVxK6q5ArT3cVmx7sfvMWK+Enrtqq0aseDvFpFGlfn0JO5qt82Tm7Qh3Be5zCg0IpfW85FV5oyH2RYsLZYNur8j0/6x7fJJBJos8dLC16rcgGq/yiUO8ZtjB/4d3MRVU5Zn0YFC7bKQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACoSPZpOm5/MgdI3hS0xDg2dgdIT4KAJ6gRKHAkDBYqKwvQS44PSI+Lp2lt2wcWc/YgOdXzCvee+RGXOeU0/IYN+f2Gf9l7pQ77j2VKKX7fL2styZ6lDPcnkYfqmUBFG8Y6vrv4rXd1xMC6PtVYbX+sm8PH2KQd6x/9LdlGJWx9BBeOpnoAqEJbsYqMyBdKUGzkqKKx73cLY2Sr3vCmpSvWUw49bKaxSUcr5kSO7YCR0IG/mRkSRhc8C6TR/DuezHsoaOM+G6347YPb/hDYE18i5Y/B68KqdtC2CaKOzIFBRP5vcC41ELCwFmiPetbC/YZpWREQpKkB8i+2q6wZx6tk=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqK4CCjdQ1o9kKUFbNwfeuQqf+SKawBHnfDXBTh7Llfh7QF84XurBFdffkoS05bcx3dkItLJuhZcc5TwhXcqq+PhUHGFpocGH4RiYvKtOt1bM13rtUtju973VE86Rqm8/hadxnFkEncnjr6kmtXgKJ9+xyrWnuWILIUoLr8MgyHPcyiY2F1hAnsy052StbQMlGtbAFGqvjN3PO93PeoA9RWbxIa/ISkzHMusOkNodb+oOTkiVsSGgOPb8F0nIdG+AR147nc+p1kn0Jzsyxx/y+gJJjMjB8aI3a3sRwCbuxYL/dKLhx5DRu6RmqwV8S47wxjckUrj0MIx8nPiw6NJc0wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAH+oaWi/asmAC8XsqH1RTFHvne0gpZyb5/cM/fDdUArctxkbCgg07RQIR8rGOXVVyPnFCVYju72FOW1NJznXMNF0USrQiv5TfgcZECWvEDmKBR8j+2baDb+s+P3ugqSHY4YCb5DKNdCiOZOtQQRB6sUSsxdv4mzT7VVrmXDNl9z/HBKq6nmgcaDvxO8ATCdX2sSxuGIwWBXZqrJHrlOpDYjqtIguOl+ZrTiENqva6Icdz7Kkb2L6k/0LC2+mtxX+ENY2UXUBAR9GIJpLnQSSnl4Y3bQ/dTMtylWzXSlNLXnGXOoHa7E+2ugcA1mEwDum7ei5OpW9lDkqqP+j74ytNPI=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"f15e7ec4a5eb450c9432436ab4f451a2"}' + time based on the issuer provider. Please check again later.","request_id":"60bdf98289ad49f28d8b8db8263694b5"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:11 GMT + date: Tue, 28 Jul 2020 20:51:26 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtqSm9ntpNJGosUpxv+CAD3k2E04hwO5ZHs8GBmGBEp8ptKNbDbH6cjy78YnLSOrDekrmadVVN607xId+H+gOMKbmKP+PMa0bR1EBm1T3F0l1vqo61vX9ghgX4i8vCM3qmE3JdTi8nX9CM5iSW4dLlwIvyGfAjpCaaK1u+oDj/m3L1UoHoaSVpeFzOudTMn1e9BmHMOKCXoKXVxK6q5ArT3cVmx7sfvMWK+Enrtqq0aseDvFpFGlfn0JO5qt82Tm7Qh3Be5zCg0IpfW85FV5oyH2RYsLZYNur8j0/6x7fJJBJos8dLC16rcgGq/yiUO8ZtjB/4d3MRVU5Zn0YFC7bKQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACoSPZpOm5/MgdI3hS0xDg2dgdIT4KAJ6gRKHAkDBYqKwvQS44PSI+Lp2lt2wcWc/YgOdXzCvee+RGXOeU0/IYN+f2Gf9l7pQ77j2VKKX7fL2styZ6lDPcnkYfqmUBFG8Y6vrv4rXd1xMC6PtVYbX+sm8PH2KQd6x/9LdlGJWx9BBeOpnoAqEJbsYqMyBdKUGzkqKKx73cLY2Sr3vCmpSvWUw49bKaxSUcr5kSO7YCR0IG/mRkSRhc8C6TR/DuezHsoaOM+G6347YPb/hDYE18i5Y/B68KqdtC2CaKOzIFBRP5vcC41ELCwFmiPetbC/YZpWREQpKkB8i+2q6wZx6tk=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqK4CCjdQ1o9kKUFbNwfeuQqf+SKawBHnfDXBTh7Llfh7QF84XurBFdffkoS05bcx3dkItLJuhZcc5TwhXcqq+PhUHGFpocGH4RiYvKtOt1bM13rtUtju973VE86Rqm8/hadxnFkEncnjr6kmtXgKJ9+xyrWnuWILIUoLr8MgyHPcyiY2F1hAnsy052StbQMlGtbAFGqvjN3PO93PeoA9RWbxIa/ISkzHMusOkNodb+oOTkiVsSGgOPb8F0nIdG+AR147nc+p1kn0Jzsyxx/y+gJJjMjB8aI3a3sRwCbuxYL/dKLhx5DRu6RmqwV8S47wxjckUrj0MIx8nPiw6NJc0wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAH+oaWi/asmAC8XsqH1RTFHvne0gpZyb5/cM/fDdUArctxkbCgg07RQIR8rGOXVVyPnFCVYju72FOW1NJznXMNF0USrQiv5TfgcZECWvEDmKBR8j+2baDb+s+P3ugqSHY4YCb5DKNdCiOZOtQQRB6sUSsxdv4mzT7VVrmXDNl9z/HBKq6nmgcaDvxO8ATCdX2sSxuGIwWBXZqrJHrlOpDYjqtIguOl+ZrTiENqva6Icdz7Kkb2L6k/0LC2+mtxX+ENY2UXUBAR9GIJpLnQSSnl4Y3bQ/dTMtylWzXSlNLXnGXOoHa7E+2ugcA1mEwDum7ei5OpW9lDkqqP+j74ytNPI=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"f15e7ec4a5eb450c9432436ab4f451a2"}' + time based on the issuer provider. Please check again later.","request_id":"60bdf98289ad49f28d8b8db8263694b5"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:22 GMT + date: Tue, 28 Jul 2020 20:51:31 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtqSm9ntpNJGosUpxv+CAD3k2E04hwO5ZHs8GBmGBEp8ptKNbDbH6cjy78YnLSOrDekrmadVVN607xId+H+gOMKbmKP+PMa0bR1EBm1T3F0l1vqo61vX9ghgX4i8vCM3qmE3JdTi8nX9CM5iSW4dLlwIvyGfAjpCaaK1u+oDj/m3L1UoHoaSVpeFzOudTMn1e9BmHMOKCXoKXVxK6q5ArT3cVmx7sfvMWK+Enrtqq0aseDvFpFGlfn0JO5qt82Tm7Qh3Be5zCg0IpfW85FV5oyH2RYsLZYNur8j0/6x7fJJBJos8dLC16rcgGq/yiUO8ZtjB/4d3MRVU5Zn0YFC7bKQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACoSPZpOm5/MgdI3hS0xDg2dgdIT4KAJ6gRKHAkDBYqKwvQS44PSI+Lp2lt2wcWc/YgOdXzCvee+RGXOeU0/IYN+f2Gf9l7pQ77j2VKKX7fL2styZ6lDPcnkYfqmUBFG8Y6vrv4rXd1xMC6PtVYbX+sm8PH2KQd6x/9LdlGJWx9BBeOpnoAqEJbsYqMyBdKUGzkqKKx73cLY2Sr3vCmpSvWUw49bKaxSUcr5kSO7YCR0IG/mRkSRhc8C6TR/DuezHsoaOM+G6347YPb/hDYE18i5Y/B68KqdtC2CaKOzIFBRP5vcC41ELCwFmiPetbC/YZpWREQpKkB8i+2q6wZx6tk=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqK4CCjdQ1o9kKUFbNwfeuQqf+SKawBHnfDXBTh7Llfh7QF84XurBFdffkoS05bcx3dkItLJuhZcc5TwhXcqq+PhUHGFpocGH4RiYvKtOt1bM13rtUtju973VE86Rqm8/hadxnFkEncnjr6kmtXgKJ9+xyrWnuWILIUoLr8MgyHPcyiY2F1hAnsy052StbQMlGtbAFGqvjN3PO93PeoA9RWbxIa/ISkzHMusOkNodb+oOTkiVsSGgOPb8F0nIdG+AR147nc+p1kn0Jzsyxx/y+gJJjMjB8aI3a3sRwCbuxYL/dKLhx5DRu6RmqwV8S47wxjckUrj0MIx8nPiw6NJc0wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAH+oaWi/asmAC8XsqH1RTFHvne0gpZyb5/cM/fDdUArctxkbCgg07RQIR8rGOXVVyPnFCVYju72FOW1NJznXMNF0USrQiv5TfgcZECWvEDmKBR8j+2baDb+s+P3ugqSHY4YCb5DKNdCiOZOtQQRB6sUSsxdv4mzT7VVrmXDNl9z/HBKq6nmgcaDvxO8ATCdX2sSxuGIwWBXZqrJHrlOpDYjqtIguOl+ZrTiENqva6Icdz7Kkb2L6k/0LC2+mtxX+ENY2UXUBAR9GIJpLnQSSnl4Y3bQ/dTMtylWzXSlNLXnGXOoHa7E+2ugcA1mEwDum7ei5OpW9lDkqqP+j74ytNPI=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"f15e7ec4a5eb450c9432436ab4f451a2"}' + time based on the issuer provider. Please check again later.","request_id":"60bdf98289ad49f28d8b8db8263694b5"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:31 GMT + date: Tue, 28 Jul 2020 20:51:36 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtqSm9ntpNJGosUpxv+CAD3k2E04hwO5ZHs8GBmGBEp8ptKNbDbH6cjy78YnLSOrDekrmadVVN607xId+H+gOMKbmKP+PMa0bR1EBm1T3F0l1vqo61vX9ghgX4i8vCM3qmE3JdTi8nX9CM5iSW4dLlwIvyGfAjpCaaK1u+oDj/m3L1UoHoaSVpeFzOudTMn1e9BmHMOKCXoKXVxK6q5ArT3cVmx7sfvMWK+Enrtqq0aseDvFpFGlfn0JO5qt82Tm7Qh3Be5zCg0IpfW85FV5oyH2RYsLZYNur8j0/6x7fJJBJos8dLC16rcgGq/yiUO8ZtjB/4d3MRVU5Zn0YFC7bKQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACoSPZpOm5/MgdI3hS0xDg2dgdIT4KAJ6gRKHAkDBYqKwvQS44PSI+Lp2lt2wcWc/YgOdXzCvee+RGXOeU0/IYN+f2Gf9l7pQ77j2VKKX7fL2styZ6lDPcnkYfqmUBFG8Y6vrv4rXd1xMC6PtVYbX+sm8PH2KQd6x/9LdlGJWx9BBeOpnoAqEJbsYqMyBdKUGzkqKKx73cLY2Sr3vCmpSvWUw49bKaxSUcr5kSO7YCR0IG/mRkSRhc8C6TR/DuezHsoaOM+G6347YPb/hDYE18i5Y/B68KqdtC2CaKOzIFBRP5vcC41ELCwFmiPetbC/YZpWREQpKkB8i+2q6wZx6tk=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certificate0","request_id":"f15e7ec4a5eb450c9432436ab4f451a2"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqK4CCjdQ1o9kKUFbNwfeuQqf+SKawBHnfDXBTh7Llfh7QF84XurBFdffkoS05bcx3dkItLJuhZcc5TwhXcqq+PhUHGFpocGH4RiYvKtOt1bM13rtUtju973VE86Rqm8/hadxnFkEncnjr6kmtXgKJ9+xyrWnuWILIUoLr8MgyHPcyiY2F1hAnsy052StbQMlGtbAFGqvjN3PO93PeoA9RWbxIa/ISkzHMusOkNodb+oOTkiVsSGgOPb8F0nIdG+AR147nc+p1kn0Jzsyxx/y+gJJjMjB8aI3a3sRwCbuxYL/dKLhx5DRu6RmqwV8S47wxjckUrj0MIx8nPiw6NJc0wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAH+oaWi/asmAC8XsqH1RTFHvne0gpZyb5/cM/fDdUArctxkbCgg07RQIR8rGOXVVyPnFCVYju72FOW1NJznXMNF0USrQiv5TfgcZECWvEDmKBR8j+2baDb+s+P3ugqSHY4YCb5DKNdCiOZOtQQRB6sUSsxdv4mzT7VVrmXDNl9z/HBKq6nmgcaDvxO8ATCdX2sSxuGIwWBXZqrJHrlOpDYjqtIguOl+ZrTiENqva6Icdz7Kkb2L6k/0LC2+mtxX+ENY2UXUBAR9GIJpLnQSSnl4Y3bQ/dTMtylWzXSlNLXnGXOoHa7E+2ugcA1mEwDum7ei5OpW9lDkqqP+j74ytNPI=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"60bdf98289ad49f28d8b8db8263694b5"}' headers: cache-control: no-cache - content-length: '1267' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:41 GMT + date: Tue, 28 Jul 2020 20:51:41 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate0/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate0/?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate0/e5e4ad64bb984791a41d61a76aa7a833","kid":"https://vaultname.vault.azure.net/keys/certificate0/e5e4ad64bb984791a41d61a76aa7a833","sid":"https://vaultname.vault.azure.net/secrets/certificate0/e5e4ad64bb984791a41d61a76aa7a833","x5t":"0aNPEESznAQwnGfNAV7ZIjS5AAM","cer":"MIIDWjCCAkKgAwIBAgIQAs1LzyuYQaejAuXPEaxl2zANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwMzA1MjM1ODM5WhcNMjIwMzA2MDAwODM5WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2pKb2e2k0kaixSnG/4IAPeTYTTiHA7lkezwYGYYESnym0o1sNsfpyPLvxictI6sN6SuZp1VU3rTvEh34f6A4wpuYo/48xrRtHUQGbVPcXSXW+qjrW9f2CGBfiLy8IzeqYTcl1OLydf0IzmJJbh0uXAi/IZ8COkJporW76gOP+bcvVSgehpJWl4XM651MyfV70GYcw4oJegpdXErqrkCtPdxWbHux+8xYr4Seu2qrRqx4O8WkUaV+fQk7mq3zZObtCHcF7nMKDQil9bzkVXmjIfZFiwtlg26vyPT/rHt8kkEmizx0sLXqtyAar/KJQ7xm2MH/h3cxFVTlmfRgULtspAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFN/WYubENJQ7FYdKUcFkJA2viOR0MB0GA1UdDgQWBBTf1mLmxDSUOxWHSlHBZCQNr4jkdDANBgkqhkiG9w0BAQsFAAOCAQEAD1dXpLz9grJGulQ7pvmntbDE/MJhMnArf3AZmxfiZai5mIxpZJWPcbqyYixVficgyXOD3C/clVYH2uFkMZaC/p3saKC1QNK11Y20qK0cHlEarp0uJ8Eayy4plcVFJ+FeLB1EzlNVzC8ejlxRj1RLfyGTnBk5brlff2+qsScdB25QZGiLMDSrzkQyQyENiGjkO5uhV6EfZTY5T3M3e9vzphNT1FiNtEqyPP0xeVGG2LHGmCQwGPYErY5lNGo9wyIDu2SO4SRQj3vf8f4teL1zsCLuiFYtK5/1fnxturEGoIazlXgIWEdFPg4MEJrsBnr6TzCSLgHp0l8FTDYKNsc6qg==","attributes":{"enabled":true,"nbf":1583452719,"exp":1646525319,"created":1583453319,"updated":1583453319,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certificate0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1583453291,"updated":1583453291}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certificate0/pending"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqK4CCjdQ1o9kKUFbNwfeuQqf+SKawBHnfDXBTh7Llfh7QF84XurBFdffkoS05bcx3dkItLJuhZcc5TwhXcqq+PhUHGFpocGH4RiYvKtOt1bM13rtUtju973VE86Rqm8/hadxnFkEncnjr6kmtXgKJ9+xyrWnuWILIUoLr8MgyHPcyiY2F1hAnsy052StbQMlGtbAFGqvjN3PO93PeoA9RWbxIa/ISkzHMusOkNodb+oOTkiVsSGgOPb8F0nIdG+AR147nc+p1kn0Jzsyxx/y+gJJjMjB8aI3a3sRwCbuxYL/dKLhx5DRu6RmqwV8S47wxjckUrj0MIx8nPiw6NJc0wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAH+oaWi/asmAC8XsqH1RTFHvne0gpZyb5/cM/fDdUArctxkbCgg07RQIR8rGOXVVyPnFCVYju72FOW1NJznXMNF0USrQiv5TfgcZECWvEDmKBR8j+2baDb+s+P3ugqSHY4YCb5DKNdCiOZOtQQRB6sUSsxdv4mzT7VVrmXDNl9z/HBKq6nmgcaDvxO8ATCdX2sSxuGIwWBXZqrJHrlOpDYjqtIguOl+ZrTiENqva6Icdz7Kkb2L6k/0LC2+mtxX+ENY2UXUBAR9GIJpLnQSSnl4Y3bQ/dTMtylWzXSlNLXnGXOoHa7E+2ugcA1mEwDum7ei5OpW9lDkqqP+j74ytNPI=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"60bdf98289ad49f28d8b8db8263694b5"}' headers: cache-control: no-cache - content-length: '2449' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:41 GMT + date: Tue, 28 Jul 2020 20:51:46 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate0/?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: - body: '{"policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, - "x509_props": {"subject": "CN=*.microsoft.com", "sans": {"dns_names": ["sdk.azure-int.net"]}, - "validity_months": 24}, "issuer": {"name": "Self"}}}' + body: null headers: Accept: - application/json - Content-Length: - - '302' - Content-Type: - - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) - method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate1/create?api-version=7.1-preview + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA73oESMrZdU+A0l82ZCPEOsA/nRWul9cwdHfbrLN2DqnUf2aAvKl91YKh50E9DpDWJm0fw+ryXjrAV8fpXb34ERUl5B7GlJzgrnwoN6RRU4raaoHd8vk7PYPKbcFQf6rkuiz7HZTNGhIIUttwR/QkzevpGUNyyuWWBRS/UVVzhV9zQWG1Lnw3y3ZYpOS+/tJTvW6XglTjLXzYVrF6fAstkm/4CRNdjIPT7b/V5B6iwYFhUjW3FqR5esnooKE72FosZTJETE8lCMWBrdXGYlUF09X5P8GHns8EXn4cVmi/6P6lZV+1kIPVfBxzqCrqiltOrW3ZAjUHJonPbvRQbTefgwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHlvUQUJsFmzngF52GQqRK0jh8/35bbbqtK6zTu33SzA5u3YDTMoo8MJrKoetoxvMOP+NEIWLKASe4mJ7ICdLb6o4mmX8rHMSlk4z7Asv4zw8MBuFwFZDQ4z0wzLHJg9oD4rN3YMHyJeH0n4UDE2HJJqlDMh3Kh4/WkjhvQ9/PpZv/oTqQD0y6gU49gXuJ2urEBud56LCTiCOGxLI1Y0UlcvewX5DkgoK9JQxRyddeMZHD5WAk6mwCuSa4U7mP7EX1CBmhTdPKFu6mDe8mAFuVpp36/6fUbJMpUwTjpe1CSWfrFlpKbY8spq+VWQ69X0PGfELEyL1FD2M5ejvWKRFs0=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"fca3402bbcf440049befe1f9731733dc"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqK4CCjdQ1o9kKUFbNwfeuQqf+SKawBHnfDXBTh7Llfh7QF84XurBFdffkoS05bcx3dkItLJuhZcc5TwhXcqq+PhUHGFpocGH4RiYvKtOt1bM13rtUtju973VE86Rqm8/hadxnFkEncnjr6kmtXgKJ9+xyrWnuWILIUoLr8MgyHPcyiY2F1hAnsy052StbQMlGtbAFGqvjN3PO93PeoA9RWbxIa/ISkzHMusOkNodb+oOTkiVsSGgOPb8F0nIdG+AR147nc+p1kn0Jzsyxx/y+gJJjMjB8aI3a3sRwCbuxYL/dKLhx5DRu6RmqwV8S47wxjckUrj0MIx8nPiw6NJc0wIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAH+oaWi/asmAC8XsqH1RTFHvne0gpZyb5/cM/fDdUArctxkbCgg07RQIR8rGOXVVyPnFCVYju72FOW1NJznXMNF0USrQiv5TfgcZECWvEDmKBR8j+2baDb+s+P3ugqSHY4YCb5DKNdCiOZOtQQRB6sUSsxdv4mzT7VVrmXDNl9z/HBKq6nmgcaDvxO8ATCdX2sSxuGIwWBXZqrJHrlOpDYjqtIguOl+ZrTiENqva6Icdz7Kkb2L6k/0LC2+mtxX+ENY2UXUBAR9GIJpLnQSSnl4Y3bQ/dTMtylWzXSlNLXnGXOoHa7E+2ugcA1mEwDum7ei5OpW9lDkqqP+j74ytNPI=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert","request_id":"60bdf98289ad49f28d8b8db8263694b5"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1251' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:42 GMT + date: Tue, 28 Jul 2020 20:51:51 GMT expires: '-1' - location: - - h - - t - - t - - p - - s - - ':' - - / - - / - - r - - z - - '2' - - g - - '3' - - x - - o - - '6' - - '6' - - e - - '6' - - n - - l - - '5' - - f - - o - - k - - q - - x - - '3' - - k - - m - - m - - q - - . - - v - - a - - u - - l - - t - - . - - a - - z - - u - - r - - e - - . - - n - - e - - t - - / - - c - - e - - r - - t - - i - - f - - i - - c - - a - - t - - e - - s - - / - - c - - e - - r - - t - - i - - f - - i - - c - - a - - t - - e - - '1' - - / - - p - - e - - n - - d - - i - - n - - g - - '?' - - a - - p - - i - - '-' - - v - - e - - r - - s - - i - - o - - n - - '=' - - '7' - - . - - '1' - - '-' - - p - - r - - e - - v - - i - - e - - w - - '&' - - r - - e - - q - - u - - e - - s - - t - - _ - - i - - d - - '=' - - f - - c - - a - - '3' - - '4' - - '0' - - '2' - - b - - b - - c - - f - - '4' - - '4' - - '0' - - '0' - - '4' - - '9' - - b - - e - - f - - e - - '1' - - f - - '9' - - '7' - - '3' - - '1' - - '7' - - '3' - - '3' - - d - - c pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 202 - message: Accepted - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate1/create?api-version=7.1-preview + code: 200 + message: OK + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA73oESMrZdU+A0l82ZCPEOsA/nRWul9cwdHfbrLN2DqnUf2aAvKl91YKh50E9DpDWJm0fw+ryXjrAV8fpXb34ERUl5B7GlJzgrnwoN6RRU4raaoHd8vk7PYPKbcFQf6rkuiz7HZTNGhIIUttwR/QkzevpGUNyyuWWBRS/UVVzhV9zQWG1Lnw3y3ZYpOS+/tJTvW6XglTjLXzYVrF6fAstkm/4CRNdjIPT7b/V5B6iwYFhUjW3FqR5esnooKE72FosZTJETE8lCMWBrdXGYlUF09X5P8GHns8EXn4cVmi/6P6lZV+1kIPVfBxzqCrqiltOrW3ZAjUHJonPbvRQbTefgwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHlvUQUJsFmzngF52GQqRK0jh8/35bbbqtK6zTu33SzA5u3YDTMoo8MJrKoetoxvMOP+NEIWLKASe4mJ7ICdLb6o4mmX8rHMSlk4z7Asv4zw8MBuFwFZDQ4z0wzLHJg9oD4rN3YMHyJeH0n4UDE2HJJqlDMh3Kh4/WkjhvQ9/PpZv/oTqQD0y6gU49gXuJ2urEBud56LCTiCOGxLI1Y0UlcvewX5DkgoK9JQxRyddeMZHD5WAk6mwCuSa4U7mP7EX1CBmhTdPKFu6mDe8mAFuVpp36/6fUbJMpUwTjpe1CSWfrFlpKbY8spq+VWQ69X0PGfELEyL1FD2M5ejvWKRFs0=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"fca3402bbcf440049befe1f9731733dc"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/0143b4a36d4e4f02a90ea8a0e47eb9d3","kid":"https://vaultname.vault.azure.net/keys/cert/0143b4a36d4e4f02a90ea8a0e47eb9d3","sid":"https://vaultname.vault.azure.net/secrets/cert/0143b4a36d4e4f02a90ea8a0e47eb9d3","x5t":"9JKOZRrhR-RL_tpFciQfENCMAeY","cer":"MIIDWjCCAkKgAwIBAgIQIBwp0DbRTUyOWVtEryomYTANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwNzI4MjA0MTQ4WhcNMjIwNzI4MjA1MTQ4WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCorgIKN1DWj2QpQVs3B965Cp/5IprAEed8NcFOHsuV+HtAXzhe6sEV19+ShLTltzHd2Qi0sm6FlxzlPCFdyqr4+FQcYWmhwYfhGJi8q063VszXeu1S2O73vdUTzpGqbz+Fp3GcWQSdyeOvqSa1eAon37HKtae5YgshSguvwyDIc9zKJjYXWECezLTnZK1tAyUa1sAUaq+M3c873c96gD1FZvEhr8hKTMcy6w6Q2h1v6g5OSJWxIaA49vwXSch0b4BHXjudz6nWSfQnOzLHH/L6AkmMyMHxojdrexHAJu7Fgv90ouHHkNG7pGarBXxLjvDGNyRSuPQwjHyc+LDo0lzTAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFNuE7kaKtiPHz3hnCzO0uXutdcPLMB0GA1UdDgQWBBTbhO5GirYjx894ZwsztLl7rXXDyzANBgkqhkiG9w0BAQsFAAOCAQEAbFTEfA7uVWx/u4hnYenDjETUaAc2u8C2Ov9gcOp7pqyzzk1F0UfM6O6+PolBpc+FFCyG/CMRpr4QP5jwxpZTayoZRm3XojNFr33AMdeXu5Wfhb+nIUIE4y475xyI1Z9kT4anXdH5S2UuQtrrmvNyAR/sU80oNnzE6vXFMEnNregxQ+V5UJb4UNte4OMHUb2CR/vZNOMqDQ5O9cm18mQ80a/UzschkQknz+Ml08mxCSUwDxLaTiwshRE9jG5O3sWyYwSC+uBQhsYzHZVfMq/kv1MBBVBaPpwmgrE+kW7F6L6DgVPNvTUwJBCOzqjY7Ovws59w/UjHzr251V9f3kXwJw==","attributes":{"enabled":true,"nbf":1595968908,"exp":1659041508,"created":1595969509,"updated":1595969509,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595969486,"updated":1595969486}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert/pending"}}' headers: cache-control: no-cache - content-length: '1346' + content-length: '2430' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:42 GMT + date: Tue, 28 Jul 2020 20:51:51 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA73oESMrZdU+A0l82ZCPEOsA/nRWul9cwdHfbrLN2DqnUf2aAvKl91YKh50E9DpDWJm0fw+ryXjrAV8fpXb34ERUl5B7GlJzgrnwoN6RRU4raaoHd8vk7PYPKbcFQf6rkuiz7HZTNGhIIUttwR/QkzevpGUNyyuWWBRS/UVVzhV9zQWG1Lnw3y3ZYpOS+/tJTvW6XglTjLXzYVrF6fAstkm/4CRNdjIPT7b/V5B6iwYFhUjW3FqR5esnooKE72FosZTJETE8lCMWBrdXGYlUF09X5P8GHns8EXn4cVmi/6P6lZV+1kIPVfBxzqCrqiltOrW3ZAjUHJonPbvRQbTefgwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHlvUQUJsFmzngF52GQqRK0jh8/35bbbqtK6zTu33SzA5u3YDTMoo8MJrKoetoxvMOP+NEIWLKASe4mJ7ICdLb6o4mmX8rHMSlk4z7Asv4zw8MBuFwFZDQ4z0wzLHJg9oD4rN3YMHyJeH0n4UDE2HJJqlDMh3Kh4/WkjhvQ9/PpZv/oTqQD0y6gU49gXuJ2urEBud56LCTiCOGxLI1Y0UlcvewX5DkgoK9JQxRyddeMZHD5WAk6mwCuSa4U7mP7EX1CBmhTdPKFu6mDe8mAFuVpp36/6fUbJMpUwTjpe1CSWfrFlpKbY8spq+VWQ69X0PGfELEyL1FD2M5ejvWKRFs0=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"fca3402bbcf440049befe1f9731733dc"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/cert","x5t":"9JKOZRrhR-RL_tpFciQfENCMAeY","attributes":{"enabled":true,"nbf":1595968908,"exp":1659041508,"created":1595969509,"updated":1595969509},"subject":""}],"nextLink":null}' headers: cache-control: no-cache - content-length: '1346' + content-length: '258' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:08:52 GMT + date: Tue, 28 Jul 2020 20:51:51 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates?api-version=7.1-preview +- request: + body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": + {"name": "Self"}, "key_props": {"key_size": 2048, "reuse_key": false, "kty": + "RSA", "exportable": true}, "x509_props": {"subject": "CN=*.microsoft.com", + "validity_months": 24, "sans": {"dns_names": ["sdk.azure-int.net"]}}}}' + headers: + Accept: + - application/json + Content-Length: + - '302' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/certificates/cert/create?api-version=7.1-preview + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv95au8DR6MfOVFbhMrB6Gl7SGoiTCfcvp89RHS6PKHlY80SvEL8GA2QRiINMvY6ahmXuAlYlH9RPwUASS4GNsOhP2o2EJfscT8x8Ndb6Pj2dkAn4ZBuf5FxI+4kb1WGG4k1sW0vMIkGEfIAeFnY1Gjl9puBGc7y8r/UhvO87Ay26v04OI51ilvowEwgygLRvPpJ/iAvzq2wkMnPkPAy4vMWiERp/rOvm7VsByOo4Uc4N9WGHh3KmFE5zCBnEelaYSTFXbX/074gsb5JoFkgY2RoUrTlye2pW1LIgL0RJjS6x9W6GpiTjT1U24Vlnf7/g2wPb5qglyTvBYDCas6HzQQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAEXR+rrBIoZCI4KaWEwa/tkDMMz9GuFQ9+38+C1Hf/zLjH0G1kAFzzhhHEn+MZdVeMeJpd2862K42SH5Yz/+LMkAI/1qzIq2mzxxVpnKbFj8zXOjet/jcvaYv3XjORmRbMpZs68lOmK1CEt2e97P/f+FtUTVD3Jl5BkjyyeTLWheFZ5zcpz3fJwhvnl7FW7jhptcFHUM5PBLvY/radlTnJYCJE5YRYSVUz3pCW2VhC3R5hDTYN380T/Wy0WUYNoPPweZlsSMNBcXm1Xlpal2MR9CKkA1fYTgnUL1CnUsjM+Wmt+AXz8UWzbT0qZSV93FekQNgkV+e0z6IvHa+uB/tYw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"04212d6ac74e49869a9285cec3346043"}' + headers: + cache-control: no-cache + content-length: '1338' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 20:51:52 GMT + expires: '-1' + location: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview&request_id=04212d6ac74e49869a9285cec3346043 + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/create?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA73oESMrZdU+A0l82ZCPEOsA/nRWul9cwdHfbrLN2DqnUf2aAvKl91YKh50E9DpDWJm0fw+ryXjrAV8fpXb34ERUl5B7GlJzgrnwoN6RRU4raaoHd8vk7PYPKbcFQf6rkuiz7HZTNGhIIUttwR/QkzevpGUNyyuWWBRS/UVVzhV9zQWG1Lnw3y3ZYpOS+/tJTvW6XglTjLXzYVrF6fAstkm/4CRNdjIPT7b/V5B6iwYFhUjW3FqR5esnooKE72FosZTJETE8lCMWBrdXGYlUF09X5P8GHns8EXn4cVmi/6P6lZV+1kIPVfBxzqCrqiltOrW3ZAjUHJonPbvRQbTefgwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHlvUQUJsFmzngF52GQqRK0jh8/35bbbqtK6zTu33SzA5u3YDTMoo8MJrKoetoxvMOP+NEIWLKASe4mJ7ICdLb6o4mmX8rHMSlk4z7Asv4zw8MBuFwFZDQ4z0wzLHJg9oD4rN3YMHyJeH0n4UDE2HJJqlDMh3Kh4/WkjhvQ9/PpZv/oTqQD0y6gU49gXuJ2urEBud56LCTiCOGxLI1Y0UlcvewX5DkgoK9JQxRyddeMZHD5WAk6mwCuSa4U7mP7EX1CBmhTdPKFu6mDe8mAFuVpp36/6fUbJMpUwTjpe1CSWfrFlpKbY8spq+VWQ69X0PGfELEyL1FD2M5ejvWKRFs0=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv95au8DR6MfOVFbhMrB6Gl7SGoiTCfcvp89RHS6PKHlY80SvEL8GA2QRiINMvY6ahmXuAlYlH9RPwUASS4GNsOhP2o2EJfscT8x8Ndb6Pj2dkAn4ZBuf5FxI+4kb1WGG4k1sW0vMIkGEfIAeFnY1Gjl9puBGc7y8r/UhvO87Ay26v04OI51ilvowEwgygLRvPpJ/iAvzq2wkMnPkPAy4vMWiERp/rOvm7VsByOo4Uc4N9WGHh3KmFE5zCBnEelaYSTFXbX/074gsb5JoFkgY2RoUrTlye2pW1LIgL0RJjS6x9W6GpiTjT1U24Vlnf7/g2wPb5qglyTvBYDCas6HzQQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAEXR+rrBIoZCI4KaWEwa/tkDMMz9GuFQ9+38+C1Hf/zLjH0G1kAFzzhhHEn+MZdVeMeJpd2862K42SH5Yz/+LMkAI/1qzIq2mzxxVpnKbFj8zXOjet/jcvaYv3XjORmRbMpZs68lOmK1CEt2e97P/f+FtUTVD3Jl5BkjyyeTLWheFZ5zcpz3fJwhvnl7FW7jhptcFHUM5PBLvY/radlTnJYCJE5YRYSVUz3pCW2VhC3R5hDTYN380T/Wy0WUYNoPPweZlsSMNBcXm1Xlpal2MR9CKkA1fYTgnUL1CnUsjM+Wmt+AXz8UWzbT0qZSV93FekQNgkV+e0z6IvHa+uB/tYw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"fca3402bbcf440049befe1f9731733dc"}' + time based on the issuer provider. Please check again later.","request_id":"04212d6ac74e49869a9285cec3346043"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:02 GMT + date: Tue, 28 Jul 2020 20:51:52 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA73oESMrZdU+A0l82ZCPEOsA/nRWul9cwdHfbrLN2DqnUf2aAvKl91YKh50E9DpDWJm0fw+ryXjrAV8fpXb34ERUl5B7GlJzgrnwoN6RRU4raaoHd8vk7PYPKbcFQf6rkuiz7HZTNGhIIUttwR/QkzevpGUNyyuWWBRS/UVVzhV9zQWG1Lnw3y3ZYpOS+/tJTvW6XglTjLXzYVrF6fAstkm/4CRNdjIPT7b/V5B6iwYFhUjW3FqR5esnooKE72FosZTJETE8lCMWBrdXGYlUF09X5P8GHns8EXn4cVmi/6P6lZV+1kIPVfBxzqCrqiltOrW3ZAjUHJonPbvRQbTefgwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHlvUQUJsFmzngF52GQqRK0jh8/35bbbqtK6zTu33SzA5u3YDTMoo8MJrKoetoxvMOP+NEIWLKASe4mJ7ICdLb6o4mmX8rHMSlk4z7Asv4zw8MBuFwFZDQ4z0wzLHJg9oD4rN3YMHyJeH0n4UDE2HJJqlDMh3Kh4/WkjhvQ9/PpZv/oTqQD0y6gU49gXuJ2urEBud56LCTiCOGxLI1Y0UlcvewX5DkgoK9JQxRyddeMZHD5WAk6mwCuSa4U7mP7EX1CBmhTdPKFu6mDe8mAFuVpp36/6fUbJMpUwTjpe1CSWfrFlpKbY8spq+VWQ69X0PGfELEyL1FD2M5ejvWKRFs0=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certificate1","request_id":"fca3402bbcf440049befe1f9731733dc"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv95au8DR6MfOVFbhMrB6Gl7SGoiTCfcvp89RHS6PKHlY80SvEL8GA2QRiINMvY6ahmXuAlYlH9RPwUASS4GNsOhP2o2EJfscT8x8Ndb6Pj2dkAn4ZBuf5FxI+4kb1WGG4k1sW0vMIkGEfIAeFnY1Gjl9puBGc7y8r/UhvO87Ay26v04OI51ilvowEwgygLRvPpJ/iAvzq2wkMnPkPAy4vMWiERp/rOvm7VsByOo4Uc4N9WGHh3KmFE5zCBnEelaYSTFXbX/074gsb5JoFkgY2RoUrTlye2pW1LIgL0RJjS6x9W6GpiTjT1U24Vlnf7/g2wPb5qglyTvBYDCas6HzQQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAEXR+rrBIoZCI4KaWEwa/tkDMMz9GuFQ9+38+C1Hf/zLjH0G1kAFzzhhHEn+MZdVeMeJpd2862K42SH5Yz/+LMkAI/1qzIq2mzxxVpnKbFj8zXOjet/jcvaYv3XjORmRbMpZs68lOmK1CEt2e97P/f+FtUTVD3Jl5BkjyyeTLWheFZ5zcpz3fJwhvnl7FW7jhptcFHUM5PBLvY/radlTnJYCJE5YRYSVUz3pCW2VhC3R5hDTYN380T/Wy0WUYNoPPweZlsSMNBcXm1Xlpal2MR9CKkA1fYTgnUL1CnUsjM+Wmt+AXz8UWzbT0qZSV93FekQNgkV+e0z6IvHa+uB/tYw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"04212d6ac74e49869a9285cec3346043"}' headers: cache-control: no-cache - content-length: '1267' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:13 GMT + date: Tue, 28 Jul 2020 20:51:56 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate1/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate1/?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate1/b3d5623f40e4460c90473c3c06884931","kid":"https://vaultname.vault.azure.net/keys/certificate1/b3d5623f40e4460c90473c3c06884931","sid":"https://vaultname.vault.azure.net/secrets/certificate1/b3d5623f40e4460c90473c3c06884931","x5t":"4t3hsrKarW9FRFXE3vsQcV97pYo","cer":"MIIDWjCCAkKgAwIBAgIQJBS+biKVR7OKcDAKiVOqWDANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwMzA1MjM1OTA0WhcNMjIwMzA2MDAwOTA0WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvegRIytl1T4DSXzZkI8Q6wD+dFa6X1zB0d9uss3YOqdR/ZoC8qX3VgqHnQT0OkNYmbR/D6vJeOsBXx+ldvfgRFSXkHsaUnOCufCg3pFFTitpqgd3y+Ts9g8ptwVB/quS6LPsdlM0aEghS23BH9CTN6+kZQ3LK5ZYFFL9RVXOFX3NBYbUufDfLdlik5L7+0lO9bpeCVOMtfNhWsXp8Cy2Sb/gJE12Mg9Ptv9XkHqLBgWFSNbcWpHl6yeigoTvYWixlMkRMTyUIxYGt1cZiVQXT1fk/wYeezwRefhxWaL/o/qVlX7WQg9V8HHOoKuqKW06tbdkCNQcmic9u9FBtN5+DAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFEE+UdjLUWGKS830dnhOhYT7v160MB0GA1UdDgQWBBRBPlHYy1FhikvN9HZ4ToWE+79etDANBgkqhkiG9w0BAQsFAAOCAQEAuurQnd4wvHMySjp9thJ8Ntx/5xGaRl6XurU6xV/p0LNDJaZjOLO5Hpin8Xp8QzLw6VtSxKFw8gshVdChF577ArqEOxFnTpS8APSFX5Mxgtx+EC4p7KozDz+r0vSjcFZysYoeiOdgRDE1leoer9i7j7ISQueFxR5ySoh1XUry9qZ5+kSIT5OliXDuCImWWnd3KgeUqOEuUr0420q1E3+3dLFgpsS9s1V8cHS1CmHfCRsSRZYYm5Jx3ZkznqipS0b0VC0aNGPCx+P25uhzeCQTIXJjfebLTUQpDky1G1mPdofaCp1ZWEEOt2bClU/7f724SR84qSXweAxSjbLv7oTVog==","attributes":{"enabled":true,"nbf":1583452744,"exp":1646525344,"created":1583453344,"updated":1583453344,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certificate1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1583453322,"updated":1583453322}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certificate1/pending"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv95au8DR6MfOVFbhMrB6Gl7SGoiTCfcvp89RHS6PKHlY80SvEL8GA2QRiINMvY6ahmXuAlYlH9RPwUASS4GNsOhP2o2EJfscT8x8Ndb6Pj2dkAn4ZBuf5FxI+4kb1WGG4k1sW0vMIkGEfIAeFnY1Gjl9puBGc7y8r/UhvO87Ay26v04OI51ilvowEwgygLRvPpJ/iAvzq2wkMnPkPAy4vMWiERp/rOvm7VsByOo4Uc4N9WGHh3KmFE5zCBnEelaYSTFXbX/074gsb5JoFkgY2RoUrTlye2pW1LIgL0RJjS6x9W6GpiTjT1U24Vlnf7/g2wPb5qglyTvBYDCas6HzQQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAEXR+rrBIoZCI4KaWEwa/tkDMMz9GuFQ9+38+C1Hf/zLjH0G1kAFzzhhHEn+MZdVeMeJpd2862K42SH5Yz/+LMkAI/1qzIq2mzxxVpnKbFj8zXOjet/jcvaYv3XjORmRbMpZs68lOmK1CEt2e97P/f+FtUTVD3Jl5BkjyyeTLWheFZ5zcpz3fJwhvnl7FW7jhptcFHUM5PBLvY/radlTnJYCJE5YRYSVUz3pCW2VhC3R5hDTYN380T/Wy0WUYNoPPweZlsSMNBcXm1Xlpal2MR9CKkA1fYTgnUL1CnUsjM+Wmt+AXz8UWzbT0qZSV93FekQNgkV+e0z6IvHa+uB/tYw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + certificate created. Certificate request is in progress. This may take some + time based on the issuer provider. Please check again later.","request_id":"04212d6ac74e49869a9285cec3346043"}' headers: cache-control: no-cache - content-length: '2449' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:13 GMT + date: Tue, 28 Jul 2020 20:52:02 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate1/?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: - body: '{"policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, - "x509_props": {"subject": "CN=*.microsoft.com", "sans": {"dns_names": ["sdk.azure-int.net"]}, - "validity_months": 24}, "issuer": {"name": "Self"}}}' + body: null headers: Accept: - application/json - Content-Length: - - '302' - Content-Type: - - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) - method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate2/create?api-version=7.1-preview + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0plAGROp0p9OyFcpOCP0htPvUGRVb+XUuA6/vqpzbrIAdA1lw+veebA38ZGQkI+OEzMBHM99Mfakamx4RzZu7t/5/wQwIg3lr47XWAtDa+ZRr7RQUBAbrfNbDRiGOkcHXLuurSRuceKuQTlzyEBgAU5cza/zqibyRZG+fk/gh0Lgr1rZ74tV0fXz5XAbAJJneeormDkAMmBv5+bQsVvEPh6fmM0HBE5BhTUzIDTN+KqqX5P3Cy+1C1tmfdzUxtiKz5Q37X/3GUJgc3Cqp+zrlc3qoyS4vJDN1nFsg0yrqNcItWpmP3rJAGMctLPM1SSSYqA4DH7XWBf9Vhkk7KcBjwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHszwyRedqGmvP6nT2DW2T9oP4v+KWinOfzb1ASqeMLT9yxQ7XGZt5ua6/yd3wQb5S4ZKYi5WWUgyQg83/a5gFwQZtjbjhJgm1uaZmvpo3a8AgkdUjcUh13BvQYdga1ebe1gXrQh5HwHlkiHDnvIOzl15oUomdNiFrb00hH5sxd/PBWBKQDRLdDqoC6RN0Fdvo/DMUYNdpyc1xcIsXncRRw/vEoDi14o4SrVfQ8xledpIrWDwEi0fGE+7K50zjrBHSIAkfbnuQYGjZAZ195MqVBhXJqzhqdfxCY7pAkP1lkYnLt2151dojUi90B0w3nCQyke6LXKsvGkogTC7cDDZm0=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv95au8DR6MfOVFbhMrB6Gl7SGoiTCfcvp89RHS6PKHlY80SvEL8GA2QRiINMvY6ahmXuAlYlH9RPwUASS4GNsOhP2o2EJfscT8x8Ndb6Pj2dkAn4ZBuf5FxI+4kb1WGG4k1sW0vMIkGEfIAeFnY1Gjl9puBGc7y8r/UhvO87Ay26v04OI51ilvowEwgygLRvPpJ/iAvzq2wkMnPkPAy4vMWiERp/rOvm7VsByOo4Uc4N9WGHh3KmFE5zCBnEelaYSTFXbX/074gsb5JoFkgY2RoUrTlye2pW1LIgL0RJjS6x9W6GpiTjT1U24Vlnf7/g2wPb5qglyTvBYDCas6HzQQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAEXR+rrBIoZCI4KaWEwa/tkDMMz9GuFQ9+38+C1Hf/zLjH0G1kAFzzhhHEn+MZdVeMeJpd2862K42SH5Yz/+LMkAI/1qzIq2mzxxVpnKbFj8zXOjet/jcvaYv3XjORmRbMpZs68lOmK1CEt2e97P/f+FtUTVD3Jl5BkjyyeTLWheFZ5zcpz3fJwhvnl7FW7jhptcFHUM5PBLvY/radlTnJYCJE5YRYSVUz3pCW2VhC3R5hDTYN380T/Wy0WUYNoPPweZlsSMNBcXm1Xlpal2MR9CKkA1fYTgnUL1CnUsjM+Wmt+AXz8UWzbT0qZSV93FekQNgkV+e0z6IvHa+uB/tYw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"53e81374558e404bbf5540e67947937c"}' + time based on the issuer provider. Please check again later.","request_id":"04212d6ac74e49869a9285cec3346043"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:13 GMT + date: Tue, 28 Jul 2020 20:52:07 GMT expires: '-1' - location: - - h - - t - - t - - p - - s - - ':' - - / - - / - - r - - z - - '2' - - g - - '3' - - x - - o - - '6' - - '6' - - e - - '6' - - n - - l - - '5' - - f - - o - - k - - q - - x - - '3' - - k - - m - - m - - q - - . - - v - - a - - u - - l - - t - - . - - a - - z - - u - - r - - e - - . - - n - - e - - t - - / - - c - - e - - r - - t - - i - - f - - i - - c - - a - - t - - e - - s - - / - - c - - e - - r - - t - - i - - f - - i - - c - - a - - t - - e - - '2' - - / - - p - - e - - n - - d - - i - - n - - g - - '?' - - a - - p - - i - - '-' - - v - - e - - r - - s - - i - - o - - n - - '=' - - '7' - - . - - '1' - - '-' - - p - - r - - e - - v - - i - - e - - w - - '&' - - r - - e - - q - - u - - e - - s - - t - - _ - - i - - d - - '=' - - '5' - - '3' - - e - - '8' - - '1' - - '3' - - '7' - - '4' - - '5' - - '5' - - '8' - - e - - '4' - - '0' - - '4' - - b - - b - - f - - '5' - - '5' - - '4' - - '0' - - e - - '6' - - '7' - - '9' - - '4' - - '7' - - '9' - - '3' - - '7' - - c pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 202 - message: Accepted - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate2/create?api-version=7.1-preview + code: 200 + message: OK + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0plAGROp0p9OyFcpOCP0htPvUGRVb+XUuA6/vqpzbrIAdA1lw+veebA38ZGQkI+OEzMBHM99Mfakamx4RzZu7t/5/wQwIg3lr47XWAtDa+ZRr7RQUBAbrfNbDRiGOkcHXLuurSRuceKuQTlzyEBgAU5cza/zqibyRZG+fk/gh0Lgr1rZ74tV0fXz5XAbAJJneeormDkAMmBv5+bQsVvEPh6fmM0HBE5BhTUzIDTN+KqqX5P3Cy+1C1tmfdzUxtiKz5Q37X/3GUJgc3Cqp+zrlc3qoyS4vJDN1nFsg0yrqNcItWpmP3rJAGMctLPM1SSSYqA4DH7XWBf9Vhkk7KcBjwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHszwyRedqGmvP6nT2DW2T9oP4v+KWinOfzb1ASqeMLT9yxQ7XGZt5ua6/yd3wQb5S4ZKYi5WWUgyQg83/a5gFwQZtjbjhJgm1uaZmvpo3a8AgkdUjcUh13BvQYdga1ebe1gXrQh5HwHlkiHDnvIOzl15oUomdNiFrb00hH5sxd/PBWBKQDRLdDqoC6RN0Fdvo/DMUYNdpyc1xcIsXncRRw/vEoDi14o4SrVfQ8xledpIrWDwEi0fGE+7K50zjrBHSIAkfbnuQYGjZAZ195MqVBhXJqzhqdfxCY7pAkP1lkYnLt2151dojUi90B0w3nCQyke6LXKsvGkogTC7cDDZm0=","cancellation_requested":false,"status":"inProgress","status_details":"Pending + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv95au8DR6MfOVFbhMrB6Gl7SGoiTCfcvp89RHS6PKHlY80SvEL8GA2QRiINMvY6ahmXuAlYlH9RPwUASS4GNsOhP2o2EJfscT8x8Ndb6Pj2dkAn4ZBuf5FxI+4kb1WGG4k1sW0vMIkGEfIAeFnY1Gjl9puBGc7y8r/UhvO87Ay26v04OI51ilvowEwgygLRvPpJ/iAvzq2wkMnPkPAy4vMWiERp/rOvm7VsByOo4Uc4N9WGHh3KmFE5zCBnEelaYSTFXbX/074gsb5JoFkgY2RoUrTlye2pW1LIgL0RJjS6x9W6GpiTjT1U24Vlnf7/g2wPb5qglyTvBYDCas6HzQQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAEXR+rrBIoZCI4KaWEwa/tkDMMz9GuFQ9+38+C1Hf/zLjH0G1kAFzzhhHEn+MZdVeMeJpd2862K42SH5Yz/+LMkAI/1qzIq2mzxxVpnKbFj8zXOjet/jcvaYv3XjORmRbMpZs68lOmK1CEt2e97P/f+FtUTVD3Jl5BkjyyeTLWheFZ5zcpz3fJwhvnl7FW7jhptcFHUM5PBLvY/radlTnJYCJE5YRYSVUz3pCW2VhC3R5hDTYN380T/Wy0WUYNoPPweZlsSMNBcXm1Xlpal2MR9CKkA1fYTgnUL1CnUsjM+Wmt+AXz8UWzbT0qZSV93FekQNgkV+e0z6IvHa+uB/tYw=","cancellation_requested":false,"status":"inProgress","status_details":"Pending certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"53e81374558e404bbf5540e67947937c"}' + time based on the issuer provider. Please check again later.","request_id":"04212d6ac74e49869a9285cec3346043"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1338' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:13 GMT + date: Tue, 28 Jul 2020 20:52:12 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/pending?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0plAGROp0p9OyFcpOCP0htPvUGRVb+XUuA6/vqpzbrIAdA1lw+veebA38ZGQkI+OEzMBHM99Mfakamx4RzZu7t/5/wQwIg3lr47XWAtDa+ZRr7RQUBAbrfNbDRiGOkcHXLuurSRuceKuQTlzyEBgAU5cza/zqibyRZG+fk/gh0Lgr1rZ74tV0fXz5XAbAJJneeormDkAMmBv5+bQsVvEPh6fmM0HBE5BhTUzIDTN+KqqX5P3Cy+1C1tmfdzUxtiKz5Q37X/3GUJgc3Cqp+zrlc3qoyS4vJDN1nFsg0yrqNcItWpmP3rJAGMctLPM1SSSYqA4DH7XWBf9Vhkk7KcBjwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHszwyRedqGmvP6nT2DW2T9oP4v+KWinOfzb1ASqeMLT9yxQ7XGZt5ua6/yd3wQb5S4ZKYi5WWUgyQg83/a5gFwQZtjbjhJgm1uaZmvpo3a8AgkdUjcUh13BvQYdga1ebe1gXrQh5HwHlkiHDnvIOzl15oUomdNiFrb00hH5sxd/PBWBKQDRLdDqoC6RN0Fdvo/DMUYNdpyc1xcIsXncRRw/vEoDi14o4SrVfQ8xledpIrWDwEi0fGE+7K50zjrBHSIAkfbnuQYGjZAZ195MqVBhXJqzhqdfxCY7pAkP1lkYnLt2151dojUi90B0w3nCQyke6LXKsvGkogTC7cDDZm0=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"53e81374558e404bbf5540e67947937c"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv95au8DR6MfOVFbhMrB6Gl7SGoiTCfcvp89RHS6PKHlY80SvEL8GA2QRiINMvY6ahmXuAlYlH9RPwUASS4GNsOhP2o2EJfscT8x8Ndb6Pj2dkAn4ZBuf5FxI+4kb1WGG4k1sW0vMIkGEfIAeFnY1Gjl9puBGc7y8r/UhvO87Ay26v04OI51ilvowEwgygLRvPpJ/iAvzq2wkMnPkPAy4vMWiERp/rOvm7VsByOo4Uc4N9WGHh3KmFE5zCBnEelaYSTFXbX/074gsb5JoFkgY2RoUrTlye2pW1LIgL0RJjS6x9W6GpiTjT1U24Vlnf7/g2wPb5qglyTvBYDCas6HzQQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAEXR+rrBIoZCI4KaWEwa/tkDMMz9GuFQ9+38+C1Hf/zLjH0G1kAFzzhhHEn+MZdVeMeJpd2862K42SH5Yz/+LMkAI/1qzIq2mzxxVpnKbFj8zXOjet/jcvaYv3XjORmRbMpZs68lOmK1CEt2e97P/f+FtUTVD3Jl5BkjyyeTLWheFZ5zcpz3fJwhvnl7FW7jhptcFHUM5PBLvY/radlTnJYCJE5YRYSVUz3pCW2VhC3R5hDTYN380T/Wy0WUYNoPPweZlsSMNBcXm1Xlpal2MR9CKkA1fYTgnUL1CnUsjM+Wmt+AXz8UWzbT0qZSV93FekQNgkV+e0z6IvHa+uB/tYw=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/cert","request_id":"04212d6ac74e49869a9285cec3346043"}' headers: cache-control: no-cache - content-length: '1346' + content-length: '1251' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:23 GMT + date: Tue, 28 Jul 2020 20:52:17 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/pending?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert/?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0plAGROp0p9OyFcpOCP0htPvUGRVb+XUuA6/vqpzbrIAdA1lw+veebA38ZGQkI+OEzMBHM99Mfakamx4RzZu7t/5/wQwIg3lr47XWAtDa+ZRr7RQUBAbrfNbDRiGOkcHXLuurSRuceKuQTlzyEBgAU5cza/zqibyRZG+fk/gh0Lgr1rZ74tV0fXz5XAbAJJneeormDkAMmBv5+bQsVvEPh6fmM0HBE5BhTUzIDTN+KqqX5P3Cy+1C1tmfdzUxtiKz5Q37X/3GUJgc3Cqp+zrlc3qoyS4vJDN1nFsg0yrqNcItWpmP3rJAGMctLPM1SSSYqA4DH7XWBf9Vhkk7KcBjwIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHszwyRedqGmvP6nT2DW2T9oP4v+KWinOfzb1ASqeMLT9yxQ7XGZt5ua6/yd3wQb5S4ZKYi5WWUgyQg83/a5gFwQZtjbjhJgm1uaZmvpo3a8AgkdUjcUh13BvQYdga1ebe1gXrQh5HwHlkiHDnvIOzl15oUomdNiFrb00hH5sxd/PBWBKQDRLdDqoC6RN0Fdvo/DMUYNdpyc1xcIsXncRRw/vEoDi14o4SrVfQ8xledpIrWDwEi0fGE+7K50zjrBHSIAkfbnuQYGjZAZ195MqVBhXJqzhqdfxCY7pAkP1lkYnLt2151dojUi90B0w3nCQyke6LXKsvGkogTC7cDDZm0=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certificate2","request_id":"53e81374558e404bbf5540e67947937c"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/cert/5d1876e272de4d3db8866c7f27004e18","kid":"https://vaultname.vault.azure.net/keys/cert/5d1876e272de4d3db8866c7f27004e18","sid":"https://vaultname.vault.azure.net/secrets/cert/5d1876e272de4d3db8866c7f27004e18","x5t":"DpW8NbSEx2FPwo9J28W8GHSjSZI","cer":"MIIDWjCCAkKgAwIBAgIQKaaSUJRqRHmMS8RUeEIsbzANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwNzI4MjA0MjE1WhcNMjIwNzI4MjA1MjE1WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/3lq7wNHox85UVuEysHoaXtIaiJMJ9y+nz1EdLo8oeVjzRK8QvwYDZBGIg0y9jpqGZe4CViUf1E/BQBJLgY2w6E/ajYQl+xxPzHw11vo+PZ2QCfhkG5/kXEj7iRvVYYbiTWxbS8wiQYR8gB4WdjUaOX2m4EZzvLyv9SG87zsDLbq/Tg4jnWKW+jATCDKAtG8+kn+IC/OrbCQyc+Q8DLi8xaIRGn+s6+btWwHI6jhRzg31YYeHcqYUTnMIGcR6VphJMVdtf/TviCxvkmgWSBjZGhStOXJ7albUsiAvREmNLrH1boamJONPVTbhWWd/v+DbA9vmqCXJO8FgMJqzofNBAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFDX0lAD2jtJln1yradlbhwuXhTaRMB0GA1UdDgQWBBQ19JQA9o7SZZ9cq2nZW4cLl4U2kTANBgkqhkiG9w0BAQsFAAOCAQEAXr3PN/hs3HgrcfjES8W+UzmiyQks6n6cwhhMSiEMOYAiYrJ4rI3qoD6yqitz02nTSUvrHGZYmnMdLTzTlWqT/ftdFFGWZzVPGrlR7ajNgJ9wlAbhlAEkmfhZxMpj/YT4yz0oFGrJstWs2Lha5TKM2ndv6JKEwcsPYo1Eu76CXSysyeutbG3tbkhgi7YX1Ym8RoUptC9RMi2zp16i+gp43Tg1qLZtWajFotPqNhXToVkRfpIaLGLcQfhtE3zN3uHGy2a61nZH4fpZrKseX6sBq9N9R2x/MUl011wzZGSvT/8DcQPmAJy0hcKtm2tMOkPC0GkeCJRG2vo8WdPPDYQMeg==","attributes":{"enabled":true,"nbf":1595968935,"exp":1659041535,"created":1595969535,"updated":1595969535,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595969486,"updated":1595969512}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert/pending"}}' headers: cache-control: no-cache - content-length: '1267' + content-length: '2430' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:33 GMT + date: Tue, 28 Jul 2020 20:52:17 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate2/pending?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert/?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate2/?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/certificates/cert-name/versions?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate2/62ae9c4094e9473d9216c964be82437f","kid":"https://vaultname.vault.azure.net/keys/certificate2/62ae9c4094e9473d9216c964be82437f","sid":"https://vaultname.vault.azure.net/secrets/certificate2/62ae9c4094e9473d9216c964be82437f","x5t":"ZSPH9U1LnVfD_2gvqG2879dGfE4","cer":"MIIDWjCCAkKgAwIBAgIQC9SgiRirSqOTzQQYMsvmZjANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwMzA1MjM1OTMwWhcNMjIwMzA2MDAwOTMwWjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSmUAZE6nSn07IVyk4I/SG0+9QZFVv5dS4Dr++qnNusgB0DWXD6955sDfxkZCQj44TMwEcz30x9qRqbHhHNm7u3/n/BDAiDeWvjtdYC0Nr5lGvtFBQEBut81sNGIY6Rwdcu66tJG5x4q5BOXPIQGABTlzNr/OqJvJFkb5+T+CHQuCvWtnvi1XR9fPlcBsAkmd56iuYOQAyYG/n5tCxW8Q+Hp+YzQcETkGFNTMgNM34qqpfk/cLL7ULW2Z93NTG2IrPlDftf/cZQmBzcKqn7OuVzeqjJLi8kM3WcWyDTKuo1wi1amY/eskAYxy0s8zVJJJioDgMftdYF/1WGSTspwGPAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFL2TtUr9CKdTsc64LWXFK4gh9/SXMB0GA1UdDgQWBBS9k7VK/QinU7HOuC1lxSuIIff0lzANBgkqhkiG9w0BAQsFAAOCAQEAUvU4n98/cTK0Rj0xvSy5lVfqtf4D+tyrQY2IXqFZkSneBAO13GDZvjEkuXim0XewgJRNhRmL4BnYwLn7/dgWlWD1n11bxRNdGXUcN4g6c1hnlj/lLnd9Xw5R0ShrzO0bb4f9EDYbyP4eqh3wOwpmSetAB/0rEXn8YoWrER0lEild5STOvzwuqT2RmcfbVBBAffBuVzANGCrs32P1YnLo3FsJrP3cIIe2xAI6UqGUxy+dxkL8GDObQjQ2+4eFt6W1D0sKppMLwTSTuSp0nJUieuMvMD3NDsb8gHkqszvqXHrUuz5lMS+7u7GZey1V47rmWDBGDTzjN16lffnnjz9Tdw==","attributes":{"enabled":true,"nbf":1583452770,"exp":1646525370,"created":1583453370,"updated":1583453370,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certificate2/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1583453353,"updated":1583453353}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certificate2/pending"}}' + string: '{"value":[],"nextLink":null}' headers: cache-control: no-cache - content-length: '2449' + content-length: '28' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:33 GMT + date: Tue, 28 Jul 2020 20:52:17 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate2/?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert-name/versions?api-version=7.1-preview - request: - body: '{"policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": - 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, - "x509_props": {"subject": "CN=*.microsoft.com", "sans": {"dns_names": ["sdk.azure-int.net"]}, - "validity_months": 24}, "issuer": {"name": "Self"}}}' + body: null headers: Accept: - application/json - Content-Length: - - '302' - Content-Type: - - application/json; charset=utf-8 User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) - method: POST - uri: https://vaultname.vault.azure.net/certificates/certificate3/create?api-version=7.1-preview + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtBjsbHbYZI5qrrV1cjKtW6zH1IT/QF93WawzUbLF8CFxHLxlfCNGUoBNHjiNDz+LGCn3pqkSWYoDHdwbqH7PQ7JVB+pche2EOr1kD2bCQsfSszsV3af4RlF87xLCjWOyi3UHaxl07aOwSkA1Tpxw7X1CBZpaq+aesDFBs2Zbd6gRWGPosdONjnADLz6IEJIZx1/XNKnxQ0HZAuPlHUklRKoNKCb2VYt/Op533eSpQGTgovufyB0e9653dlR4E+7AV+Ue8+gBT9lO1Ud1284E9duHhlJ076z8UICliw4XP+x34cblKv6YmPkhxaB+l3cnFI2Esjqx+Mj69K3B4xPyRQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAJFejUa224rJzkVJwSQHxdbA1PgJlV2fqDUx4eLO8T3gJnxk4xIDIf+/V8WUbUdBhwvxRMfembYiqedtKrwV1bHi/P+WxKfIWrXwTHoAYhZebflVJiYMAGPiF0SWDzw1h367UAVckPde7nzyBV6LgRvyt69XK6lraCmeWV/L8Lmi/NnBbwk0hnQWYvLM5Pq3pPi5QHQZuJZ/E42Azu0d36ujh7HOOCGsbktdmEnv+E1m49oYM7bmdZUzCgAH0h3pU3fLD7qMDOqeX6/OFdxJzETqAcn8iDvShcb5SEfsO48yFuLtm1uuGqNun8ExWYaPe2lP9F2f0ucIkIOeGedkjsE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"00bb928773084ef286584e0a42e5d12a"}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/cert","deletedDate":1595969538,"scheduledPurgeDate":1603745538,"id":"https://vaultname.vault.azure.net/certificates/cert/5d1876e272de4d3db8866c7f27004e18","kid":"https://vaultname.vault.azure.net/keys/cert/5d1876e272de4d3db8866c7f27004e18","sid":"https://vaultname.vault.azure.net/secrets/cert/5d1876e272de4d3db8866c7f27004e18","x5t":"DpW8NbSEx2FPwo9J28W8GHSjSZI","cer":"MIIDWjCCAkKgAwIBAgIQKaaSUJRqRHmMS8RUeEIsbzANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwNzI4MjA0MjE1WhcNMjIwNzI4MjA1MjE1WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/3lq7wNHox85UVuEysHoaXtIaiJMJ9y+nz1EdLo8oeVjzRK8QvwYDZBGIg0y9jpqGZe4CViUf1E/BQBJLgY2w6E/ajYQl+xxPzHw11vo+PZ2QCfhkG5/kXEj7iRvVYYbiTWxbS8wiQYR8gB4WdjUaOX2m4EZzvLyv9SG87zsDLbq/Tg4jnWKW+jATCDKAtG8+kn+IC/OrbCQyc+Q8DLi8xaIRGn+s6+btWwHI6jhRzg31YYeHcqYUTnMIGcR6VphJMVdtf/TviCxvkmgWSBjZGhStOXJ7albUsiAvREmNLrH1boamJONPVTbhWWd/v+DbA9vmqCXJO8FgMJqzofNBAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFDX0lAD2jtJln1yradlbhwuXhTaRMB0GA1UdDgQWBBQ19JQA9o7SZZ9cq2nZW4cLl4U2kTANBgkqhkiG9w0BAQsFAAOCAQEAXr3PN/hs3HgrcfjES8W+UzmiyQks6n6cwhhMSiEMOYAiYrJ4rI3qoD6yqitz02nTSUvrHGZYmnMdLTzTlWqT/ftdFFGWZzVPGrlR7ajNgJ9wlAbhlAEkmfhZxMpj/YT4yz0oFGrJstWs2Lha5TKM2ndv6JKEwcsPYo1Eu76CXSysyeutbG3tbkhgi7YX1Ym8RoUptC9RMi2zp16i+gp43Tg1qLZtWajFotPqNhXToVkRfpIaLGLcQfhtE3zN3uHGy2a61nZH4fpZrKseX6sBq9N9R2x/MUl011wzZGSvT/8DcQPmAJy0hcKtm2tMOkPC0GkeCJRG2vo8WdPPDYQMeg==","attributes":{"enabled":true,"nbf":1595968935,"exp":1659041535,"created":1595969535,"updated":1595969535,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595969486,"updated":1595969512}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert/pending"}}' headers: cache-control: no-cache - content-length: '1346' + content-length: '2576' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:34 GMT + date: Tue, 28 Jul 2020 20:52:18 GMT expires: '-1' - location: - - h - - t - - t - - p - - s - - ':' - - / - - / - - r - - z - - '2' - - g - - '3' - - x - - o - - '6' - - '6' - - e - - '6' - - n - - l - - '5' - - f - - o - - k - - q - - x - - '3' - - k - - m - - m - - q - - . - - v - - a - - u - - l - - t - - . - - a - - z - - u - - r - - e - - . - - n - - e - - t - - / - - c - - e - - r - - t - - i - - f - - i - - c - - a - - t - - e - - s - - / - - c - - e - - r - - t - - i - - f - - i - - c - - a - - t - - e - - '3' - - / - - p - - e - - n - - d - - i - - n - - g - - '?' - - a - - p - - i - - '-' - - v - - e - - r - - s - - i - - o - - n - - '=' - - '7' - - . - - '1' - - '-' - - p - - r - - e - - v - - i - - e - - w - - '&' - - r - - e - - q - - u - - e - - s - - t - - _ - - i - - d - - '=' - - '0' - - '0' - - b - - b - - '9' - - '2' - - '8' - - '7' - - '7' - - '3' - - '0' - - '8' - - '4' - - e - - f - - '2' - - '8' - - '6' - - '5' - - '8' - - '4' - - e - - '0' - - a - - '4' - - '2' - - e - - '5' - - d - - '1' - - '2' - - a pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 202 - message: Accepted - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate3/create?api-version=7.1-preview + code: 200 + message: OK + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/certificates/cert?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtBjsbHbYZI5qrrV1cjKtW6zH1IT/QF93WawzUbLF8CFxHLxlfCNGUoBNHjiNDz+LGCn3pqkSWYoDHdwbqH7PQ7JVB+pche2EOr1kD2bCQsfSszsV3af4RlF87xLCjWOyi3UHaxl07aOwSkA1Tpxw7X1CBZpaq+aesDFBs2Zbd6gRWGPosdONjnADLz6IEJIZx1/XNKnxQ0HZAuPlHUklRKoNKCb2VYt/Op533eSpQGTgovufyB0e9653dlR4E+7AV+Ue8+gBT9lO1Ud1284E9duHhlJ076z8UICliw4XP+x34cblKv6YmPkhxaB+l3cnFI2Esjqx+Mj69K3B4xPyRQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAJFejUa224rJzkVJwSQHxdbA1PgJlV2fqDUx4eLO8T3gJnxk4xIDIf+/V8WUbUdBhwvxRMfembYiqedtKrwV1bHi/P+WxKfIWrXwTHoAYhZebflVJiYMAGPiF0SWDzw1h367UAVckPde7nzyBV6LgRvyt69XK6lraCmeWV/L8Lmi/NnBbwk0hnQWYvLM5Pq3pPi5QHQZuJZ/E42Azu0d36ujh7HOOCGsbktdmEnv+E1m49oYM7bmdZUzCgAH0h3pU3fLD7qMDOqeX6/OFdxJzETqAcn8iDvShcb5SEfsO48yFuLtm1uuGqNun8ExWYaPe2lP9F2f0ucIkIOeGedkjsE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"00bb928773084ef286584e0a42e5d12a"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: no-cache - content-length: '1346' + content-length: '88' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:34 GMT + date: Tue, 28 Jul 2020 20:52:18 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + code: 404 + message: Not Found + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtBjsbHbYZI5qrrV1cjKtW6zH1IT/QF93WawzUbLF8CFxHLxlfCNGUoBNHjiNDz+LGCn3pqkSWYoDHdwbqH7PQ7JVB+pche2EOr1kD2bCQsfSszsV3af4RlF87xLCjWOyi3UHaxl07aOwSkA1Tpxw7X1CBZpaq+aesDFBs2Zbd6gRWGPosdONjnADLz6IEJIZx1/XNKnxQ0HZAuPlHUklRKoNKCb2VYt/Op533eSpQGTgovufyB0e9653dlR4E+7AV+Ue8+gBT9lO1Ud1284E9duHhlJ076z8UICliw4XP+x34cblKv6YmPkhxaB+l3cnFI2Esjqx+Mj69K3B4xPyRQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAJFejUa224rJzkVJwSQHxdbA1PgJlV2fqDUx4eLO8T3gJnxk4xIDIf+/V8WUbUdBhwvxRMfembYiqedtKrwV1bHi/P+WxKfIWrXwTHoAYhZebflVJiYMAGPiF0SWDzw1h367UAVckPde7nzyBV6LgRvyt69XK6lraCmeWV/L8Lmi/NnBbwk0hnQWYvLM5Pq3pPi5QHQZuJZ/E42Azu0d36ujh7HOOCGsbktdmEnv+E1m49oYM7bmdZUzCgAH0h3pU3fLD7qMDOqeX6/OFdxJzETqAcn8iDvShcb5SEfsO48yFuLtm1uuGqNun8ExWYaPe2lP9F2f0ucIkIOeGedkjsE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"00bb928773084ef286584e0a42e5d12a"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: no-cache - content-length: '1346' + content-length: '88' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:44 GMT + date: Tue, 28 Jul 2020 20:52:20 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + code: 404 + message: Not Found + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtBjsbHbYZI5qrrV1cjKtW6zH1IT/QF93WawzUbLF8CFxHLxlfCNGUoBNHjiNDz+LGCn3pqkSWYoDHdwbqH7PQ7JVB+pche2EOr1kD2bCQsfSszsV3af4RlF87xLCjWOyi3UHaxl07aOwSkA1Tpxw7X1CBZpaq+aesDFBs2Zbd6gRWGPosdONjnADLz6IEJIZx1/XNKnxQ0HZAuPlHUklRKoNKCb2VYt/Op533eSpQGTgovufyB0e9653dlR4E+7AV+Ue8+gBT9lO1Ud1284E9duHhlJ076z8UICliw4XP+x34cblKv6YmPkhxaB+l3cnFI2Esjqx+Mj69K3B4xPyRQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAJFejUa224rJzkVJwSQHxdbA1PgJlV2fqDUx4eLO8T3gJnxk4xIDIf+/V8WUbUdBhwvxRMfembYiqedtKrwV1bHi/P+WxKfIWrXwTHoAYhZebflVJiYMAGPiF0SWDzw1h367UAVckPde7nzyBV6LgRvyt69XK6lraCmeWV/L8Lmi/NnBbwk0hnQWYvLM5Pq3pPi5QHQZuJZ/E42Azu0d36ujh7HOOCGsbktdmEnv+E1m49oYM7bmdZUzCgAH0h3pU3fLD7qMDOqeX6/OFdxJzETqAcn8iDvShcb5SEfsO48yFuLtm1uuGqNun8ExWYaPe2lP9F2f0ucIkIOeGedkjsE=","cancellation_requested":false,"status":"inProgress","status_details":"Pending - certificate created. Certificate request is in progress. This may take some - time based on the issuer provider. Please check again later.","request_id":"00bb928773084ef286584e0a42e5d12a"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: no-cache - content-length: '1346' + content-length: '88' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:09:54 GMT + date: Tue, 28 Jul 2020 20:52:22 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + code: 404 + message: Not Found + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending","issuer":{"name":"Self"},"csr":"MIICyDCCAbACAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtBjsbHbYZI5qrrV1cjKtW6zH1IT/QF93WawzUbLF8CFxHLxlfCNGUoBNHjiNDz+LGCn3pqkSWYoDHdwbqH7PQ7JVB+pche2EOr1kD2bCQsfSszsV3af4RlF87xLCjWOyi3UHaxl07aOwSkA1Tpxw7X1CBZpaq+aesDFBs2Zbd6gRWGPosdONjnADLz6IEJIZx1/XNKnxQ0HZAuPlHUklRKoNKCb2VYt/Op533eSpQGTgovufyB0e9653dlR4E+7AV+Ue8+gBT9lO1Ud1284E9duHhlJ076z8UICliw4XP+x34cblKv6YmPkhxaB+l3cnFI2Esjqx+Mj69K3B4xPyRQIDAQABoGkwZwYJKoZIhvcNAQkOMVowWDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAJFejUa224rJzkVJwSQHxdbA1PgJlV2fqDUx4eLO8T3gJnxk4xIDIf+/V8WUbUdBhwvxRMfembYiqedtKrwV1bHi/P+WxKfIWrXwTHoAYhZebflVJiYMAGPiF0SWDzw1h367UAVckPde7nzyBV6LgRvyt69XK6lraCmeWV/L8Lmi/NnBbwk0hnQWYvLM5Pq3pPi5QHQZuJZ/E42Azu0d36ujh7HOOCGsbktdmEnv+E1m49oYM7bmdZUzCgAH0h3pU3fLD7qMDOqeX6/OFdxJzETqAcn8iDvShcb5SEfsO48yFuLtm1uuGqNun8ExWYaPe2lP9F2f0ucIkIOeGedkjsE=","cancellation_requested":false,"status":"completed","target":"https://vaultname.vault.azure.net/certificates/certificate3","request_id":"00bb928773084ef286584e0a42e5d12a"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: no-cache - content-length: '1267' + content-length: '88' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:10:05 GMT + date: Tue, 28 Jul 2020 20:52:24 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate3/pending?api-version=7.1-preview + code: 404 + message: Not Found + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/certificate3/?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/certificate3/4a08cce097d74633adafe129c1aa2ec6","kid":"https://vaultname.vault.azure.net/keys/certificate3/4a08cce097d74633adafe129c1aa2ec6","sid":"https://vaultname.vault.azure.net/secrets/certificate3/4a08cce097d74633adafe129c1aa2ec6","x5t":"zdpGWX18pt9F-rodf33VOajYeMc","cer":"MIIDWjCCAkKgAwIBAgIQbjpEozMNSOWnfa3XGltdODANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwMzA1MjM1OTU2WhcNMjIwMzA2MDAwOTU2WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0GOxsdthkjmqutXVyMq1brMfUhP9AX3dZrDNRssXwIXEcvGV8I0ZSgE0eOI0PP4sYKfemqRJZigMd3Buofs9DslUH6lyF7YQ6vWQPZsJCx9KzOxXdp/hGUXzvEsKNY7KLdQdrGXTto7BKQDVOnHDtfUIFmlqr5p6wMUGzZlt3qBFYY+ix042OcAMvPogQkhnHX9c0qfFDQdkC4+UdSSVEqg0oJvZVi386nnfd5KlAZOCi+5/IHR73rnd2VHgT7sBX5R7z6AFP2U7VR3XbzgT124eGUnTvrPxQgKWLDhc/7HfhxuUq/piY+SHFoH6XdycUjYSyOrH4yPr0rcHjE/JFAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFAaRr2jVyM6G+AnYc0/8S75WsruPMB0GA1UdDgQWBBQGka9o1cjOhvgJ2HNP/Eu+VrK7jzANBgkqhkiG9w0BAQsFAAOCAQEAsQ3T+Y8ps73sVeA+0NE8QFBssgu44gdg2ByHiM8/ZV+Ykr7c30N5nLTp+h0MzUYEC7ECofEZANXAPIBlPjJaouWJJPDBIl3jtn8rpSFDE9IrqnNuWm0jGe0c6sM9rBWRxrdXC33WRJLmEM05I4FoeKjU64EqpEUWet0IH5fuZhn1Aap182NfdX80WEEPUo1JLcrPX9I0rWmwGrbfoo49fe+XiHARJjNHe8VeDvqgSnef/qrY4GiBSRsxMCwhcQq6bRKoSE0PX97WSUT+EzpTNXPU2RtSabM7aBU003tjiqoJe23RD8AW/OmGoxAz/0Ha7hUvCWx1xck7sFkjpqTqfA==","attributes":{"enabled":true,"nbf":1583452796,"exp":1646525396,"created":1583453396,"updated":1583453396,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/certificate3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1583453374,"updated":1583453374}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/certificate3/pending"}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: no-cache - content-length: '2449' + content-length: '88' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:10:05 GMT + date: Tue, 28 Jul 2020 20:52:26 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/certificate3/?api-version=7.1-preview + code: 404 + message: Not Found + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/certificate0","x5t":"0aNPEESznAQwnGfNAV7ZIjS5AAM","attributes":{"enabled":true,"nbf":1583452719,"exp":1646525319,"created":1583453319,"updated":1583453319},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/certificate1","x5t":"4t3hsrKarW9FRFXE3vsQcV97pYo","attributes":{"enabled":true,"nbf":1583452744,"exp":1646525344,"created":1583453344,"updated":1583453344},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/certificate2","x5t":"ZSPH9U1LnVfD_2gvqG2879dGfE4","attributes":{"enabled":true,"nbf":1583452770,"exp":1646525370,"created":1583453370,"updated":1583453370},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/certificate3","x5t":"zdpGWX18pt9F-rodf33VOajYeMc","attributes":{"enabled":true,"nbf":1583452796,"exp":1646525396,"created":1583453396,"updated":1583453396},"subject":""}],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: no-cache - content-length: '983' + content-length: '88' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:10:05 GMT + date: Tue, 28 Jul 2020 20:52:28 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates?api-version=7.1-preview + code: 404 + message: Not Found + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/cert-name/versions?api-version=7.1-preview + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview response: body: - string: '{"value":[],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: cert"}}' headers: cache-control: no-cache - content-length: '28' + content-length: '88' + content-type: application/json; charset=utf-8 + date: Tue, 28 Jul 2020 20:52:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus + x-ms-keyvault-service-version: 1.1.10.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/cert","deletedDate":1595969538,"scheduledPurgeDate":1603745538,"id":"https://vaultname.vault.azure.net/certificates/cert/5d1876e272de4d3db8866c7f27004e18","kid":"https://vaultname.vault.azure.net/keys/cert/5d1876e272de4d3db8866c7f27004e18","sid":"https://vaultname.vault.azure.net/secrets/cert/5d1876e272de4d3db8866c7f27004e18","x5t":"DpW8NbSEx2FPwo9J28W8GHSjSZI","cer":"MIIDWjCCAkKgAwIBAgIQKaaSUJRqRHmMS8RUeEIsbzANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wHhcNMjAwNzI4MjA0MjE1WhcNMjIwNzI4MjA1MjE1WjAaMRgwFgYDVQQDDA8qLm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/3lq7wNHox85UVuEysHoaXtIaiJMJ9y+nz1EdLo8oeVjzRK8QvwYDZBGIg0y9jpqGZe4CViUf1E/BQBJLgY2w6E/ajYQl+xxPzHw11vo+PZ2QCfhkG5/kXEj7iRvVYYbiTWxbS8wiQYR8gB4WdjUaOX2m4EZzvLyv9SG87zsDLbq/Tg4jnWKW+jATCDKAtG8+kn+IC/OrbCQyc+Q8DLi8xaIRGn+s6+btWwHI6jhRzg31YYeHcqYUTnMIGcR6VphJMVdtf/TviCxvkmgWSBjZGhStOXJ7albUsiAvREmNLrH1boamJONPVTbhWWd/v+DbA9vmqCXJO8FgMJqzofNBAgMBAAGjgZswgZgwDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFDX0lAD2jtJln1yradlbhwuXhTaRMB0GA1UdDgQWBBQ19JQA9o7SZZ9cq2nZW4cLl4U2kTANBgkqhkiG9w0BAQsFAAOCAQEAXr3PN/hs3HgrcfjES8W+UzmiyQks6n6cwhhMSiEMOYAiYrJ4rI3qoD6yqitz02nTSUvrHGZYmnMdLTzTlWqT/ftdFFGWZzVPGrlR7ajNgJ9wlAbhlAEkmfhZxMpj/YT4yz0oFGrJstWs2Lha5TKM2ndv6JKEwcsPYo1Eu76CXSysyeutbG3tbkhgi7YX1Ym8RoUptC9RMi2zp16i+gp43Tg1qLZtWajFotPqNhXToVkRfpIaLGLcQfhtE3zN3uHGy2a61nZH4fpZrKseX6sBq9N9R2x/MUl011wzZGSvT/8DcQPmAJy0hcKtm2tMOkPC0GkeCJRG2vo8WdPPDYQMeg==","attributes":{"enabled":true,"nbf":1595968935,"exp":1659041535,"created":1595969535,"updated":1595969535,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/cert/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=*.microsoft.com","sans":{"dns_names":["sdk.azure-int.net"]},"ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":24,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1595969486,"updated":1595969512}},"pending":{"id":"https://vaultname.vault.azure.net/certificates/cert/pending"}}' + headers: + cache-control: no-cache + content-length: '2576' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:10:05 GMT + date: Tue, 28 Jul 2020 20:52:32 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/certificates/cert-name/versions?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates/cert?api-version=7.1-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.2.0b1 Python/3.8.0 (Windows-10-10.0.18362-SP0) + - azsdk-python-keyvault-certificates/4.2.0b2 Python/3.5.4 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1-preview response: body: - string: '{"value":[],"nextLink":null}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/cert","deletedDate":1595969538,"scheduledPurgeDate":1603745538,"id":"https://vaultname.vault.azure.net/certificates/cert","x5t":"DpW8NbSEx2FPwo9J28W8GHSjSZI","attributes":{"enabled":true,"nbf":1595968935,"exp":1659041535,"created":1595969535,"updated":1595969535,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":null}' headers: cache-control: no-cache - content-length: '28' + content-length: '452' content-type: application/json; charset=utf-8 - date: Fri, 06 Mar 2020 00:10:05 GMT + date: Tue, 28 Jul 2020 20:52:32 GMT expires: '-1' pragma: no-cache - server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000;includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-network-info: addr=76.121.58.221;act_addr_fam=InterNetwork; + x-ms-keyvault-network-info: conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus - x-ms-keyvault-service-version: 1.1.0.897 + x-ms-keyvault-service-version: 1.1.10.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://rz2g3xo66e6nl5fokqx3kmmq.vault.azure.net/deletedcertificates?api-version=7.1-preview + url: https://szdyu4zgeikp4m7sgz6ychda.vault.azure.net/deletedcertificates?api-version=7.1-preview version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py b/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py index f1171d57b846..08f2a3af3c66 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py @@ -5,7 +5,6 @@ import functools import json import logging -import os import time from azure_devtools.scenario_tests import RecordingProcessor, RequestUrlNormalizer @@ -21,7 +20,6 @@ KeyUsageType, CertificateContentType, LifetimeAction, - WellKnownIssuerNames, CertificateIssuer, IssuerProperties, ) @@ -623,3 +621,29 @@ def test_logging_disabled(self, client, **kwargs): except (ValueError, KeyError): # this means the message is not JSON or has no kty property pass + + @ResourceGroupPreparer(random_name_enabled=True) + @KeyVaultPreparer() + @KeyVaultClientPreparer() + def test_get_certificate_version(self, client, **kwargs): + cert_name = self.get_resource_name("cert") + for _ in range(self.list_test_size): + client.begin_create_certificate(cert_name, CertificatePolicy.get_default()).wait() + + for version_properties in client.list_properties_of_certificate_versions(cert_name): + cert = client.get_certificate_version(version_properties.name, version_properties.version) + + # This isn't factored out into a helper method because the properties are not exactly equal. + # get_certificate_version sets "recovery_days" and "recovery_level" but the list method does not. + # (This is Key Vault's behavior, not an SDK limitation.) + assert version_properties.created_on == cert.properties.created_on + assert version_properties.enabled == cert.properties.enabled + assert version_properties.expires_on == cert.properties.expires_on + assert version_properties.id == cert.properties.id + assert version_properties.name == cert.properties.name + assert version_properties.not_before == cert.properties.not_before + assert version_properties.tags == cert.properties.tags + assert version_properties.updated_on == cert.properties.updated_on + assert version_properties.vault_url == cert.properties.vault_url + assert version_properties.version == cert.properties.version + assert version_properties.x509_thumbprint == cert.properties.x509_thumbprint diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py b/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py index 6fde4cf3be6a..3c65c64c74f4 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py @@ -4,7 +4,6 @@ # ------------------------------------ import asyncio import functools -import os import logging import json @@ -19,7 +18,6 @@ KeyUsageType, CertificateContentType, LifetimeAction, - WellKnownIssuerNames, CertificateIssuer, IssuerProperties, ) @@ -71,7 +69,9 @@ async def _import_common_certificate(self, client, cert_name): validity_in_months=12, key_usage=["digitalSignature", "keyEncipherment"], ) - return await client.import_certificate(cert_name, CertificateClientTests.CERT_CONTENT_PASSWORD_ENODED, policy=cert_policy, password=cert_password) + return await client.import_certificate( + cert_name, CertificateClientTests.CERT_CONTENT_PASSWORD_ENODED, policy=cert_policy, password=cert_password + ) def _validate_certificate_operation(self, pending_cert_operation, vault, cert_name, original_cert_policy): self.assertIsNotNone(pending_cert_operation) @@ -235,7 +235,7 @@ async def test_import_certificate_password_encoded_no_policy(self, client): certificate = await client.import_certificate( certificate_name="importPasswordEncodedCertificate", certificate_bytes=CertificateClientTests.CERT_CONTENT_PASSWORD_ENODED, - password="123" + password="123", ) self.assertIsNotNone(certificate.policy) @@ -635,3 +635,29 @@ async def test_logging_disabled(self, client, **kwargs): except (ValueError, KeyError): # this means the message is not JSON or has no kty property pass + + @ResourceGroupPreparer(random_name_enabled=True) + @KeyVaultPreparer() + @KeyVaultClientPreparer() + async def test_get_certificate_version(self, client, **kwargs): + cert_name = self.get_resource_name("cert") + policy = CertificatePolicy.get_default() + await asyncio.gather(*[client.create_certificate(cert_name, policy) for _ in range(self.list_test_size)]) + + async for version_properties in client.list_properties_of_certificate_versions(cert_name): + cert = await client.get_certificate_version(version_properties.name, version_properties.version) + + # This isn't factored out into a helper method because the properties are not exactly equal. + # get_certificate_version sets "recovery_days" and "recovery_level" but the list method does not. + # (This is Key Vault's behavior, not an SDK limitation.) + assert version_properties.created_on == cert.properties.created_on + assert version_properties.enabled == cert.properties.enabled + assert version_properties.expires_on == cert.properties.expires_on + assert version_properties.id == cert.properties.id + assert version_properties.name == cert.properties.name + assert version_properties.not_before == cert.properties.not_before + assert version_properties.tags == cert.properties.tags + assert version_properties.updated_on == cert.properties.updated_on + assert version_properties.vault_url == cert.properties.vault_url + assert version_properties.version == cert.properties.version + assert version_properties.x509_thumbprint == cert.properties.x509_thumbprint diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/test_examples_certificates.py b/sdk/keyvault/azure-keyvault-certificates/tests/test_examples_certificates.py index edd0cbd4423d..5126b59346da 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/test_examples_certificates.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/test_examples_certificates.py @@ -4,8 +4,6 @@ # ------------------------------------ from __future__ import print_function import functools -import hashlib -import os from azure.keyvault.certificates import ( CertificateClient, @@ -139,12 +137,8 @@ def test_example_certificate_list_operations(self, client, **kwargs): validity_in_months=24, ) - polling_interval = 0 if self.is_playback() else None - - for i in range(4): - certificate_client.begin_create_certificate( - certificate_name="certificate{}".format(i), policy=cert_policy, _polling_interval=polling_interval - ).wait() + certificate_name = self.get_replayable_random_resource_name("cert") + certificate_client.begin_create_certificate(certificate_name, cert_policy).wait() # [START list_properties_of_certificates] @@ -159,10 +153,14 @@ def test_example_certificate_list_operations(self, client, **kwargs): print(certificate.enabled) # [END list_properties_of_certificates] + + # create a second version of the cert + certificate_client.begin_create_certificate(certificate_name, cert_policy).wait() + # [START list_properties_of_certificate_versions] # get an iterator of a certificate's versions - certificate_versions = certificate_client.list_properties_of_certificate_versions("certificate-name") + certificate_versions = certificate_client.list_properties_of_certificate_versions(certificate_name) for certificate in certificate_versions: print(certificate.id) @@ -170,6 +168,9 @@ def test_example_certificate_list_operations(self, client, **kwargs): print(certificate.version) # [END list_properties_of_certificate_versions] + + certificate_client.begin_delete_certificate(certificate_name).wait() + # [START list_deleted_certificates] # get an iterator of deleted certificates (requires soft-delete enabled for the vault) diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/test_examples_certificates_async.py b/sdk/keyvault/azure-keyvault-certificates/tests/test_examples_certificates_async.py index 46fb6497c7d7..7e03837a8ef9 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/test_examples_certificates_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/test_examples_certificates_async.py @@ -123,14 +123,8 @@ async def test_example_certificate_list_operations(self, client, **kwargs): validity_in_months=24, ) - create_certificate_pollers = [] - for i in range(4): - create_certificate_pollers.append( - certificate_client.create_certificate(certificate_name="certificate{}".format(i), policy=cert_policy) - ) - - for poller in create_certificate_pollers: - await poller + certificate_name = self.get_replayable_random_resource_name("cert") + await certificate_client.create_certificate(certificate_name, cert_policy) # [START list_properties_of_certificates] @@ -145,6 +139,10 @@ async def test_example_certificate_list_operations(self, client, **kwargs): print(certificate.enabled) # [END list_properties_of_certificates] + + # create a second version of the cert + await certificate_client.create_certificate(certificate_name, cert_policy) + # [START list_properties_of_certificate_versions] # get an iterator of all versions of a certificate @@ -156,6 +154,9 @@ async def test_example_certificate_list_operations(self, client, **kwargs): print(certificate.properties.version) # [END list_properties_of_certificate_versions] + + await certificate_client.delete_certificate(certificate_name) + # [START list_deleted_certificates] # get an iterator of deleted certificates (requires soft-delete enabled for the vault) diff --git a/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md b/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md index 03d3eae08261..42e73b03c9e7 100644 --- a/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md @@ -37,7 +37,7 @@ as a context manager, a `KeyClient` closes opened sockets on exit. ### Breaking changes: - Removed `KeyClient.get_cryptography_client()` and `CryptographyClient.get_key()` - Moved the optional parameters of several methods into kwargs ( -[docs](https://azure.github.io/azure-sdk-for-python/ref/azure.keyvault.keys.html) +[docs](https://azuresdkdocs.blob.core.windows.net/$web/python/azure-keyvault-keys/4.0.0/index.html) detail the new keyword arguments): - `create_key` now has positional parameters `name` and `key_type` - `create_ec_key` and `create_rsa_key` now have one positional parameter, `name` @@ -70,8 +70,8 @@ been renamed to `KeyCurveName`, `KeyOperation`, and `KeyType`, respectively. - `Key` now has attribute `properties`, which holds certain properties of the key, such as `version`. This changes the shape of the returned `Key` type, as certain properties of `Key` (such as `version`) have to be accessed -through the `properties` property. See the updated [docs](https://azure.github.io/azure-sdk-for-python/ref/azure.keyvault.keys.html) -for details. +through the `properties` property. + - `update_key` has been renamed to `update_key_properties` - The `vault_url` parameter of `KeyClient` has been renamed to `vault_endpoint` - The property `vault_url` has been renamed to `vault_endpoint` in all models diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc.py index 8e7d22e58e68..459f4c094e6f 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc.py @@ -39,7 +39,6 @@ def finalize(self, data): padded = self._ctx.finalize() return self._padder.update(padded) + self._padder.finalize() - @property def block_size(self): # return self._cipher.block_size raise NotImplementedError() @@ -59,7 +58,6 @@ def finalize(self, data): padded = self._padder.finalize() return self._ctx.update(padded) + self._ctx.finalize() - @property def block_size(self): # return self._cipher.block_size raise NotImplementedError() diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc_hmac.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc_hmac.py index efb80716441d..a6016bd30503 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc_hmac.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/aes_cbc_hmac.py @@ -15,6 +15,8 @@ class _AesCbcHmacCryptoTransform(AuthenticatedCryptoTransform): def __init__(self, key, iv, auth_data, auth_tag): + super(_AesCbcHmacCryptoTransform, self).__init__() + self._aes_key = key[: len(key) // 2] self._hmac_key = key[len(key) // 2 :] hash_algo = {256: hashes.SHA256(), 384: hashes.SHA384(), 512: hashes.SHA512()}[len(key) * 8] diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/ecdsa.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/ecdsa.py index 07f6a19f9712..cff7410a6b44 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/ecdsa.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/ecdsa.py @@ -12,6 +12,8 @@ class _EcdsaSignatureTransform(SignatureTransform): def __init__(self, key, hash_algorithm): + super(_EcdsaSignatureTransform, self).__init__() + self._key = key self._hash_algorithm = hash_algorithm diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_signing.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_signing.py index ffa4628a435b..885070631b85 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_signing.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/rsa_signing.py @@ -11,6 +11,7 @@ class RsaSignatureTransform(SignatureTransform): def __init__(self, key, padding_function, hash_algorithm): + super(RsaSignatureTransform, self).__init__() self._key = key self._padding_function = padding_function self._hash_algorithm = hash_algorithm diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/sha_2.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/sha_2.py index 26c947808dc6..c6656b0493c5 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/sha_2.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/algorithms/sha_2.py @@ -11,6 +11,7 @@ class _Sha2DigestTransform(DigestTransform): def __init__(self, algorithm): + super(_Sha2DigestTransform, self).__init__() self._digest = hashes.Hash(algorithm=algorithm, backend=default_backend()) def update(self, data): diff --git a/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md b/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md index f13360a8f8b6..2785dc809461 100644 --- a/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md @@ -31,7 +31,7 @@ Used as a context manager, a `SecretClient` closes opened sockets on exit. ## 4.0.0 (2019-10-31) ### Breaking changes: - Moved optional parameters of two methods into kwargs ( -[docs](https://azure.github.io/azure-sdk-for-python/ref/azure.keyvault.secrets.html) +[docs](https://azuresdkdocs.blob.core.windows.net/$web/python/azure-keyvault-secrets/4.0.0/azure.keyvault.secrets.html) detail the new keyword arguments): - `set_secret` now has positional parameters `name` and `value` - `update_secret_properties` now has positional parameters `name` and @@ -52,8 +52,8 @@ detail the new keyword arguments): - `Secret` now has attribute `properties`, which holds certain properties of the secret, such as `version`. This changes the shape of the returned `Secret` type, as certain properties of `Secret` (such as `version`) have to be accessed -through the `properties` property. See the updated [docs](https://azure.github.io/azure-sdk-for-python/ref/azure.keyvault.secrets.html) -for details. +through the `properties` property. + - `update_secret` has been renamed to `update_secret_properties` - The `vault_url` parameter of `SecretClient` has been renamed to `vault_endpoint` - The property `vault_url` has been renamed to `vault_endpoint` in all models diff --git a/sdk/keyvault/azure-keyvault-secrets/README.md b/sdk/keyvault/azure-keyvault-secrets/README.md index 59dbca16ec28..f1c513e84607 100644 --- a/sdk/keyvault/azure-keyvault-secrets/README.md +++ b/sdk/keyvault/azure-keyvault-secrets/README.md @@ -1,10 +1,11 @@ # Azure Key Vault Secret client library for Python Azure Key Vault helps solve the following problems: + - Secrets management (this library) - securely store and control access to tokens, passwords, certificates, API keys, and other secrets - Cryptographic key management -([azure-keyvault-keys](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-secrets)) - +([azure-keyvault-keys](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-keys)) - create, store, and control access to the keys used to encrypt your data - Certificate management ([azure-keyvault-certificates](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-certificates)) - diff --git a/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md b/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md index 27220b5f5404..a532f1d9e1e5 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md +++ b/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md @@ -1,5 +1,10 @@ # Release History +## 7.0.0b2 (2020-07-21) + +**Bugfixes** + - Use service api_version "2015-11-01" instead of "2016-10-01". + ## 7.0.0b1 (2020-06-17) This is beta preview version. diff --git a/sdk/keyvault/azure-mgmt-keyvault/README.md b/sdk/keyvault/azure-mgmt-keyvault/README.md index 29b62886db32..0413f0a8a072 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/README.md +++ b/sdk/keyvault/azure-mgmt-keyvault/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure MyService Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/_version.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/_version.py index 5c6ad95258f3..eed2e13a835f 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/_version.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/_version.py @@ -5,4 +5,4 @@ # license information. # -------------------------------------------------------------------------- -VERSION = "7.0.0b1" \ No newline at end of file +VERSION = "7.0.0b2" \ No newline at end of file diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/aio/operations_async/_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/aio/operations_async/_operations_async.py index 47ecb3338309..bb39715117fe 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/aio/operations_async/_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/aio/operations_async/_operations_async.py @@ -58,6 +58,10 @@ def list( api_version = "2016-10-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -65,15 +69,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/aio/operations_async/_vaults_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/aio/operations_async/_vaults_operations_async.py index 1f725751d290..93781d220655 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/aio/operations_async/_vaults_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/aio/operations_async/_vaults_operations_async.py @@ -87,7 +87,6 @@ async def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultCreateOrUpdateParameters') body_content_kwargs['content'] = body_content @@ -100,7 +99,6 @@ async def create_or_update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -157,7 +155,6 @@ async def update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultPatchParameters') body_content_kwargs['content'] = body_content @@ -170,7 +167,6 @@ async def update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -221,7 +217,6 @@ async def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -274,7 +269,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -339,7 +333,6 @@ async def update_access_policy( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultAccessPolicyParameters') body_content_kwargs['content'] = body_content @@ -352,7 +345,6 @@ async def update_access_policy( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('VaultAccessPolicyParameters', pipeline_response) @@ -389,6 +381,10 @@ def list_by_resource_group( api_version = "2016-10-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_resource_group.metadata['url'] # type: ignore @@ -403,15 +399,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -458,6 +450,10 @@ def list_by_subscription( api_version = "2016-10-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_subscription.metadata['url'] # type: ignore @@ -471,15 +467,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -523,6 +515,10 @@ def list_deleted( api_version = "2016-10-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_deleted.metadata['url'] # type: ignore @@ -534,15 +530,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -608,7 +600,6 @@ async def get_deleted( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -652,7 +643,6 @@ async def _purge_deleted_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.post(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -671,7 +661,7 @@ async def begin_purge_deleted( vault_name: str, location: str, **kwargs - ) -> None: + ) -> AsyncLROPoller[None]: """Permanently deletes the specified vault. aka Purges the deleted Azure key vault. :param vault_name: The name of the soft-deleted vault. @@ -684,8 +674,8 @@ async def begin_purge_deleted( polling object for personal polling strategy :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: None, or the result of cls(response) - :rtype: None + :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -742,9 +732,13 @@ def list( error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) filter = "resourceType eq 'Microsoft.KeyVault/vaults'" - api_version = "2016-10-01" + api_version = "2015-11-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -759,15 +753,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -830,7 +820,6 @@ async def check_name_availability( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(vault_name, 'VaultCheckNameAvailabilityParameters') body_content_kwargs['content'] = body_content diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/operations/_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/operations/_operations.py index dfe858a24401..7836d1e5bdb7 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/operations/_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/operations/_operations.py @@ -63,6 +63,10 @@ def list( api_version = "2016-10-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -70,15 +74,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/operations/_vaults_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/operations/_vaults_operations.py index 74854f5a895e..5aa92d56ad12 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/operations/_vaults_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2016_10_01/operations/_vaults_operations.py @@ -92,7 +92,6 @@ def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultCreateOrUpdateParameters') body_content_kwargs['content'] = body_content @@ -105,7 +104,6 @@ def create_or_update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -163,7 +161,6 @@ def update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultPatchParameters') body_content_kwargs['content'] = body_content @@ -176,7 +173,6 @@ def update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -228,7 +224,6 @@ def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -282,7 +277,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -348,7 +342,6 @@ def update_access_policy( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultAccessPolicyParameters') body_content_kwargs['content'] = body_content @@ -361,7 +354,6 @@ def update_access_policy( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('VaultAccessPolicyParameters', pipeline_response) @@ -399,6 +391,10 @@ def list_by_resource_group( api_version = "2016-10-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_resource_group.metadata['url'] # type: ignore @@ -413,15 +409,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -469,6 +461,10 @@ def list_by_subscription( api_version = "2016-10-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_subscription.metadata['url'] # type: ignore @@ -482,15 +478,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -535,6 +527,10 @@ def list_deleted( api_version = "2016-10-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_deleted.metadata['url'] # type: ignore @@ -546,15 +542,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -621,7 +613,6 @@ def get_deleted( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -666,7 +657,6 @@ def _purge_deleted_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.post(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -686,7 +676,7 @@ def begin_purge_deleted( location, # type: str **kwargs # type: Any ): - # type: (...) -> LROPoller + # type: (...) -> LROPoller[None] """Permanently deletes the specified vault. aka Purges the deleted Azure key vault. :param vault_name: The name of the soft-deleted vault. @@ -758,9 +748,13 @@ def list( error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) filter = "resourceType eq 'Microsoft.KeyVault/vaults'" - api_version = "2016-10-01" + api_version = "2015-11-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -775,15 +769,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -847,7 +837,6 @@ def check_name_availability( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(vault_name, 'VaultCheckNameAvailabilityParameters') body_content_kwargs['content'] = body_content diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_operations_async.py index 6242c4e6289a..9d2336d57340 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_operations_async.py @@ -58,6 +58,10 @@ def list( api_version = "2018-02-14" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -65,15 +69,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_private_endpoint_connections_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_private_endpoint_connections_operations_async.py index 823750d8967c..e091b60e6508 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_private_endpoint_connections_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_private_endpoint_connections_operations_async.py @@ -86,7 +86,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -152,7 +151,6 @@ async def put( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(properties, 'PrivateEndpointConnection') body_content_kwargs['content'] = body_content @@ -182,8 +180,8 @@ async def _delete_initial( vault_name: str, private_endpoint_connection_name: str, **kwargs - ) -> "models.PrivateEndpointConnection": - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + ) -> Optional["models.PrivateEndpointConnection"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.PrivateEndpointConnection"]] error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) api_version = "2018-02-14" @@ -206,7 +204,6 @@ async def _delete_initial( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -236,7 +233,7 @@ async def begin_delete( vault_name: str, private_endpoint_connection_name: str, **kwargs - ) -> "models.PrivateEndpointConnection": + ) -> AsyncLROPoller["models.PrivateEndpointConnection"]: """Deletes the specified private endpoint connection associated with the key vault. :param resource_group_name: Name of the resource group that contains the key vault. @@ -252,8 +249,8 @@ async def begin_delete( polling object for personal polling strategy :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~azure.mgmt.keyvault.v2018_02_14.models.PrivateEndpointConnection + :return: An instance of AsyncLROPoller that returns either PrivateEndpointConnection or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.keyvault.v2018_02_14.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_private_link_resources_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_private_link_resources_operations_async.py index f15e06765d74..9bb76c573251 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_private_link_resources_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_private_link_resources_operations_async.py @@ -79,7 +79,6 @@ async def list_by_vault( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_vaults_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_vaults_operations_async.py index 269f3da6038d..2d26869c6faa 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_vaults_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/aio/operations_async/_vaults_operations_async.py @@ -74,7 +74,6 @@ async def _create_or_update_initial( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultCreateOrUpdateParameters') body_content_kwargs['content'] = body_content @@ -87,7 +86,6 @@ async def _create_or_update_initial( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -106,7 +104,7 @@ async def begin_create_or_update( vault_name: str, parameters: "models.VaultCreateOrUpdateParameters", **kwargs - ) -> "models.Vault": + ) -> AsyncLROPoller["models.Vault"]: """Create or update a key vault in the specified subscription. :param resource_group_name: The name of the Resource Group to which the server belongs. @@ -121,8 +119,8 @@ async def begin_create_or_update( polling object for personal polling strategy :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: Vault, or the result of cls(response) - :rtype: ~azure.mgmt.keyvault.v2018_02_14.models.Vault + :return: An instance of AsyncLROPoller that returns either Vault or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.keyvault.v2018_02_14.models.Vault] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -209,7 +207,6 @@ async def update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultPatchParameters') body_content_kwargs['content'] = body_content @@ -222,7 +219,6 @@ async def update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -273,7 +269,6 @@ async def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -326,7 +321,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -391,7 +385,6 @@ async def update_access_policy( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultAccessPolicyParameters') body_content_kwargs['content'] = body_content @@ -404,7 +397,6 @@ async def update_access_policy( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('VaultAccessPolicyParameters', pipeline_response) @@ -441,6 +433,10 @@ def list_by_resource_group( api_version = "2018-02-14" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_resource_group.metadata['url'] # type: ignore @@ -455,15 +451,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -510,6 +502,10 @@ def list_by_subscription( api_version = "2018-02-14" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_subscription.metadata['url'] # type: ignore @@ -523,15 +519,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -575,6 +567,10 @@ def list_deleted( api_version = "2018-02-14" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_deleted.metadata['url'] # type: ignore @@ -586,15 +582,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -660,7 +652,6 @@ async def get_deleted( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -704,7 +695,6 @@ async def _purge_deleted_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.post(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -723,7 +713,7 @@ async def begin_purge_deleted( vault_name: str, location: str, **kwargs - ) -> None: + ) -> AsyncLROPoller[None]: """Permanently deletes the specified vault. aka Purges the deleted Azure key vault. :param vault_name: The name of the soft-deleted vault. @@ -736,8 +726,8 @@ async def begin_purge_deleted( polling object for personal polling strategy :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: None, or the result of cls(response) - :rtype: None + :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -794,9 +784,13 @@ def list( error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) filter = "resourceType eq 'Microsoft.KeyVault/vaults'" - api_version = "2018-02-14" + api_version = "2015-11-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -811,15 +805,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -882,7 +872,6 @@ async def check_name_availability( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(vault_name, 'VaultCheckNameAvailabilityParameters') body_content_kwargs['content'] = body_content diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_operations.py index e9d5d41a4e46..be8bf406ad45 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_operations.py @@ -63,6 +63,10 @@ def list( api_version = "2018-02-14" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -70,15 +74,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_private_endpoint_connections_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_private_endpoint_connections_operations.py index b9eacb3ba092..fb6c609fba68 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_private_endpoint_connections_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_private_endpoint_connections_operations.py @@ -91,7 +91,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -158,7 +157,6 @@ def put( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(properties, 'PrivateEndpointConnection') body_content_kwargs['content'] = body_content @@ -189,8 +187,8 @@ def _delete_initial( private_endpoint_connection_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.PrivateEndpointConnection" - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + # type: (...) -> Optional["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.PrivateEndpointConnection"]] error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) api_version = "2018-02-14" @@ -213,7 +211,6 @@ def _delete_initial( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -244,7 +241,7 @@ def begin_delete( private_endpoint_connection_name, # type: str **kwargs # type: Any ): - # type: (...) -> LROPoller + # type: (...) -> LROPoller["models.PrivateEndpointConnection"] """Deletes the specified private endpoint connection associated with the key vault. :param resource_group_name: Name of the resource group that contains the key vault. diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_private_link_resources_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_private_link_resources_operations.py index 303bace6fdc3..90e8eb527104 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_private_link_resources_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_private_link_resources_operations.py @@ -84,7 +84,6 @@ def list_by_vault( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_vaults_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_vaults_operations.py index df8155ca7ce1..a29a4f688c55 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_vaults_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2018_02_14/operations/_vaults_operations.py @@ -79,7 +79,6 @@ def _create_or_update_initial( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultCreateOrUpdateParameters') body_content_kwargs['content'] = body_content @@ -92,7 +91,6 @@ def _create_or_update_initial( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -112,7 +110,7 @@ def begin_create_or_update( parameters, # type: "models.VaultCreateOrUpdateParameters" **kwargs # type: Any ): - # type: (...) -> LROPoller + # type: (...) -> LROPoller["models.Vault"] """Create or update a key vault in the specified subscription. :param resource_group_name: The name of the Resource Group to which the server belongs. @@ -216,7 +214,6 @@ def update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultPatchParameters') body_content_kwargs['content'] = body_content @@ -229,7 +226,6 @@ def update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -281,7 +277,6 @@ def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -335,7 +330,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -401,7 +395,6 @@ def update_access_policy( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultAccessPolicyParameters') body_content_kwargs['content'] = body_content @@ -414,7 +407,6 @@ def update_access_policy( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('VaultAccessPolicyParameters', pipeline_response) @@ -452,6 +444,10 @@ def list_by_resource_group( api_version = "2018-02-14" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_resource_group.metadata['url'] # type: ignore @@ -466,15 +462,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -522,6 +514,10 @@ def list_by_subscription( api_version = "2018-02-14" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_subscription.metadata['url'] # type: ignore @@ -535,15 +531,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -588,6 +580,10 @@ def list_deleted( api_version = "2018-02-14" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_deleted.metadata['url'] # type: ignore @@ -599,15 +595,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -674,7 +666,6 @@ def get_deleted( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -719,7 +710,6 @@ def _purge_deleted_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.post(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -739,7 +729,7 @@ def begin_purge_deleted( location, # type: str **kwargs # type: Any ): - # type: (...) -> LROPoller + # type: (...) -> LROPoller[None] """Permanently deletes the specified vault. aka Purges the deleted Azure key vault. :param vault_name: The name of the soft-deleted vault. @@ -811,9 +801,13 @@ def list( error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) filter = "resourceType eq 'Microsoft.KeyVault/vaults'" - api_version = "2018-02-14" + api_version = "2015-11-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -828,15 +822,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -900,7 +890,6 @@ def check_name_availability( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(vault_name, 'VaultCheckNameAvailabilityParameters') body_content_kwargs['content'] = body_content diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_operations_async.py index a07488230478..2550e07a34f6 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_operations_async.py @@ -58,6 +58,10 @@ def list( api_version = "2019-09-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -65,15 +69,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_private_endpoint_connections_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_private_endpoint_connections_operations_async.py index 5441c5db5659..d178f5229c2f 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_private_endpoint_connections_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_private_endpoint_connections_operations_async.py @@ -86,7 +86,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -152,7 +151,6 @@ async def put( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(properties, 'PrivateEndpointConnection') body_content_kwargs['content'] = body_content @@ -182,8 +180,8 @@ async def _delete_initial( vault_name: str, private_endpoint_connection_name: str, **kwargs - ) -> "models.PrivateEndpointConnection": - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + ) -> Optional["models.PrivateEndpointConnection"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.PrivateEndpointConnection"]] error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) api_version = "2019-09-01" @@ -206,7 +204,6 @@ async def _delete_initial( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -236,7 +233,7 @@ async def begin_delete( vault_name: str, private_endpoint_connection_name: str, **kwargs - ) -> "models.PrivateEndpointConnection": + ) -> AsyncLROPoller["models.PrivateEndpointConnection"]: """Deletes the specified private endpoint connection associated with the key vault. :param resource_group_name: Name of the resource group that contains the key vault. @@ -252,8 +249,8 @@ async def begin_delete( polling object for personal polling strategy :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~azure.mgmt.keyvault.v2019_09_01.models.PrivateEndpointConnection + :return: An instance of AsyncLROPoller that returns either PrivateEndpointConnection or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.keyvault.v2019_09_01.models.PrivateEndpointConnection] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_private_link_resources_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_private_link_resources_operations_async.py index 74957bed8692..bd21613268b5 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_private_link_resources_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_private_link_resources_operations_async.py @@ -79,7 +79,6 @@ async def list_by_vault( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_vaults_operations_async.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_vaults_operations_async.py index fc82562b634c..eaddd56bf6af 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_vaults_operations_async.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/aio/operations_async/_vaults_operations_async.py @@ -74,7 +74,6 @@ async def _create_or_update_initial( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultCreateOrUpdateParameters') body_content_kwargs['content'] = body_content @@ -87,7 +86,6 @@ async def _create_or_update_initial( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -106,7 +104,7 @@ async def begin_create_or_update( vault_name: str, parameters: "models.VaultCreateOrUpdateParameters", **kwargs - ) -> "models.Vault": + ) -> AsyncLROPoller["models.Vault"]: """Create or update a key vault in the specified subscription. :param resource_group_name: The name of the Resource Group to which the server belongs. @@ -121,8 +119,8 @@ async def begin_create_or_update( polling object for personal polling strategy :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: Vault, or the result of cls(response) - :rtype: ~azure.mgmt.keyvault.v2019_09_01.models.Vault + :return: An instance of AsyncLROPoller that returns either Vault or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.keyvault.v2019_09_01.models.Vault] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -209,7 +207,6 @@ async def update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultPatchParameters') body_content_kwargs['content'] = body_content @@ -222,7 +219,6 @@ async def update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -273,7 +269,6 @@ async def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -326,7 +321,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -391,7 +385,6 @@ async def update_access_policy( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultAccessPolicyParameters') body_content_kwargs['content'] = body_content @@ -404,7 +397,6 @@ async def update_access_policy( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('VaultAccessPolicyParameters', pipeline_response) @@ -441,6 +433,10 @@ def list_by_resource_group( api_version = "2019-09-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_resource_group.metadata['url'] # type: ignore @@ -455,15 +451,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -510,6 +502,10 @@ def list_by_subscription( api_version = "2019-09-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_subscription.metadata['url'] # type: ignore @@ -523,15 +519,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -575,6 +567,10 @@ def list_deleted( api_version = "2019-09-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_deleted.metadata['url'] # type: ignore @@ -586,15 +582,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -660,7 +652,6 @@ async def get_deleted( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -704,7 +695,6 @@ async def _purge_deleted_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.post(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -723,7 +713,7 @@ async def begin_purge_deleted( vault_name: str, location: str, **kwargs - ) -> None: + ) -> AsyncLROPoller[None]: """Permanently deletes the specified vault. aka Purges the deleted Azure key vault. :param vault_name: The name of the soft-deleted vault. @@ -736,8 +726,8 @@ async def begin_purge_deleted( polling object for personal polling strategy :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: None, or the result of cls(response) - :rtype: None + :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -794,9 +784,13 @@ def list( error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) filter = "resourceType eq 'Microsoft.KeyVault/vaults'" - api_version = "2019-09-01" + api_version = "2015-11-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -811,15 +805,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -882,7 +872,6 @@ async def check_name_availability( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(vault_name, 'VaultCheckNameAvailabilityParameters') body_content_kwargs['content'] = body_content diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_operations.py index 7f961d399970..78b6b93255ed 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_operations.py @@ -63,6 +63,10 @@ def list( api_version = "2019-09-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -70,15 +74,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_private_endpoint_connections_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_private_endpoint_connections_operations.py index f4a731639511..843ee7f45cd1 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_private_endpoint_connections_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_private_endpoint_connections_operations.py @@ -91,7 +91,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -158,7 +157,6 @@ def put( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(properties, 'PrivateEndpointConnection') body_content_kwargs['content'] = body_content @@ -189,8 +187,8 @@ def _delete_initial( private_endpoint_connection_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.PrivateEndpointConnection" - cls = kwargs.pop('cls', None) # type: ClsType["models.PrivateEndpointConnection"] + # type: (...) -> Optional["models.PrivateEndpointConnection"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.PrivateEndpointConnection"]] error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) api_version = "2019-09-01" @@ -213,7 +211,6 @@ def _delete_initial( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -244,7 +241,7 @@ def begin_delete( private_endpoint_connection_name, # type: str **kwargs # type: Any ): - # type: (...) -> LROPoller + # type: (...) -> LROPoller["models.PrivateEndpointConnection"] """Deletes the specified private endpoint connection associated with the key vault. :param resource_group_name: Name of the resource group that contains the key vault. diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_private_link_resources_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_private_link_resources_operations.py index f7874435bd23..db08e491b020 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_private_link_resources_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_private_link_resources_operations.py @@ -84,7 +84,6 @@ def list_by_vault( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_vaults_operations.py b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_vaults_operations.py index f8d4ef58edbf..b71de4d0827f 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_vaults_operations.py +++ b/sdk/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2019_09_01/operations/_vaults_operations.py @@ -79,7 +79,6 @@ def _create_or_update_initial( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultCreateOrUpdateParameters') body_content_kwargs['content'] = body_content @@ -92,7 +91,6 @@ def _create_or_update_initial( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -112,7 +110,7 @@ def begin_create_or_update( parameters, # type: "models.VaultCreateOrUpdateParameters" **kwargs # type: Any ): - # type: (...) -> LROPoller + # type: (...) -> LROPoller["models.Vault"] """Create or update a key vault in the specified subscription. :param resource_group_name: The name of the Resource Group to which the server belongs. @@ -216,7 +214,6 @@ def update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultPatchParameters') body_content_kwargs['content'] = body_content @@ -229,7 +226,6 @@ def update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Vault', pipeline_response) @@ -281,7 +277,6 @@ def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -335,7 +330,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -401,7 +395,6 @@ def update_access_policy( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'VaultAccessPolicyParameters') body_content_kwargs['content'] = body_content @@ -414,7 +407,6 @@ def update_access_policy( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('VaultAccessPolicyParameters', pipeline_response) @@ -452,6 +444,10 @@ def list_by_resource_group( api_version = "2019-09-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_resource_group.metadata['url'] # type: ignore @@ -466,15 +462,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -522,6 +514,10 @@ def list_by_subscription( api_version = "2019-09-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_subscription.metadata['url'] # type: ignore @@ -535,15 +531,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -588,6 +580,10 @@ def list_deleted( api_version = "2019-09-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_deleted.metadata['url'] # type: ignore @@ -599,15 +595,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -674,7 +666,6 @@ def get_deleted( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -719,7 +710,6 @@ def _purge_deleted_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.post(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -739,7 +729,7 @@ def begin_purge_deleted( location, # type: str **kwargs # type: Any ): - # type: (...) -> LROPoller + # type: (...) -> LROPoller[None] """Permanently deletes the specified vault. aka Purges the deleted Azure key vault. :param vault_name: The name of the soft-deleted vault. @@ -811,9 +801,13 @@ def list( error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) filter = "resourceType eq 'Microsoft.KeyVault/vaults'" - api_version = "2019-09-01" + api_version = "2015-11-01" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -828,15 +822,11 @@ def prepare_request(next_link=None): query_parameters['$top'] = self._serialize.query("top", top, 'int') query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -900,7 +890,6 @@ def check_name_availability( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(vault_name, 'VaultCheckNameAvailabilityParameters') body_content_kwargs['content'] = body_content diff --git a/sdk/keyvault/azure-mgmt-keyvault/tests/recordings/test_cli_mgmt_keyvault.test_keyvault.yaml b/sdk/keyvault/azure-mgmt-keyvault/tests/recordings/test_cli_mgmt_keyvault.test_keyvault.yaml index 9030b82ee416..817530671580 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/tests/recordings/test_cli_mgmt_keyvault.test_keyvault.yaml +++ b/sdk/keyvault/azure-mgmt-keyvault/tests/recordings/test_cli_mgmt_keyvault.test_keyvault.yaml @@ -1,8 +1,8 @@ interactions: - request: - body: 'b''{"location": "eastus", "properties": {"tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + body: 'b''{"location": "eastus", "properties": {"tenantId": "00000000-0000-0000-0000-000000000000", "sku": {"family": "A", "name": "standard"}, "accessPolicies": [{"tenantId": - "72f988bf-86f1-41af-91ab-2d7cd011db47", "objectId": "00000000-0000-0000-0000-000000000000", + "00000000-0000-0000-0000-000000000000", "objectId": "00000000-0000-0000-0000-000000000000", "permissions": {"keys": ["encrypt", "decrypt", "wrapKey", "unwrapKey", "sign", "verify", "get", "list", "create", "update", "import", "delete", "backup", "restore", "recover", "purge"], "secrets": ["get", "list", "set", "delete", "backup", "restore", @@ -22,21 +22,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz?api-version=2019-09-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy","name":"myValtZikfikxy","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","accessPolicies":[{"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myValtZikfikxy.vault.azure.net","provisioningState":"RegisteringDns"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz","name":"myValtZikfikxz","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myValtZikfikxz.vault.azure.net","provisioningState":"RegisteringDns"}}' headers: cache-control: - no-cache content-length: - - '1113' + - '1144' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:44:50 GMT + - Tue, 21 Jul 2020 08:20:57 GMT expires: - '-1' pragma: @@ -54,9 +54,9 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-ms-ratelimit-remaining-subscription-writes: - - '1199' + - '1193' x-powered-by: - ASP.NET status: @@ -72,21 +72,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz?api-version=2019-09-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy","name":"myValtZikfikxy","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","accessPolicies":[{"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxy.vault.azure.net/","provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz","name":"myValtZikfikxz","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxz.vault.azure.net/","provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '1109' + - '1140' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:20 GMT + - Tue, 21 Jul 2020 08:21:30 GMT expires: - '-1' pragma: @@ -104,14 +104,14 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: 'b''{"properties": {"accessPolicies": [{"tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + body: 'b''{"properties": {"accessPolicies": [{"tenantId": "00000000-0000-0000-0000-000000000000", "objectId": "00000000-0000-0000-0000-000000000000", "permissions": {"keys": ["encrypt"], "secrets": ["get"], "certificates": ["get"]}}]}}''' headers: @@ -126,21 +126,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy/accessPolicies/add?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz/accessPolicies/add?api-version=2019-09-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy/accessPolicies/","type":"Microsoft.KeyVault/vaults/accessPolicies","properties":{"accessPolicies":[{"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}]}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz/accessPolicies/","type":"Microsoft.KeyVault/vaults/accessPolicies","properties":{"accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}]}}' headers: cache-control: - no-cache content-length: - - '792' + - '823' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:21 GMT + - Tue, 21 Jul 2020 08:21:32 GMT expires: - '-1' pragma: @@ -158,9 +158,9 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1192' x-powered-by: - ASP.NET status: @@ -176,21 +176,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz?api-version=2019-09-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy","name":"myValtZikfikxy","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","accessPolicies":[{"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxy.vault.azure.net/","provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz","name":"myValtZikfikxz","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxz.vault.azure.net/","provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '1109' + - '1140' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:21 GMT + - Tue, 21 Jul 2020 08:21:33 GMT expires: - '-1' pragma: @@ -208,7 +208,7 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-powered-by: - ASP.NET status: @@ -228,21 +228,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: PATCH - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz?api-version=2019-09-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy","name":"myValtZikfikxy","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","accessPolicies":[{"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxy.vault.azure.net/","provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz","name":"myValtZikfikxz","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxz.vault.azure.net/","provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '1109' + - '1140' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:22 GMT + - Tue, 21 Jul 2020 08:21:34 GMT expires: - '-1' pragma: @@ -260,9 +260,9 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1191' x-powered-by: - ASP.NET status: @@ -282,7 +282,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/checkNameAvailability?api-version=2019-09-01 response: @@ -297,7 +297,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:22 GMT + - Tue, 21 Jul 2020 08:21:34 GMT expires: - '-1' pragma: @@ -315,7 +315,7 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-powered-by: - ASP.NET status: @@ -333,9 +333,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz?api-version=2019-09-01 response: body: string: '' @@ -345,7 +345,7 @@ interactions: content-length: - '0' date: - - Wed, 29 Apr 2020 10:45:25 GMT + - Tue, 21 Jul 2020 08:21:44 GMT expires: - '-1' pragma: @@ -359,9 +359,9 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-ms-ratelimit-remaining-subscription-deletes: - - '14999' + - '14997' x-powered-by: - ASP.NET status: @@ -377,21 +377,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxy?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxz?api-version=2019-09-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxy","name":"myValtZikfikxy","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxy","location":"eastus","tags":{},"deletionDate":"2020-04-29T10:45:24Z","scheduledPurgeDate":"2020-07-28T10:45:24Z"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxz","name":"myValtZikfikxz","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxz","location":"eastus","tags":{},"deletionDate":"2020-07-21T08:21:35Z","scheduledPurgeDate":"2020-10-19T08:21:35Z"}}' headers: cache-control: - no-cache content-length: - - '503' + - '534' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:25 GMT + - Tue, 21 Jul 2020 08:21:44 GMT expires: - '-1' pragma: @@ -409,7 +409,7 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-powered-by: - ASP.NET status: @@ -427,9 +427,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxy/purge?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxz/purge?api-version=2019-09-01 response: body: string: '' @@ -439,11 +439,11 @@ interactions: content-length: - '0' date: - - Wed, 29 Apr 2020 10:45:26 GMT + - Tue, 21 Jul 2020 08:21:45 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzIzNzUzOTI3NzYyNzYxOHw0MjIwOTIzNUM4Mzk0Q0RDQTJDQTg0QjkzRTNDQjg3Mg?api-version=2019-09-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 pragma: - no-cache server: @@ -455,9 +455,607 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-ms-ratelimit-remaining-subscription-writes: - - '1199' + - '1198' + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:21:50 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:21:56 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:01 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:06 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:12 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:17 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:22 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:28 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:33 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:38 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:44 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:50 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 + x-powered-by: + - ASP.NET + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' + headers: + cache-control: + - no-cache + content-length: + - '64' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 21 Jul 2020 08:22:55 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-ms-keyvault-service-version: + - 1.1.0.283 x-powered-by: - ASP.NET status: @@ -473,12 +1071,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzIzNzUzOTI3NzYyNzYxOHw0MjIwOTIzNUM4Mzk0Q0RDQTJDQTg0QjkzRTNDQjg3Mg?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 response: body: - string: '{"createdDateTime":"2020-04-29 10:45:26Z","status":"NotStarted"}' + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' headers: cache-control: - no-cache @@ -487,11 +1085,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:31 GMT + - Tue, 21 Jul 2020 08:23:01 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzIzNzUzOTI3NzYyNzYxOHw0MjIwOTIzNUM4Mzk0Q0RDQTJDQTg0QjkzRTNDQjg3Mg?api-version=2019-09-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 pragma: - no-cache server: @@ -503,7 +1101,7 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-powered-by: - ASP.NET status: @@ -519,12 +1117,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzIzNzUzOTI3NzYyNzYxOHw0MjIwOTIzNUM4Mzk0Q0RDQTJDQTg0QjkzRTNDQjg3Mg?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 response: body: - string: '{"createdDateTime":"2020-04-29 10:45:26Z","status":"NotStarted"}' + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' headers: cache-control: - no-cache @@ -533,11 +1131,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:36 GMT + - Tue, 21 Jul 2020 08:23:06 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzIzNzUzOTI3NzYyNzYxOHw0MjIwOTIzNUM4Mzk0Q0RDQTJDQTg0QjkzRTNDQjg3Mg?api-version=2019-09-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 pragma: - no-cache server: @@ -549,7 +1147,7 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-powered-by: - ASP.NET status: @@ -565,12 +1163,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzIzNzUzOTI3NzYyNzYxOHw0MjIwOTIzNUM4Mzk0Q0RDQTJDQTg0QjkzRTNDQjg3Mg?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 response: body: - string: '{"createdDateTime":"2020-04-29 10:45:26Z","status":"NotStarted"}' + string: '{"createdDateTime":"2020-07-21 08:21:45Z","status":"NotStarted"}' headers: cache-control: - no-cache @@ -579,11 +1177,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:41 GMT + - Tue, 21 Jul 2020 08:23:11 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzIzNzUzOTI3NzYyNzYxOHw0MjIwOTIzNUM4Mzk0Q0RDQTJDQTg0QjkzRTNDQjg3Mg?api-version=2019-09-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 pragma: - no-cache server: @@ -595,7 +1193,7 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-powered-by: - ASP.NET status: @@ -611,13 +1209,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzIzNzUzOTI3NzYyNzYxOHw0MjIwOTIzNUM4Mzk0Q0RDQTJDQTg0QjkzRTNDQjg3Mg?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2NTA2NzQwODIwNnwxNTc5OTY3NDQ4QUQ0QTFBQTgwQzlERkVEQTBEMkQxMQ?api-version=2019-09-01 response: body: - string: '{"createdDateTime":"2020-04-29 10:45:26Z","lastActionDateTime":"2020-04-29 - 10:45:42Z","status":"Succeeded"}' + string: '{"createdDateTime":"2020-07-21 08:21:45Z","lastActionDateTime":"2020-07-21 + 08:23:14Z","status":"Succeeded"}' headers: cache-control: - no-cache @@ -626,7 +1224,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Apr 2020 10:45:46 GMT + - Tue, 21 Jul 2020 08:23:17 GMT expires: - '-1' pragma: @@ -644,7 +1242,7 @@ interactions: x-content-type-options: - nosniff x-ms-keyvault-service-version: - - 1.1.0.277 + - 1.1.0.283 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-mgmt-keyvault/tests/recordings/test_cli_mgmt_keyvault_async.test_keyvault.yaml b/sdk/keyvault/azure-mgmt-keyvault/tests/recordings/test_cli_mgmt_keyvault_async.test_keyvault.yaml index cfc159997b0e..fa1ef5d73bf3 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/tests/recordings/test_cli_mgmt_keyvault_async.test_keyvault.yaml +++ b/sdk/keyvault/azure-mgmt-keyvault/tests/recordings/test_cli_mgmt_keyvault_async.test_keyvault.yaml @@ -18,7 +18,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 response: @@ -28,7 +28,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:18 GMT + date: Tue, 21 Jul 2020 08:13:18 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -37,18 +37,18 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 - x-ms-ratelimit-remaining-subscription-writes: '1198' + x-ms-keyvault-service-version: 1.1.0.283 + x-ms-ratelimit-remaining-subscription-writes: '1197' x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/vra53ahg2dkl4ogaogg2spj5iddbgeewhd67uhzbued73tzlvcw3p3x5fb47f3ippwlbykcwo3u/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 - request: body: null headers: User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 response: @@ -58,7 +58,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:51 GMT + date: Tue, 21 Jul 2020 08:13:48 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -67,12 +67,12 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/vra53ahg2dkl4ogaogg2spj5iddbgeewhd67uhzbued73tzlvcw3p3x5fb47f3ippwlbykcwo3u/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 - request: body: 'b''{"properties": {"accessPolicies": [{"tenantId": "00000000-0000-0000-0000-000000000000", "objectId": "00000000-0000-0000-0000-000000000000", "permissions": {"keys": @@ -85,7 +85,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz/accessPolicies/add?api-version=2019-09-01 response: @@ -95,7 +95,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:51 GMT + date: Tue, 21 Jul 2020 08:13:49 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -104,20 +104,20 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 - x-ms-ratelimit-remaining-subscription-writes: '1198' + x-ms-keyvault-service-version: 1.1.0.283 + x-ms-ratelimit-remaining-subscription-writes: '1196' x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz/accessPolicies/add?api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/vra53ahg2dkl4ogaogg2spj5iddbgeewhd67uhzbued73tzlvcw3p3x5fb47f3ippwlbykcwo3u/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz/accessPolicies/add?api-version=2019-09-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 response: @@ -127,7 +127,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:52 GMT + date: Tue, 21 Jul 2020 08:13:49 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -136,19 +136,19 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/vra53ahg2dkl4ogaogg2spj5iddbgeewhd67uhzbued73tzlvcw3p3x5fb47f3ippwlbykcwo3u/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01 response: @@ -158,7 +158,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:52 GMT + date: Tue, 21 Jul 2020 08:13:50 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -167,19 +167,19 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/vra53ahg2dkl4ogaogg2spj5iddbgeewhd67uhzbued73tzlvcw3p3x5fb47f3ippwlbykcwo3u/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=bXlWYWx0WmlrZmlreHl6eg== response: @@ -189,7 +189,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:53 GMT + date: Tue, 21 Jul 2020 08:13:50 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -198,36 +198,36 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=bXlWYWx0WmlrZmlreHl6eg== + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/vra53ahg2dkl4ogaogg2spj5iddbgeewhd67uhzbued73tzlvcw3p3x5fb47f3ippwlbykcwo3u/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=bXlWYWx0WmlrZmlreHl6eg== - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedVaults?api-version=2019-09-01 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/keyvaultxyzxxxxx","name":"keyvaultxyzxxxxx","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testgroupx/providers/Microsoft.KeyVault/vaults/keyvaultxyzxxxxx","location":"eastus","tags":{},"deletionDate":"2020-05-12T09:10:06Z","scheduledPurgeDate":"2020-08-10T09:10:06Z"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/keyvaultxyzxxxx","name":"keyvaultxyzxxxx","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testgroupx/providers/Microsoft.KeyVault/vaults/keyvaultxyzxxxx","location":"eastus","tags":{},"deletionDate":"2020-05-12T08:22:10Z","scheduledPurgeDate":"2020-08-10T08:22:10Z"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedVaults/pykvf9870e4e","name":"pykvf9870e4e","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_vaults_test_vaults_operationsf9870e4e/providers/Microsoft.KeyVault/vaults/pykvf9870e4e","location":"westus","tags":{},"deletionDate":"2020-03-18T09:43:53Z","scheduledPurgeDate":"2020-06-16T09:43:53Z"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedVaults?api-version=2019-09-01&%24skiptoken=3ZDtaoMwGIXvJYz9mlWjXbVQhmAK22okaWJh%2f2yMrabVYuxXSu99YZcxOHA4cDgv7%2fMAnbyNq6ZTGswfACVrxtdgDvbjeNJz1z2WXbmTR9mNk9KcBzkR%2fdHV560WQ3Mam77TbgzreFpFtROI95kT%2bjB0Yl%2fMnEjU3kxU2xqGvnsa%2bktTyUG7WSOGXvf1OPmW96I8H0a3kgc5yuov6I%2fy1DgX27TjC%2bj5seNZ%2ba8vWtmLvZLdgqtiQ4svRjldMlTwNY%2fzFT%2fwOv30M7a7ZSa55yyBOeMGGwExwxHx%2bJW0Ksh5BjOW3HCaGGKUh5m6YkOXxHBIPJzmHIE3sEH%2fgYP9PcAtgrjlofU7Nj9RZsjVsgiwlxmaUoRTZGirLIvE2F5A0z2iKZ8SRcDz%2bQs%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/test-changlong","name":"test-changlong","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-changlong/providers/Microsoft.KeyVault/vaults/test-changlong","location":"eastus","tags":{},"deletionDate":"2020-06-12T07:38:10Z","scheduledPurgeDate":"2020-09-10T07:38:10Z"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/keyvaultxyzxxxxx","name":"keyvaultxyzxxxxx","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testgroupx/providers/Microsoft.KeyVault/vaults/keyvaultxyzxxxxx","location":"eastus","tags":{},"deletionDate":"2020-05-12T09:10:06Z","scheduledPurgeDate":"2020-08-10T09:10:06Z"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/keyvaultxyzxxxx","name":"keyvaultxyzxxxx","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testgroupx/providers/Microsoft.KeyVault/vaults/keyvaultxyzxxxx","location":"eastus","tags":{},"deletionDate":"2020-05-12T08:22:10Z","scheduledPurgeDate":"2020-08-10T08:22:10Z"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedVaults?api-version=2019-09-01&%24skiptoken=HY1ba4MwAEb%2fSxh702jq5gXKELSwrUbUxD3bGDsXb5jY2pT%2b98rgezlwON8dDHxVx3YQEgR3EIcFoQUIwK9Skwwg7KuhOvOeD8qs9DJzk409lMtJsrmdVDsOEvqo8d9qrzF27N01HBs5hm8z1%2fBYY7msPjXIseE0j5e25rOEScvmUY6NMr%2f5rayWTsGad1zx%2bh%2fkRzW1xmUzt%2fgeWbZvWNvs1xcptsdR8GFPRfmTl18kp%2fmBxCUtqJ8eaUeb6NNOyHlNdHhLSYhSQjXWDGGCvcyi1%2bxP7FKaoISEK45CnWlhYSKuWOeHTFOUWThKaQwejyc%3d"}' headers: cache-control: no-cache content-encoding: gzip - content-length: '1045' + content-length: '927' content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:55 GMT + date: Tue, 21 Jul 2020 08:13:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000; includeSubDomains vary: Accept-Encoding x-content-type-options: nosniff - x-ms-original-request-ids: 34023f30-fd9c-4561-ab54-ea8250813f02 + x-ms-original-request-ids: 8e68c799-efe4-4a5d-a169-3390eb3f2af9 status: code: 200 message: OK @@ -238,9 +238,9 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedVaults?api-version=2019-09-01&$skiptoken=3ZDtaoMwGIXvJYz9mlWjXbVQhmAK22okaWJh/2yMrabVYuxXSu99YZcxOHA4cDgv7/MAnbyNq6ZTGswfACVrxtdgDvbjeNJz1z2WXbmTR9mNk9KcBzkR/dHV560WQ3Mam77TbgzreFpFtROI95kT%2BjB0Yl/MnEjU3kxU2xqGvnsa%2BktTyUG7WSOGXvf1OPmW96I8H0a3kgc5yuov6I/y1DgX27TjC%2Bj5seNZ%2Ba8vWtmLvZLdgqtiQ4svRjldMlTwNY/zFT/wOv30M7a7ZSa55yyBOeMGGwExwxHx%2BJW0Ksh5BjOW3HCaGGKUh5m6YkOXxHBIPJzmHIE3sEH/gYP9PcAtgrjlofU7Nj9RZsjVsgiwlxmaUoRTZGirLIvE2F5A0z2iKZ8SRcDz%2BQs%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedVaults?api-version=2019-09-01&$skiptoken=HY1ba4MwAEb/Sxh702jq5gXKELSwrUbUxD3bGDsXb5jY2pT%2B98rgezlwON8dDHxVx3YQEgR3EIcFoQUIwK9Skwwg7KuhOvOeD8qs9DJzk409lMtJsrmdVDsOEvqo8d9qrzF27N01HBs5hm8z1/BYY7msPjXIseE0j5e25rOEScvmUY6NMr/5rayWTsGad1zx%2Bh/kRzW1xmUzt/geWbZvWNvs1xcptsdR8GFPRfmTl18kp/mBxCUtqJ8eaUeb6NNOyHlNdHhLSYhSQjXWDGGCvcyi1%2BxP7FKaoISEK45CnWlhYSKuWOeHTFOUWThKaQwejyc%3D response: body: string: '{"value":[]}' @@ -249,41 +249,41 @@ interactions: content-encoding: gzip content-length: '133' content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:55 GMT + date: Tue, 21 Jul 2020 08:13:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000; includeSubDomains vary: Accept-Encoding x-content-type-options: nosniff - x-ms-original-request-ids: 970fc52b-6668-4c03-968e-87d60145429a + x-ms-original-request-ids: 6b5e9021-1b1a-4cb4-9e57-f1c93c6b0ff3 status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/deletedVaults?api-version=2019-09-01&$skiptoken=3ZDtaoMwGIXvJYz9mlWjXbVQhmAK22okaWJh/2yMrabVYuxXSu99YZcxOHA4cDgv7/MAnbyNq6ZTGswfACVrxtdgDvbjeNJz1z2WXbmTR9mNk9KcBzkR/dHV560WQ3Mam77TbgzreFpFtROI95kT%2BjB0Yl/MnEjU3kxU2xqGvnsa%2BktTyUG7WSOGXvf1OPmW96I8H0a3kgc5yuov6I/y1DgX27TjC%2Bj5seNZ%2Ba8vWtmLvZLdgqtiQ4svRjldMlTwNY/zFT/wOv30M7a7ZSa55yyBOeMGGwExwxHx%2BJW0Ksh5BjOW3HCaGGKUh5m6YkOXxHBIPJzmHIE3sEH/gYP9PcAtgrjlofU7Nj9RZsjVsgiwlxmaUoRTZGirLIvE2F5A0z2iKZ8SRcDz%2BQs%3D + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/deletedVaults?api-version=2019-09-01&$skiptoken=HY1ba4MwAEb/Sxh702jq5gXKELSwrUbUxD3bGDsXb5jY2pT%2B98rgezlwON8dDHxVx3YQEgR3EIcFoQUIwK9Skwwg7KuhOvOeD8qs9DJzk409lMtJsrmdVDsOEvqo8d9qrzF27N01HBs5hm8z1/BYY7msPjXIseE0j5e25rOEScvmUY6NMr/5rayWTsGad1zx%2Bh/kRzW1xmUzt/geWbZvWNvs1xcptsdR8GFPRfmTl18kp/mBxCUtqJ8eaUeb6NNOyHlNdHhLSYhSQjXWDGGCvcyi1%2BxP7FKaoISEK45CnWlhYSKuWOeHTFOUWThKaQwejyc%3D - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-changlong/providers/Microsoft.KeyVault/vaults/test-changlong","name":"test-changlong","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"6bedd520-9535-468f-9ab3-79d17bea1b92","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"enableSoftDelete":true,"softDeleteRetentionInDays":90,"enableRbacAuthorization":false,"vaultUri":"https://test-changlong.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz","name":"myValtZikfikxyzz","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxyzz.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/git2gridtesting/providers/Microsoft.KeyVault/vaults/git2gridkv","name":"git2gridkv","type":"Microsoft.KeyVault/vaults","location":"centralus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"7b5d64cb-f02f-4b19-ab5d-60dca4916c54","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"vaultUri":"https://git2gridkv.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azure-sdk-for-node/providers/Microsoft.KeyVault/vaults/node-sdk-kv","name":"node-sdk-kv","type":"Microsoft.KeyVault/vaults","location":"westus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"52bcebf6-9dc1-4a9a-8b3b-6962bb22a6aa","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"vaultUri":"https://node-sdk-kv.vault.azure.net/","provisioningState":"Succeeded"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?%24top=1&api-version=2019-09-01&%24skiptoken=1VHRbqMwEPwXVPWpBAwhCZHQqb2jtL1Cr0Aw%2bM3YphBsQNjJEar%2b%2b9H7ilbaWY1Gqx3N7rvWsUk9N10rtf275t8m6SHR9lqt1CD3hiFwh9%2bYYJ1a4fk0shXphSFPpSRjM6im76ThWpXr0F2l22Sz1dfAWusuIFt9RypzS2hZWWtgDGN%2fbigbpRE2ZOxlX6nVb3bJ8Ikr4%2fzZ5Y8r1Q8euMZDo5%2bXyWW5Z5nA1c2lwPWVbBfHvmWdR4NspvfusQx4VUKqFj6inFtFnsmF18TmpwK4JsojM7cUZzmqKZzMaCY2Sv0pstCuzDksFg0KPqIF7IFv2JvnaTfaTz9K49vnr38HZHEzFPSCYfw%2fK4ZOVwV0oL%2beOiJ4i%2b3iMw%2f0v8NTEzaeG8LusGT0JhXuCSVTGwO0QX7hhJwXWRe1ie8I5FPIRBy8pE8I3qMZ%2bfULEo%2fzq5iO5aH4W2TEoTC8wDT7EweRDXmclAF6fD1mdQgGlYK4C03wkKV3%2bJCarvbx8Q8%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz","name":"myValtZikfikxyzz","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxyzz.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/git2gridtesting/providers/Microsoft.KeyVault/vaults/git2gridkv","name":"git2gridkv","type":"Microsoft.KeyVault/vaults","location":"centralus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"7b5d64cb-f02f-4b19-ab5d-60dca4916c54","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"vaultUri":"https://git2gridkv.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azure-sdk-for-node/providers/Microsoft.KeyVault/vaults/node-sdk-kv","name":"node-sdk-kv","type":"Microsoft.KeyVault/vaults","location":"westus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"52bcebf6-9dc1-4a9a-8b3b-6962bb22a6aa","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"vaultUri":"https://node-sdk-kv.vault.azure.net/","provisioningState":"Succeeded"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?%24top=1&api-version=2019-09-01&%24skiptoken=1VLNbqMwGHwXVPVUAnZIEyJFq7LrJLtNiGocHLgZY1pifrzYkJSq777pYR%2bi0qc5jEYzmtH3YTXianZlI7W1%2fLDQU0SOkbW03oxReuk4NWvYq6hFYyZs7Dsx4W3t6D7TvCuVKdtGOz4s%2fFm%2bKOwpf5zbHoCe7QM%2btxe8cOc8zwroAUd17VDmotPOvuRdq9vCTJ7Fe8z6yjjDF%2bofd6ZVK3DPVGkPN%2bXNfAVd4Nvu7cD9nZa3xFaKZhWJbii5CJgW%2bQOp%2fT6NrjKTqiUVPrDNeptMK4aneCSSz7KqOh3ojAmpHhM3H%2fZ0fTrWJs0o1rR6kxlQiJJQxvAVUjqj2VqhZKpktA3GdAMOe9cdX06qwuvUUKrwHqi%2fpAnOEfo9JjJ%2fDil6J%2bewFNK7ppJfwzg1uAklboJLQv4wvkEj%2bxVXWb3wrQfrJwoJftp9z5HZvr5cCAVSfI14DhhF3iWJOcjqdJtuA4mR6hMININopMRd3QpT9B1eKjkpwOuj4RB3O5oOvAR9BnFVbGZDuvnPG2h9fv4D"}' headers: cache-control: no-cache content-encoding: gzip - content-length: '1823' + content-length: '1727' content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:56 GMT + date: Tue, 21 Jul 2020 08:13:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000; includeSubDomains vary: Accept-Encoding x-content-type-options: nosniff - x-ms-original-request-ids: ded3b3c4-1c3c-490d-b98c-0f6cbbdf3f81 + x-ms-original-request-ids: 30ca9ed8-3dd8-4ad3-bf57-a629df4f8280 status: code: 200 message: OK @@ -294,9 +294,9 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=1VHRbqMwEPwXVPWpBAwhCZHQqb2jtL1Cr0Aw%2BM3YphBsQNjJEar%2B%2B9H7ilbaWY1Gqx3N7rvWsUk9N10rtf275t8m6SHR9lqt1CD3hiFwh9%2BYYJ1a4fk0shXphSFPpSRjM6im76ThWpXr0F2l22Sz1dfAWusuIFt9RypzS2hZWWtgDGN/bigbpRE2ZOxlX6nVb3bJ8Ikr4/zZ5Y8r1Q8euMZDo5%2BXyWW5Z5nA1c2lwPWVbBfHvmWdR4NspvfusQx4VUKqFj6inFtFnsmF18TmpwK4JsojM7cUZzmqKZzMaCY2Sv0pstCuzDksFg0KPqIF7IFv2JvnaTfaTz9K49vnr38HZHEzFPSCYfw/K4ZOVwV0oL%2BeOiJ4i%2B3iMw/0v8NTEzaeG8LusGT0JhXuCSVTGwO0QX7hhJwXWRe1ie8I5FPIRBy8pE8I3qMZ%2BfULEo/zq5iO5aH4W2TEoTC8wDT7EweRDXmclAF6fD1mdQgGlYK4C03wkKV3%2BJCarvbx8Q8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=1VLNbqMwGHwXVPVUAnZIEyJFq7LrJLtNiGocHLgZY1pifrzYkJSq777pYR%2Bi0qc5jEYzmtH3YTXianZlI7W1/LDQU0SOkbW03oxReuk4NWvYq6hFYyZs7Dsx4W3t6D7TvCuVKdtGOz4s/Fm%2BKOwpf5zbHoCe7QM%2Btxe8cOc8zwroAUd17VDmotPOvuRdq9vCTJ7Fe8z6yjjDF%2Bofd6ZVK3DPVGkPN%2BXNfAVd4Nvu7cD9nZa3xFaKZhWJbii5CJgW%2BQOp/T6NrjKTqiUVPrDNeptMK4aneCSSz7KqOh3ojAmpHhM3H/Z0fTrWJs0o1rR6kxlQiJJQxvAVUjqj2VqhZKpktA3GdAMOe9cdX06qwuvUUKrwHqi/pAnOEfo9JjJ/Dil6J%2BewFNK7ppJfwzg1uAklboJLQv4wvkEj%2BxVXWb3wrQfrJwoJftp9z5HZvr5cCAVSfI14DhhF3iWJOcjqdJtuA4mR6hMININopMRd3QpT9B1eKjkpwOuj4RB3O5oOvAR9BnFVbGZDuvnPG2h9fv4D response: body: string: '{"value":[]}' @@ -305,41 +305,41 @@ interactions: content-encoding: gzip content-length: '133' content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:56 GMT + date: Tue, 21 Jul 2020 08:13:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000; includeSubDomains vary: Accept-Encoding x-content-type-options: nosniff - x-ms-original-request-ids: d23b735f-2642-4dad-9524-a2b042b5332a + x-ms-original-request-ids: 1ec36214-2005-4d58-94a1-3acd9ad7981d status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=1VHRbqMwEPwXVPWpBAwhCZHQqb2jtL1Cr0Aw%2BM3YphBsQNjJEar%2B%2B9H7ilbaWY1Gqx3N7rvWsUk9N10rtf275t8m6SHR9lqt1CD3hiFwh9%2BYYJ1a4fk0shXphSFPpSRjM6im76ThWpXr0F2l22Sz1dfAWusuIFt9RypzS2hZWWtgDGN/bigbpRE2ZOxlX6nVb3bJ8Ikr4/zZ5Y8r1Q8euMZDo5%2BXyWW5Z5nA1c2lwPWVbBfHvmWdR4NspvfusQx4VUKqFj6inFtFnsmF18TmpwK4JsojM7cUZzmqKZzMaCY2Sv0pstCuzDksFg0KPqIF7IFv2JvnaTfaTz9K49vnr38HZHEzFPSCYfw/K4ZOVwV0oL%2BeOiJ4i%2B3iMw/0v8NTEzaeG8LusGT0JhXuCSVTGwO0QX7hhJwXWRe1ie8I5FPIRBy8pE8I3qMZ%2BfULEo/zq5iO5aH4W2TEoTC8wDT7EweRDXmclAF6fD1mdQgGlYK4C03wkKV3%2BJCarvbx8Q8%3D + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=1VLNbqMwGHwXVPVUAnZIEyJFq7LrJLtNiGocHLgZY1pifrzYkJSq777pYR%2Bi0qc5jEYzmtH3YTXianZlI7W1/LDQU0SOkbW03oxReuk4NWvYq6hFYyZs7Dsx4W3t6D7TvCuVKdtGOz4s/Fm%2BKOwpf5zbHoCe7QM%2Btxe8cOc8zwroAUd17VDmotPOvuRdq9vCTJ7Fe8z6yjjDF%2Bofd6ZVK3DPVGkPN%2BXNfAVd4Nvu7cD9nZa3xFaKZhWJbii5CJgW%2BQOp/T6NrjKTqiUVPrDNeptMK4aneCSSz7KqOh3ojAmpHhM3H/Z0fTrWJs0o1rR6kxlQiJJQxvAVUjqj2VqhZKpktA3GdAMOe9cdX06qwuvUUKrwHqi/pAnOEfo9JjJ/Dil6J%2BewFNK7ppJfwzg1uAklboJLQv4wvkEj%2BxVXWb3wrQfrJwoJftp9z5HZvr5cCAVSfI14DhhF3iWJOcjqdJtuA4mR6hMININopMRd3QpT9B1eKjkpwOuj4RB3O5oOvAR9BnFVbGZDuvnPG2h9fv4D - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-changlong/providers/Microsoft.KeyVault/vaults/test-changlong","name":"test-changlong","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"6bedd520-9535-468f-9ab3-79d17bea1b92","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"enableSoftDelete":true,"softDeleteRetentionInDays":90,"enableRbacAuthorization":false,"vaultUri":"https://test-changlong.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz","name":"myValtZikfikxyzz","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxyzz.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/git2gridtesting/providers/Microsoft.KeyVault/vaults/git2gridkv","name":"git2gridkv","type":"Microsoft.KeyVault/vaults","location":"centralus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"7b5d64cb-f02f-4b19-ab5d-60dca4916c54","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"vaultUri":"https://git2gridkv.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azure-sdk-for-node/providers/Microsoft.KeyVault/vaults/node-sdk-kv","name":"node-sdk-kv","type":"Microsoft.KeyVault/vaults","location":"westus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"52bcebf6-9dc1-4a9a-8b3b-6962bb22a6aa","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"vaultUri":"https://node-sdk-kv.vault.azure.net/","provisioningState":"Succeeded"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?%24top=1&api-version=2019-09-01&%24skiptoken=1VJhb6MwDP0vqNqnUZLQrqUSOpU7WqRbqdbSBvIthNAyEkAktF2n%2fffLdNN%2bw51kW8%2bW9Sz7%2bd1q%2bE0%2fV02trMW7FS73yWFvLayz1p1aOI6kDT1xyRs9pveh52PWSkcNuWJ91emqbZTjodKbFvPSdtnTzJ5ANLE9yGb2nJVgxoq8RBPodH17qQreK2dTsb5VbanHv%2fnbkQ5CO5fPqH6MdNv58IF2lX0xnYbcRwB6NjAGH0aqNhPbmjd%2bsT7ei5X3mq9FmeNCG9yTVKAsPSqDz8wVQwY9QNIYpEgLnpJzgW8gvjOXJOEtRmSepwJnpoal6IlxHoknfvJ969H6GcbJbvn8799hz%2ftLxXhAFS8eE%2bkNZH%2bjG3m9JhjWHK%2fSw2tAcTi5ZkcGc0kiEgX1LuyGDEFFUXjHCfhcGIf%2fkep%2fVY7i8usLvvPcDQSTK0CxNzCUTbe%2f2JUkO1FGwZS6RG6Tk7tZHwB5MSp%2ffPwB"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz","name":"myValtZikfikxyzz","type":"Microsoft.KeyVault/vaults","location":"eastus","tags":{},"properties":{"sku":{"family":"A","name":"standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"00000000-0000-0000-0000-000000000000","permissions":{"keys":["encrypt","decrypt","wrapKey","unwrapKey","sign","verify","get","list","create","update","import","delete","backup","restore","recover","purge"],"secrets":["get","list","set","delete","backup","restore","recover","purge"],"certificates":["get","list","delete","create","import","update","managecontacts","getissuers","listissuers","setissuers","deleteissuers","manageissuers","recover","purge"]}}],"enabledForDeployment":true,"enabledForDiskEncryption":true,"enabledForTemplateDeployment":true,"enableSoftDelete":true,"vaultUri":"https://myvaltzikfikxyzz.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/git2gridtesting/providers/Microsoft.KeyVault/vaults/git2gridkv","name":"git2gridkv","type":"Microsoft.KeyVault/vaults","location":"centralus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"7b5d64cb-f02f-4b19-ab5d-60dca4916c54","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"vaultUri":"https://git2gridkv.vault.azure.net/","provisioningState":"Succeeded"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azure-sdk-for-node/providers/Microsoft.KeyVault/vaults/node-sdk-kv","name":"node-sdk-kv","type":"Microsoft.KeyVault/vaults","location":"westus","tags":{},"properties":{"sku":{"family":"A","name":"Standard"},"tenantId":"00000000-0000-0000-0000-000000000000","accessPolicies":[{"tenantId":"00000000-0000-0000-0000-000000000000","objectId":"52bcebf6-9dc1-4a9a-8b3b-6962bb22a6aa","permissions":{"keys":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore"],"secrets":["Get","List","Set","Delete","Recover","Backup","Restore"],"certificates":["Get","List","Update","Create","Import","Delete","Recover","Backup","Restore","ManageContacts","ManageIssuers","GetIssuers","ListIssuers","SetIssuers","DeleteIssuers"]}}],"enabledForDeployment":false,"enabledForDiskEncryption":false,"enabledForTemplateDeployment":false,"vaultUri":"https://node-sdk-kv.vault.azure.net/","provisioningState":"Succeeded"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?%24top=1&api-version=2019-09-01&%24skiptoken=1ZLNbptAFIXfBUVZBeMZ7DhYsiq7xrhuQIqNmTC7YWYoGM%2bPGLCBKO9esuqmD9BKV3dzjs7Vd3Q%2fLMm75rWUlbGWH5a%2fPsXnk7W0iqbRZuk4gkjyiwsumwkZ2ppPqBKOaTND61I3pZLG8WDuzdlLbrv0eWHPAJzZHqAL%2b4Xm0wVlWQ5nwNG1upWM18YJS1oro%2fJm8pP3CWmvjXP72ubbQ6P0CjwSXdq30TmGr%2bAUePZ0HPD4YKrxoqq4XDF5KKI4KkhAexw0Jgo8mSJP4uEw0EABgo5VKtgVvzOFt6nLUPGcyuSKt3Rge22YiNzQXQ98m4j08ubiS6TpfuNmwWFOYORmQwTyAMwTsTNspzWBWBO3mHOpVtaT9d2P4uP69d%2fv6cTrW0n5hhjOnmLhtfjUkVDc7zECFUe79%2fNlQ5A%2fu6cJBZnAe7zfVEdftykEhkB%2fQPH0Cxj5%2f8NX%2fI0Wo%2f26G2kSFoT9WR7CBGiYwqpj6Ed%2fFp04DglEFfuju2%2b99fn5Gw%3d%3d"}' headers: cache-control: no-cache content-encoding: gzip - content-length: '1793' + content-length: '1702' content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:56 GMT + date: Tue, 21 Jul 2020 08:13:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000; includeSubDomains vary: Accept-Encoding x-content-type-options: nosniff - x-ms-original-request-ids: b9c365e5-e09a-4cda-8f62-9912b4a90b9c + x-ms-original-request-ids: 811de193-caae-44a8-bff0-ead6e1beae85 status: code: 200 message: OK @@ -350,9 +350,9 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=1VJhb6MwDP0vqNqnUZLQrqUSOpU7WqRbqdbSBvIthNAyEkAktF2n/ffLdNN%2Bw51kW8%2BW9Sz7%2Bd1q%2BE0/V02trMW7FS73yWFvLayz1p1aOI6kDT1xyRs9pveh52PWSkcNuWJ91emqbZTjodKbFvPSdtnTzJ5ANLE9yGb2nJVgxoq8RBPodH17qQreK2dTsb5VbanHv/nbkQ5CO5fPqH6MdNv58IF2lX0xnYbcRwB6NjAGH0aqNhPbmjd%2BsT7ei5X3mq9FmeNCG9yTVKAsPSqDz8wVQwY9QNIYpEgLnpJzgW8gvjOXJOEtRmSepwJnpoal6IlxHoknfvJ969H6GcbJbvn8799hz/tLxXhAFS8eE%2BkNZH%2BjG3m9JhjWHK/Sw2tAcTi5ZkcGc0kiEgX1LuyGDEFFUXjHCfhcGIf/kep/VY7i8usLvvPcDQSTK0CxNzCUTbe/2JUkO1FGwZS6RG6Tk7tZHwB5MSp/fPwB + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=1ZLNbptAFIXfBUVZBeMZ7DhYsiq7xrhuQIqNmTC7YWYoGM%2BPGLCBKO9esuqmD9BKV3dzjs7Vd3Q/LMm75rWUlbGWH5a/PsXnk7W0iqbRZuk4gkjyiwsumwkZ2ppPqBKOaTND61I3pZLG8WDuzdlLbrv0eWHPAJzZHqAL%2B4Xm0wVlWQ5nwNG1upWM18YJS1oro/Jm8pP3CWmvjXP72ubbQ6P0CjwSXdq30TmGr%2BAUePZ0HPD4YKrxoqq4XDF5KKI4KkhAexw0Jgo8mSJP4uEw0EABgo5VKtgVvzOFt6nLUPGcyuSKt3Rge22YiNzQXQ98m4j08ubiS6TpfuNmwWFOYORmQwTyAMwTsTNspzWBWBO3mHOpVtaT9d2P4uP69d/v6cTrW0n5hhjOnmLhtfjUkVDc7zECFUe79/NlQ5A/u6cJBZnAe7zfVEdftykEhkB/QPH0Cxj5/8NX/I0Wo/26G2kSFoT9WR7CBGiYwqpj6Ed/Fp04DglEFfuju2%2B99fn5Gw%3D%3D response: body: string: '{"value":[]}' @@ -361,24 +361,24 @@ interactions: content-encoding: gzip content-length: '133' content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:57 GMT + date: Tue, 21 Jul 2020 08:13:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000; includeSubDomains vary: Accept-Encoding x-content-type-options: nosniff - x-ms-original-request-ids: 1be66f9b-a058-41ce-a574-8406643c4ea9 + x-ms-original-request-ids: 954cb531-1a99-4441-bf6d-21bcb09f45d2 status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=1VJhb6MwDP0vqNqnUZLQrqUSOpU7WqRbqdbSBvIthNAyEkAktF2n/ffLdNN%2Bw51kW8%2BW9Sz7%2Bd1q%2BE0/V02trMW7FS73yWFvLayz1p1aOI6kDT1xyRs9pveh52PWSkcNuWJ91emqbZTjodKbFvPSdtnTzJ5ANLE9yGb2nJVgxoq8RBPodH17qQreK2dTsb5VbanHv/nbkQ5CO5fPqH6MdNv58IF2lX0xnYbcRwB6NjAGH0aqNhPbmjd%2BsT7ei5X3mq9FmeNCG9yTVKAsPSqDz8wVQwY9QNIYpEgLnpJzgW8gvjOXJOEtRmSepwJnpoal6IlxHoknfvJ969H6GcbJbvn8799hz/tLxXhAFS8eE%2BkNZH%2BjG3m9JhjWHK/Sw2tAcTi5ZkcGc0kiEgX1LuyGDEFFUXjHCfhcGIf/kep/VY7i8usLvvPcDQSTK0CxNzCUTbe/2JUkO1FGwZS6RG6Tk7tZHwB5MSp/fPwB + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/vaults?$top=1&api-version=2019-09-01&$skiptoken=1ZLNbptAFIXfBUVZBeMZ7DhYsiq7xrhuQIqNmTC7YWYoGM%2BPGLCBKO9esuqmD9BKV3dzjs7Vd3Q/LMm75rWUlbGWH5a/PsXnk7W0iqbRZuk4gkjyiwsumwkZ2ppPqBKOaTND61I3pZLG8WDuzdlLbrv0eWHPAJzZHqAL%2B4Xm0wVlWQ5nwNG1upWM18YJS1oro/Jm8pP3CWmvjXP72ubbQ6P0CjwSXdq30TmGr%2BAUePZ0HPD4YKrxoqq4XDF5KKI4KkhAexw0Jgo8mSJP4uEw0EABgo5VKtgVvzOFt6nLUPGcyuSKt3Rge22YiNzQXQ98m4j08ubiS6TpfuNmwWFOYORmQwTyAMwTsTNspzWBWBO3mHOpVtaT9d2P4uP69d/v6cTrW0n5hhjOnmLhtfjUkVDc7zECFUe79/NlQ5A/u6cJBZnAe7zfVEdftykEhkB/QPH0Cxj5/8NX/I0Wo/26G2kSFoT9WR7CBGiYwqpj6Ed/Fp04DglEFfuju2%2B99fn5Gw%3D%3D - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/providers/Microsoft.KeyVault/operations?api-version=2019-09-01 response: @@ -450,12 +450,12 @@ interactions: Key Vault","description":"View the properties of a soft deleted key vault"},"isDataAction":false},{"name":"Microsoft.KeyVault/locations/deletedVaults/purge/action","display":{"provider":"Microsoft Key Vault","resource":"Soft Deleted Key Vault","operation":"Purge Soft Deleted Key Vault","description":"Purge a soft deleted key vault"},"isDataAction":false},{"name":"Microsoft.KeyVault/vaults/certificatecas/delete","display":{"provider":"Microsoft - Key Vault","resource":"Certificate Issuser","operation":"Delete Certificate - Issuser","description":"Delete Certificate Issuser"},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/certificatecas/read","display":{"provider":"Microsoft - Key Vault","resource":"Certificate Issuser","operation":"Read Certificate - Issuser","description":"Read Certificate Issuser"},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/certificatecas/write","display":{"provider":"Microsoft - Key Vault","resource":"Certificate Issuser","operation":"Write Certificate - Issuser","description":"Write Certificate Issuser"},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/certificatecontacts/write","display":{"provider":"Microsoft + Key Vault","resource":"Certificate Issuer","operation":"Delete Certificate + Issuer","description":"Delete Certificate Issuer"},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/certificatecas/read","display":{"provider":"Microsoft + Key Vault","resource":"Certificate Issuer","operation":"Read Certificate Issuer","description":"Read + Certificate Issuer"},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/certificatecas/write","display":{"provider":"Microsoft + Key Vault","resource":"Certificate Issuer","operation":"Write Certificate + Issuer","description":"Write Certificate Issuer"},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/certificatecontacts/write","display":{"provider":"Microsoft Key Vault","resource":"Certificate Contact","operation":"Manage Certificate Contact","description":"Manage Certificate Contact"},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/certificates/delete","display":{"provider":"Microsoft Key Vault","resource":"Certificate","operation":"Delete Certificate","description":"Delete @@ -544,7 +544,37 @@ interactions: Key Vault","resource":"Secret","operation":"Get Secret","description":"Get the value of a secret."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/secrets/setSecret/action","display":{"provider":"Microsoft Key Vault","resource":"Secret","operation":"Create Secret","description":"Create - new secret."},"isDataAction":true},{"name":"Microsoft.KeyVault/hsmPools/read","display":{"provider":"Microsoft + new secret."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/read","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Read Managed + Storage Account","description":"Read definition of managed storage accounts + and SAS."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/set/action","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Set Managed Storage + Account","description":"Create or update the definition of a managed storage + account."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/delete","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Delete Managed + Storage Account","description":"Delete the definition of a managed storage + account."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/backup/action","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Backup Managed + Storage Account","description":"Create a backup of the definition of a managed + storage account and its SAS (Shared Access Signature)."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/purge/action","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Purge Managed + Storage Account or SAS","description":"Purge the soft-deleted definition of + a managed storage account or SAS (Shared Access Signature)."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/regeneratekey/action","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Regenerate Key + of Managed Storage Account","description":"Regenerate the access key of a + managed storage account."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/recover/action","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Recover Managed + Storage Account or SAS","description":"Recover the soft-deleted definition + of a managed storage account or SAS (Shared Access Signature)."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/restore/action","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Restore Managed + Storage Account","description":"Restores the definition of a managed storage + account and its SAS (Shared Access Signature)."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/sas/set/action","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Set SAS Definition + for Managed Storage Account","description":"Create or update the SAS (Shared + Access Signature) definition for a managed storage account."},"isDataAction":true},{"name":"Microsoft.KeyVault/vaults/storageaccounts/sas/delete","display":{"provider":"Microsoft + Key Vault","resource":"Managed Storage Account","operation":"Delete SAS Definition + for Managed Storage Account","description":"Delete the SAS (Shared Access + Signature) definition for a managed storage account."},"isDataAction":true},{"name":"Microsoft.KeyVault/hsmPools/read","display":{"provider":"Microsoft Key Vault","resource":"HSM pool","operation":"View HSM pool","description":"View the properties of an HSM pool"},"isDataAction":false},{"name":"Microsoft.KeyVault/hsmPools/write","display":{"provider":"Microsoft Key Vault","resource":"HSM pool","operation":"Create or Update HSM pool","description":"Create @@ -592,7 +622,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:57 GMT + date: Tue, 21 Jul 2020 08:13:55 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -601,7 +631,7 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 200 @@ -617,7 +647,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 response: @@ -627,7 +657,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:58 GMT + date: Tue, 21 Jul 2020 08:13:56 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -636,13 +666,13 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 - x-ms-ratelimit-remaining-subscription-writes: '1197' + x-ms-keyvault-service-version: 1.1.0.283 + x-ms-ratelimit-remaining-subscription-writes: '1195' x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/vra53ahg2dkl4ogaogg2spj5iddbgeewhd67uhzbued73tzlvcw3p3x5fb47f3ippwlbykcwo3u/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 - request: body: '{"name": "sample-vault", "type": "Microsoft.KeyVault/vaults"}' headers: @@ -653,7 +683,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/checkNameAvailability?api-version=2019-09-01 response: @@ -664,7 +694,7 @@ interactions: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:21:58 GMT + date: Tue, 21 Jul 2020 08:13:57 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -673,7 +703,7 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 200 @@ -683,7 +713,7 @@ interactions: body: null headers: User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 response: @@ -692,37 +722,37 @@ interactions: headers: cache-control: no-cache content-length: '0' - date: Tue, 02 Jun 2020 05:22:01 GMT + date: Tue, 21 Jul 2020 08:14:02 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000; includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 - x-ms-ratelimit-remaining-subscription-deletes: '14999' + x-ms-keyvault-service-version: 1.1.0.283 + x-ms-ratelimit-remaining-subscription-deletes: '14998' x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/resourceGroups/vra53ahg2dkl4ogaogg2spj5iddbgeewhd67uhzbued73tzlvcw3p3x5fb47f3ippwlbykcwo3u/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz?api-version=2019-09-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxyzz?api-version=2019-09-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxyzz","name":"myValtZikfikxyzz","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz","location":"eastus","tags":{},"deletionDate":"2020-06-02T05:21:59Z","scheduledPurgeDate":"2020-08-31T05:21:59Z"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxyzz","name":"myValtZikfikxyzz","type":"Microsoft.KeyVault/deletedVaults","properties":{"vaultId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/myValtZikfikxyzz","location":"eastus","tags":{},"deletionDate":"2020-07-21T08:13:58Z","scheduledPurgeDate":"2020-10-19T08:13:58Z"}}' headers: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:22:02 GMT + date: Tue, 21 Jul 2020 08:14:03 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -731,7 +761,7 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 200 @@ -741,7 +771,7 @@ interactions: body: null headers: User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/deletedVaults/myValtZikfikxyzz/purge?api-version=2019-09-01 response: @@ -750,16 +780,16 @@ interactions: headers: cache-control: no-cache content-length: '0' - date: Tue, 02 Jun 2020 05:22:02 GMT + date: Tue, 21 Jul 2020 08:14:03 GMT expires: '-1' - location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzI2NjcyMTIzNDgxMTM5Mnw3N0FDREY4RUI0QUI0N0E2QTBBQ0RBOUI2NTNCMjYzRA?api-version=2019-09-01 + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000; includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 - x-ms-ratelimit-remaining-subscription-writes: '1198' + x-ms-keyvault-service-version: 1.1.0.283 + x-ms-ratelimit-remaining-subscription-writes: '1199' x-powered-by: ASP.NET status: code: 202 @@ -769,46 +799,270 @@ interactions: body: null headers: User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' + headers: + cache-control: no-cache + content-length: '64' + content-type: application/json; charset=utf-8 + date: Tue, 21 Jul 2020 08:14:10 GMT + expires: '-1' + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000; includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-service-version: 1.1.0.283 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 +- request: + body: null + headers: + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' + headers: + cache-control: no-cache + content-length: '64' + content-type: application/json; charset=utf-8 + date: Tue, 21 Jul 2020 08:14:15 GMT + expires: '-1' + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000; includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-service-version: 1.1.0.283 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 +- request: + body: null + headers: + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' + headers: + cache-control: no-cache + content-length: '64' + content-type: application/json; charset=utf-8 + date: Tue, 21 Jul 2020 08:14:20 GMT + expires: '-1' + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000; includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-service-version: 1.1.0.283 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 +- request: + body: null + headers: + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' + headers: + cache-control: no-cache + content-length: '64' + content-type: application/json; charset=utf-8 + date: Tue, 21 Jul 2020 08:14:25 GMT + expires: '-1' + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000; includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-service-version: 1.1.0.283 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 +- request: + body: null + headers: + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' + headers: + cache-control: no-cache + content-length: '64' + content-type: application/json; charset=utf-8 + date: Tue, 21 Jul 2020 08:14:31 GMT + expires: '-1' + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000; includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-service-version: 1.1.0.283 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 +- request: + body: null + headers: + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' + headers: + cache-control: no-cache + content-length: '64' + content-type: application/json; charset=utf-8 + date: Tue, 21 Jul 2020 08:14:36 GMT + expires: '-1' + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000; includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-service-version: 1.1.0.283 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 +- request: + body: null + headers: + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' + headers: + cache-control: no-cache + content-length: '64' + content-type: application/json; charset=utf-8 + date: Tue, 21 Jul 2020 08:14:41 GMT + expires: '-1' + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000; includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-service-version: 1.1.0.283 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 +- request: + body: null + headers: + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + response: + body: + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' + headers: + cache-control: no-cache + content-length: '64' + content-type: application/json; charset=utf-8 + date: Tue, 21 Jul 2020 08:14:47 GMT + expires: '-1' + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 + pragma: no-cache + server: Microsoft-IIS/10.0 + strict-transport-security: max-age=31536000; includeSubDomains + x-aspnet-version: 4.0.30319 + x-content-type-options: nosniff + x-ms-keyvault-service-version: 1.1.0.283 + x-powered-by: ASP.NET + status: + code: 202 + message: Accepted + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 +- request: + body: null + headers: + User-Agent: + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzI2NjcyMTIzNDgxMTM5Mnw3N0FDREY4RUI0QUI0N0E2QTBBQ0RBOUI2NTNCMjYzRA?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 response: body: - string: '{"createdDateTime":"2020-06-02 05:22:02Z","status":"NotStarted"}' + string: '{"createdDateTime":"2020-07-21 08:14:04Z","status":"NotStarted"}' headers: cache-control: no-cache content-length: '64' content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:22:07 GMT + date: Tue, 21 Jul 2020 08:14:52 GMT expires: '-1' - location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzI2NjcyMTIzNDgxMTM5Mnw3N0FDREY4RUI0QUI0N0E2QTBBQ0RBOUI2NTNCMjYzRA?api-version=2019-09-01 + location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 pragma: no-cache server: Microsoft-IIS/10.0 strict-transport-security: max-age=31536000; includeSubDomains x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 202 message: Accepted - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzI2NjcyMTIzNDgxMTM5Mnw3N0FDREY4RUI0QUI0N0E2QTBBQ0RBOUI2NTNCMjYzRA?api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 - request: body: null headers: User-Agent: - - azsdk-python-azure-mgmt-keyvault/3.0.0b1 Python/3.6.9 (Linux-4.9.184-linuxkit-x86_64-with-Ubuntu-18.04-bionic) + - azsdk-python-azure-mgmt-keyvault/7.0.0b2 Python/3.8.1 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzI2NjcyMTIzNDgxMTM5Mnw3N0FDREY4RUI0QUI0N0E2QTBBQ0RBOUI2NTNCMjYzRA?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 response: body: - string: '{"createdDateTime":"2020-06-02 05:22:02Z","lastActionDateTime":"2020-06-02 - 05:22:09Z","status":"Succeeded"}' + string: '{"createdDateTime":"2020-07-21 08:14:04Z","lastActionDateTime":"2020-07-21 + 08:14:56Z","status":"Succeeded"}' headers: cache-control: no-cache content-encoding: gzip content-type: application/json; charset=utf-8 - date: Tue, 02 Jun 2020 05:22:12 GMT + date: Tue, 21 Jul 2020 08:14:57 GMT expires: '-1' pragma: no-cache server: Microsoft-IIS/10.0 @@ -817,10 +1071,10 @@ interactions: vary: Accept-Encoding x-aspnet-version: 4.0.30319 x-content-type-options: nosniff - x-ms-keyvault-service-version: 1.1.0.281 + x-ms-keyvault-service-version: 1.1.0.283 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzI2NjcyMTIzNDgxMTM5Mnw3N0FDREY4RUI0QUI0N0E2QTBBQ0RBOUI2NTNCMjYzRA?api-version=2019-09-01 + url: https://management.azure.com/subscriptions/92f95d8f-3c67-4124-91c7-8cf07cdbf241/providers/Microsoft.KeyVault/locations/eastus/operationResults/VVR8MDYzNzMwOTE2MDQ1NTI2NDk2MHw4NTExNzM2MzlFQkI0NzY2Qjc1RDA0MzdFNzgyQjRDMw?api-version=2019-09-01 version: 1 diff --git a/sdk/keyvault/azure-mgmt-keyvault/tests/test_cli_mgmt_keyvault.py b/sdk/keyvault/azure-mgmt-keyvault/tests/test_cli_mgmt_keyvault.py index 2436ecf38066..66a5b64eb516 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/tests/test_cli_mgmt_keyvault.py +++ b/sdk/keyvault/azure-mgmt-keyvault/tests/test_cli_mgmt_keyvault.py @@ -37,7 +37,7 @@ def test_keyvault(self, resource_group): SUBSCRIPTION_ID = self.settings.SUBSCRIPTION_ID TENANT_ID = "72f988bf-86f1-41af-91ab-2d7cd011db47" # self.settings.TENANT_ID RESOURCE_GROUP = resource_group.name - VAULT_NAME = "myValtZikfikxy" + VAULT_NAME = "myValtZikfikxz" OPERATION_KIND = "add" LOCATION = "eastus" PRIVATE_ENDPOINT_CONNECTION_NAME = "myPrivateEndpointConnection" diff --git a/sdk/kubernetesconfiguration/azure-mgmt-kubernetesconfiguration/README.md b/sdk/kubernetesconfiguration/azure-mgmt-kubernetesconfiguration/README.md index 8b2747eb3f51..74605e9bbd6f 100644 --- a/sdk/kubernetesconfiguration/azure-mgmt-kubernetesconfiguration/README.md +++ b/sdk/kubernetesconfiguration/azure-mgmt-kubernetesconfiguration/README.md @@ -2,14 +2,7 @@ This is the Microsoft Azure Kubernetes Configuration Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) - - -# Usage - -For code examples, see [Kubernetes Configuration Management](https://docs.microsoft.com/python/api/overview/azure/kubernetesconfiguration) -on docs.microsoft.com. - +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Provide Feedback diff --git a/sdk/kusto/azure-mgmt-kusto/README.md b/sdk/kusto/azure-mgmt-kusto/README.md index 1afeac8313cd..ebc700164229 100644 --- a/sdk/kusto/azure-mgmt-kusto/README.md +++ b/sdk/kusto/azure-mgmt-kusto/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Kusto Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/labservices/azure-mgmt-labservices/README.md b/sdk/labservices/azure-mgmt-labservices/README.md index 78bce623a671..81edeeb93d01 100644 --- a/sdk/labservices/azure-mgmt-labservices/README.md +++ b/sdk/labservices/azure-mgmt-labservices/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/loganalytics/azure-loganalytics/README.md b/sdk/loganalytics/azure-loganalytics/README.md index cc914ac56132..d231fe63faa4 100644 --- a/sdk/loganalytics/azure-loganalytics/README.md +++ b/sdk/loganalytics/azure-loganalytics/README.md @@ -5,7 +5,7 @@ This is the Microsoft Azure Log Analytics Client Library. This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Compatibility diff --git a/sdk/loganalytics/azure-mgmt-loganalytics/README.md b/sdk/loganalytics/azure-mgmt-loganalytics/README.md index 87dcf93e2334..cf7c59dc07e4 100644 --- a/sdk/loganalytics/azure-mgmt-loganalytics/README.md +++ b/sdk/loganalytics/azure-mgmt-loganalytics/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Log Analytics Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/logic/azure-mgmt-logic/README.md b/sdk/logic/azure-mgmt-logic/README.md index 842c40d3aca4..e0f8d37a057a 100644 --- a/sdk/logic/azure-mgmt-logic/README.md +++ b/sdk/logic/azure-mgmt-logic/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Compatibility diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/README.md b/sdk/machinelearning/azure-mgmt-machinelearningcompute/README.md index 65323d9b7449..5bf9222f55a9 100644 --- a/sdk/machinelearning/azure-mgmt-machinelearningcompute/README.md +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/README.md @@ -13,13 +13,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. - -## Usage - -For code examples, see [Machine Learning Compute -Management](https://docs.microsoft.com/python/api/overview/azure/machinelearning) -on docs.microsoft.com. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Provide Feedback diff --git a/sdk/machinelearning/azure-mgmt-machinelearningservices/README.md b/sdk/machinelearning/azure-mgmt-machinelearningservices/README.md index 2105451adb19..237e6e9f59d2 100644 --- a/sdk/machinelearning/azure-mgmt-machinelearningservices/README.md +++ b/sdk/machinelearning/azure-mgmt-machinelearningservices/README.md @@ -13,7 +13,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/maintenance/azure-mgmt-maintenance/README.md b/sdk/maintenance/azure-mgmt-maintenance/README.md index 0002e5b1b915..8f744b19260f 100644 --- a/sdk/maintenance/azure-mgmt-maintenance/README.md +++ b/sdk/maintenance/azure-mgmt-maintenance/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure MyService Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/managedservices/azure-mgmt-managedservices/README.md b/sdk/managedservices/azure-mgmt-managedservices/README.md index 0bae5e1feed8..862bd43154cb 100644 --- a/sdk/managedservices/azure-mgmt-managedservices/README.md +++ b/sdk/managedservices/azure-mgmt-managedservices/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/managementgroups/azure-mgmt-managementgroups/README.md b/sdk/managementgroups/azure-mgmt-managementgroups/README.md index 3ef1973edc14..143093ea5c18 100644 --- a/sdk/managementgroups/azure-mgmt-managementgroups/README.md +++ b/sdk/managementgroups/azure-mgmt-managementgroups/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/managementpartner/azure-mgmt-managementpartner/README.md b/sdk/managementpartner/azure-mgmt-managementpartner/README.md index 132fce2a344a..dac6032eb2ea 100644 --- a/sdk/managementpartner/azure-mgmt-managementpartner/README.md +++ b/sdk/managementpartner/azure-mgmt-managementpartner/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/maps/azure-mgmt-maps/README.md b/sdk/maps/azure-mgmt-maps/README.md index 53f2deb187b7..b52e8bb8c792 100644 --- a/sdk/maps/azure-mgmt-maps/README.md +++ b/sdk/maps/azure-mgmt-maps/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Maps Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/marketplaceordering/azure-mgmt-marketplaceordering/README.md b/sdk/marketplaceordering/azure-mgmt-marketplaceordering/README.md index 0542c9651015..c05777b0c59c 100644 --- a/sdk/marketplaceordering/azure-mgmt-marketplaceordering/README.md +++ b/sdk/marketplaceordering/azure-mgmt-marketplaceordering/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/media/azure-mgmt-media/README.md b/sdk/media/azure-mgmt-media/README.md index 77865adc7b86..022f05279799 100644 --- a/sdk/media/azure-mgmt-media/README.md +++ b/sdk/media/azure-mgmt-media/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Media Services Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/mixedreality/azure-mgmt-mixedreality/README.md b/sdk/mixedreality/azure-mgmt-mixedreality/README.md index f5d69ea236ef..ebf4a6ff9157 100644 --- a/sdk/mixedreality/azure-mgmt-mixedreality/README.md +++ b/sdk/mixedreality/azure-mgmt-mixedreality/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/monitor/azure-mgmt-monitor/README.md b/sdk/monitor/azure-mgmt-monitor/README.md index 343d88de5c06..7f09eead6656 100644 --- a/sdk/monitor/azure-mgmt-monitor/README.md +++ b/sdk/monitor/azure-mgmt-monitor/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Monitor Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/netapp/azure-mgmt-netapp/README.md b/sdk/netapp/azure-mgmt-netapp/README.md index 045ef6e689db..782365f3e672 100644 --- a/sdk/netapp/azure-mgmt-netapp/README.md +++ b/sdk/netapp/azure-mgmt-netapp/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure NetApp Files Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/network/azure-mgmt-dns/README.md b/sdk/network/azure-mgmt-dns/README.md index 8f137fb0a91f..03583b7cf94a 100644 --- a/sdk/network/azure-mgmt-dns/README.md +++ b/sdk/network/azure-mgmt-dns/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/network/azure-mgmt-frontdoor/README.md b/sdk/network/azure-mgmt-frontdoor/README.md index 7c0965c0258d..874fe43eb7da 100644 --- a/sdk/network/azure-mgmt-frontdoor/README.md +++ b/sdk/network/azure-mgmt-frontdoor/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/network/azure-mgmt-network/README.md b/sdk/network/azure-mgmt-network/README.md index e9eb0ebf0244..3c1405b06b47 100644 --- a/sdk/network/azure-mgmt-network/README.md +++ b/sdk/network/azure-mgmt-network/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Network Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/network/azure-mgmt-privatedns/README.md b/sdk/network/azure-mgmt-privatedns/README.md index 76ae2cf06368..662c206fdd21 100644 --- a/sdk/network/azure-mgmt-privatedns/README.md +++ b/sdk/network/azure-mgmt-privatedns/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/notificationhubs/azure-mgmt-notificationhubs/README.md b/sdk/notificationhubs/azure-mgmt-notificationhubs/README.md index 5d165bc52d1c..3e218baf7412 100644 --- a/sdk/notificationhubs/azure-mgmt-notificationhubs/README.md +++ b/sdk/notificationhubs/azure-mgmt-notificationhubs/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/operationsmanagement/azure-mgmt-operationsmanagement/README.md b/sdk/operationsmanagement/azure-mgmt-operationsmanagement/README.md index ff353a11d379..d8c777dc896d 100644 --- a/sdk/operationsmanagement/azure-mgmt-operationsmanagement/README.md +++ b/sdk/operationsmanagement/azure-mgmt-operationsmanagement/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/peering/azure-mgmt-peering/README.md b/sdk/peering/azure-mgmt-peering/README.md index 8ee648572b90..aafa2c4d3f84 100644 --- a/sdk/peering/azure-mgmt-peering/README.md +++ b/sdk/peering/azure-mgmt-peering/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Peering Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/README.md b/sdk/policyinsights/azure-mgmt-policyinsights/README.md index cb3bfe61b7b1..e349d24cc471 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/README.md +++ b/sdk/policyinsights/azure-mgmt-policyinsights/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Policy Insights Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/powerbidedicated/azure-mgmt-powerbidedicated/README.md b/sdk/powerbidedicated/azure-mgmt-powerbidedicated/README.md index a02f3016a924..4e1f98507355 100644 --- a/sdk/powerbidedicated/azure-mgmt-powerbidedicated/README.md +++ b/sdk/powerbidedicated/azure-mgmt-powerbidedicated/README.md @@ -2,14 +2,7 @@ This is the Microsoft Azure PowerBIDedicated Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) - - -# Usage - -For code examples, see [PowerBIDedicated Management](https://docs.microsoft.com/python/api/overview/azure/powerbidedicated) -on docs.microsoft.com. - +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Provide Feedback diff --git a/sdk/powerbiembedded/azure-mgmt-powerbiembedded/README.md b/sdk/powerbiembedded/azure-mgmt-powerbiembedded/README.md index 22564625884c..f8c2e41a14b9 100644 --- a/sdk/powerbiembedded/azure-mgmt-powerbiembedded/README.md +++ b/sdk/powerbiembedded/azure-mgmt-powerbiembedded/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Compatibility diff --git a/sdk/rdbms/azure-mgmt-rdbms/README.md b/sdk/rdbms/azure-mgmt-rdbms/README.md index 921fe693da2b..3c4c61c6d826 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/README.md +++ b/sdk/rdbms/azure-mgmt-rdbms/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure RDBMS Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservices/README.md b/sdk/recoveryservices/azure-mgmt-recoveryservices/README.md index ed1408220991..b29cf6917813 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservices/README.md +++ b/sdk/recoveryservices/azure-mgmt-recoveryservices/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Recovery Services Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/README.md b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/README.md index ffd2f2fb3663..59dbbf7b6a28 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/README.md +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Recovery Services Backup Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/redhatopenshift/azure-mgmt-redhatopenshift/README.md b/sdk/redhatopenshift/azure-mgmt-redhatopenshift/README.md index 20cb92eb5ca2..61b0d770ba57 100644 --- a/sdk/redhatopenshift/azure-mgmt-redhatopenshift/README.md +++ b/sdk/redhatopenshift/azure-mgmt-redhatopenshift/README.md @@ -2,14 +2,7 @@ This is the Microsoft Azure Red Hat Openshift Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) - - -# Usage - -For code examples, see [Red Hat Openshift Management](https://docs.microsoft.com/python/api/overview/azure/redhatopenshift) -on docs.microsoft.com. - +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Provide Feedback diff --git a/sdk/redis/azure-mgmt-redis/README.md b/sdk/redis/azure-mgmt-redis/README.md index 1fd5bb09dc89..52dcba083fe0 100644 --- a/sdk/redis/azure-mgmt-redis/README.md +++ b/sdk/redis/azure-mgmt-redis/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/relay/azure-mgmt-relay/README.md b/sdk/relay/azure-mgmt-relay/README.md index d4b199d7d236..f17218c7fab0 100644 --- a/sdk/relay/azure-mgmt-relay/README.md +++ b/sdk/relay/azure-mgmt-relay/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/reservations/azure-mgmt-reservations/README.md b/sdk/reservations/azure-mgmt-reservations/README.md index b23c59d11665..ff7b344f5864 100644 --- a/sdk/reservations/azure-mgmt-reservations/README.md +++ b/sdk/reservations/azure-mgmt-reservations/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/resources/azure-mgmt-msi/README.md b/sdk/resources/azure-mgmt-msi/README.md index 8caa4b5bc4d0..648fa28d70ca 100644 --- a/sdk/resources/azure-mgmt-msi/README.md +++ b/sdk/resources/azure-mgmt-msi/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/resources/azure-mgmt-resource/README.md b/sdk/resources/azure-mgmt-resource/README.md index eb217cef93ad..6092669e1d09 100644 --- a/sdk/resources/azure-mgmt-resource/README.md +++ b/sdk/resources/azure-mgmt-resource/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Resource Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/resources/azure-mgmt-resourcegraph/README.md b/sdk/resources/azure-mgmt-resourcegraph/README.md index 39ffe8a0f38f..edd9bd86c0e6 100644 --- a/sdk/resources/azure-mgmt-resourcegraph/README.md +++ b/sdk/resources/azure-mgmt-resourcegraph/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Resource Graph Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/scheduler/azure-mgmt-scheduler/README.md b/sdk/scheduler/azure-mgmt-scheduler/README.md index 9334f8b0a831..8afff3246f88 100644 --- a/sdk/scheduler/azure-mgmt-scheduler/README.md +++ b/sdk/scheduler/azure-mgmt-scheduler/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Compatibility diff --git a/sdk/search/azure-mgmt-search/README.md b/sdk/search/azure-mgmt-search/README.md index 02415f8b873c..503608414dae 100644 --- a/sdk/search/azure-mgmt-search/README.md +++ b/sdk/search/azure-mgmt-search/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/search/azure-search-documents/README.md b/sdk/search/azure-search-documents/README.md index 0a03ccef9f41..7188b1c77941 100644 --- a/sdk/search/azure-search-documents/README.md +++ b/sdk/search/azure-search-documents/README.md @@ -94,7 +94,7 @@ import os from azure.core.credentials import AzureKeyCredential from azure.search.documents import SearchClient -index_name = "nycjobs"; +index_name = "nycjobs" # Get the service endpoint and API key from the environment endpoint = os.environ["SEARCH_ENDPOINT"] key = os.environ["SEARCH_API_KEY"] @@ -293,12 +293,14 @@ key = os.environ["SEARCH_API_KEY"] DOCUMENT = { 'Category': 'Hotel', - 'HotelId': '1000', - 'Rating': 4.0, - 'Rooms': [], - 'HotelName': 'Azure Inn', + 'hotelId': '1000', + 'rating': 4.0, + 'rooms': [], + 'hotelName': 'Azure Inn', } +search_client = SearchClient(endpoint, index_name, AzureKeyCredential(key)) + result = client.upload_documents(documents=[DOCUMENT]) print("Upload of new document succeeded: {}".format(result[0].succeeded)) @@ -350,8 +352,10 @@ async with client: results = await client.search(search_text="hotel") async for result in results: print("{}: {})".format(result["hotelId"], result["hotelName"])) + ... +``` ## Troubleshooting @@ -432,7 +436,7 @@ additional questions or comments. [create_search_service_docs]: https://docs.microsoft.com/azure/search/search-create-service-portal [create_search_service_ps]: https://docs.microsoft.com/azure/search/search-manage-powershell#create-or-delete-a-service [create_search_service_cli]: https://docs.microsoft.com/cli/azure/search/service?view=azure-cli-latest#az-search-service-create -[search_contrib]: ../CONTRIBUTING.md +[search_contrib]: https://github.com/Azure/azure-sdk-for-python/blob/master/CONTRIBUTING.md [python_logging]: https://docs.python.org/3.5/library/logging.html [cla]: https://cla.microsoft.com diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/_internal/_models.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/_internal/_models.py index bfdbc1701aa8..7da916d21bdb 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/_internal/_models.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/_internal/_models.py @@ -119,7 +119,7 @@ class CustomAnalyzer(LexicalAnalyzer): _validation = { 'odata_type': {'required': True}, 'name': {'required': True}, - 'tokenizer': {'required': True}, + 'tokenizer_name': {'required': True}, } _attribute_map = { diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/_internal/_utils.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/_internal/_utils.py index fe3722a8e75d..9ad43085cd07 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/_internal/_utils.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/_internal/_utils.py @@ -78,6 +78,7 @@ def prep_if_none_match(etag, match_condition): def pack_custom_analyzer(custom_analyzer): # type: (CustomAnalyzer) -> _CustomAnalyzer return _CustomAnalyzer( + name=custom_analyzer.name, odata_type=custom_analyzer.odata_type, tokenizer=custom_analyzer.tokenizer_name, token_filters=custom_analyzer.token_filters, @@ -87,7 +88,8 @@ def pack_custom_analyzer(custom_analyzer): def unpack_custom_analyzer(custom_analyzer): # type: (_CustomAnalyzer) -> CustomAnalyzer - return _CustomAnalyzer( + return CustomAnalyzer( + name=custom_analyzer.name, odata_type=custom_analyzer.odata_type, tokenizer_name=custom_analyzer.tokenizer, token_filters=custom_analyzer.token_filters, diff --git a/sdk/search/azure-search-documents/samples/README.md b/sdk/search/azure-search-documents/samples/README.md index 51737e595968..47a5868e081d 100644 --- a/sdk/search/azure-search-documents/samples/README.md +++ b/sdk/search/azure-search-documents/samples/README.md @@ -20,27 +20,27 @@ Authenticate the client with a Azure Cognitive Search [API Key Credential](https Then for common search index operations: -* Get a document by key: [sample_get_document.py](sample_get_document.py) ([async version](async_samples/sample_get_document_async.py)) +* Get a document by key: [sample_get_document.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_get_document.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_get_document_async.py)) -* Perform a simple text query: [sample_simple_query.py](sample_simple_query.py) ([async version](async_samples/sample_simple_query_async.py)) +* Perform a simple text query: [sample_simple_query.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_simple_query.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_simple_query_async.py)) -* Perform a filtered query: [sample_filter_query.py](sample_filter_query.py) ([async version](async_samples/sample_filter_query_async.py)) +* Perform a filtered query: [sample_filter_query.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_filter_query.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_filter_query_async.py)) -* Perform a faceted query: [sample_facet_query.py](sample_facet_query.py) ([async version](async_samples/sample_facet_query_async.py)) +* Perform a faceted query: [sample_facet_query.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_facet_query.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_facet_query_async.py)) -* Get auto-completions: [sample_autocomplete.py](sample_autocomplete.py) ([async version](async_samples/sample_autocomplete_async.py)) +* Get auto-completions: [sample_autocomplete.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_autocomplete.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_autocomplete_async.py)) -* Get search suggestions: [sample_suggestions.py](sample_suggestions.py) ([async version](async_samples/sample_suggestions_async.py)) +* Get search suggestions: [sample_suggestions.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_suggestions.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_suggestions_async.py)) -* Perform basic document updates: [sample_crud_operations.py](sample_crud_operations.py) ([async version](async_samples/sample_crud_operations_async.py)) +* Perform basic document updates: [sample_crud_operations.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_crud_operations.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_crud_operations_async.py)) -* CRUD operations for index: [sample_index_crud_operations.py](sample_index_crud_operations.py) ([async version](async_samples/sample_index_crud_operations_async.py)) +* CRUD operations for index: [sample_index_crud_operations.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_index_crud_operations.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_index_crud_operations_async.py)) -* Analyze text: [sample_analyze_text.py](sample_analyze_text.py) ([async version](async_samples/sample_analyze_text_async.py)) +* Analyze text: [sample_analyze_text.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_analyze_text.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_analyze_text_async.py)) -* CRUD operations for indexers: [sample_indexers_operations.py](sample_indexers_operations.py) ([async version](async_samples/sample_indexer_operations_async.py)) +* CRUD operations for indexers: [sample_indexers_operations.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_indexers_operations.py) ([async version](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/async_samples/sample_indexers_operations_async.py)) -* General workflow of indexer, datasource and index: [sample_indexer_datasource_skillset.py](sample_indexer_datasource_skillset.py) ([async version](async_samples/sample_indexer_datasource_skillset.py)) +* General workflow of indexer, datasource and index: [sample_indexer_datasource_skillset.py](https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/search/azure-search-documents/samples/sample_indexer_datasource_skillset.py) ## Prerequisites * Python 2.7, or 3.5 or later is required to use this package (3.5 or later if using asyncio) diff --git a/sdk/search/azure-search-documents/samples/async_samples/sample_indexers_operations_async.py b/sdk/search/azure-search-documents/samples/async_samples/sample_indexers_operations_async.py index ad3c028fd4fd..2f26c0a00b41 100644 --- a/sdk/search/azure-search-documents/samples/async_samples/sample_indexers_operations_async.py +++ b/sdk/search/azure-search-documents/samples/async_samples/sample_indexers_operations_async.py @@ -40,13 +40,13 @@ async def create_indexer(): # create an index - index_name = "hotels" + index_name = "indexer-hotels" fields = [ SimpleField(name="hotelId", type=SearchFieldDataType.String, key=True), SimpleField(name="baseRate", type=SearchFieldDataType.Double) ] index = SearchIndex(name=index_name, fields=fields) - ind_client = SearchIndexerClient(service_endpoint, AzureKeyCredential(key)) + ind_client = SearchIndexClient(service_endpoint, AzureKeyCredential(key)) async with ind_client: await ind_client.create_index(index) @@ -59,8 +59,8 @@ async def create_indexer(): connection_string=connection_string, container=container ) - async with ind_client: - data_source = await ind_client.create_data_source_connection(data_source_connection) + async with indexers_client: + data_source = await indexers_client.create_data_source_connection(data_source_connection) # create an indexer indexer = SearchIndexer( diff --git a/sdk/search/azure-search-documents/samples/sample_indexer_datasource_skillset.py b/sdk/search/azure-search-documents/samples/sample_indexer_datasource_skillset.py index f0684da68d6b..9b3dac6cccd4 100644 --- a/sdk/search/azure-search-documents/samples/sample_indexer_datasource_skillset.py +++ b/sdk/search/azure-search-documents/samples/sample_indexer_datasource_skillset.py @@ -38,7 +38,7 @@ from azure.search.documents.indexes.models import ( SearchIndexerDataContainer, SearchIndex, SearchIndexer, SimpleField, SearchFieldDataType, EntityRecognitionSkill, InputFieldMappingEntry, OutputFieldMappingEntry, SearchIndexerSkillset, - CorsOptions, IndexingSchedule, SearchableField, IndexingParameters + CorsOptions, IndexingSchedule, SearchableField, IndexingParameters, SearchIndexerDataSourceConnection ) from azure.search.documents.indexes import SearchIndexerClient, SearchIndexClient @@ -75,12 +75,13 @@ def _create_datasource(): # "searchcontainer" ds_client = SearchIndexerClient(service_endpoint, AzureKeyCredential(key)) container = SearchIndexerDataContainer(name='searchcontainer') - data_source = ds_client.create_datasource( + data_source_connection = SearchIndexerDataSourceConnection( name="hotel-datasource", type="azureblob", connection_string=connection_string, container=container ) + data_source = ds_client.create_data_source_connection(data_source_connection) return data_source def _create_skillset(): diff --git a/sdk/security/azure-mgmt-security/README.md b/sdk/security/azure-mgmt-security/README.md index c1b36eada037..8e6b91bad68f 100644 --- a/sdk/security/azure-mgmt-security/README.md +++ b/sdk/security/azure-mgmt-security/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/serialconsole/azure-mgmt-serialconsole/README.md b/sdk/serialconsole/azure-mgmt-serialconsole/README.md index b54ba2ccc8d8..6647ce42f07b 100644 --- a/sdk/serialconsole/azure-mgmt-serialconsole/README.md +++ b/sdk/serialconsole/azure-mgmt-serialconsole/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/servermanager/azure-mgmt-servermanager/README.md b/sdk/servermanager/azure-mgmt-servermanager/README.md index 6b1ca850c3da..81760abf942d 100644 --- a/sdk/servermanager/azure-mgmt-servermanager/README.md +++ b/sdk/servermanager/azure-mgmt-servermanager/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Compatibility @@ -32,12 +32,6 @@ If you see azure==0.11.0 (or any version below 1.0), uninstall it first: pip uninstall azure ``` -## Usage - -For code examples, see [Server Manager -Management](https://docs.microsoft.com/python/api/overview/azure/server-manager) -on docs.microsoft.com. - ## Provide Feedback If you encounter any bugs or have suggestions, please file an issue in diff --git a/sdk/servicebus/azure-mgmt-servicebus/README.md b/sdk/servicebus/azure-mgmt-servicebus/README.md index cb7f69ec7293..71c1ce593c87 100644 --- a/sdk/servicebus/azure-mgmt-servicebus/README.md +++ b/sdk/servicebus/azure-mgmt-servicebus/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/servicebus/azure-servicebus/CHANGELOG.md b/sdk/servicebus/azure-servicebus/CHANGELOG.md index 13a9cb2a79e4..e5f3bf352362 100644 --- a/sdk/servicebus/azure-servicebus/CHANGELOG.md +++ b/sdk/servicebus/azure-servicebus/CHANGELOG.md @@ -2,6 +2,35 @@ ## 7.0.0b5 (Unreleased) +**New Features** + +* Added new properties to Message, PeekMessage and ReceivedMessage: `content_type`, `correlation_id`, `label`, +`message_id`, `reply_to`, `reply_to_session_id` and `to`. Please refer to the docstring for further information. +* Added new properties to PeekedMessaged and ReceivedMessage: `enqueued_sequence_number`, `dead_letter_error_description`, +`dead_letter_reason`, `dead_letter_source`, `delivery_count` and `expires_at_utc`. Please refer to the docstring for further information. +* Added support for sending received messages via `ServiceBusSender.send_messages`. + +**Breaking Changes** + +* Removed/Renamed several properties and instance variables on Message (the changes applied to the inherited Message type PeekMessage and ReceivedMessage). + - Renamed property `user_properties` to `properties` + - The original instance variable `properties` which represents the AMQP properties now becomes an internal instance variable `_amqp_properties`. + - Removed property `enqueue_sequence_number`. + - Removed property `annotations`. + - Removed instance variable `header`. + +* Removed several properties and instance variables on PeekMessage and ReceivedMessage. + - Removed proeprty `partition_id` on both type. + - Removed instance variable `received_timestamp_utc` on both type. + - Removed property `settled` on `PeekMessage`. + - Removed property `expired` on `ReceivedMessage`. + +* Add `on_lock_renew_failure` as a parameter to `AutoLockRenew.register`, taking a callback for when the lock is lost non-intentially (e.g. not via settling, shutdown, or autolockrenew duration completion) + +**Breaking Changes** + +* `AutoLockRenew.sleep_time` and `AutoLockRenew.renew_period` have been made internal as `_sleep_time` and `_renew_period` respectively, as it is not expected a user will have to interact with them. +* `AutoLockRenew.shutdown` is now `AutoLockRenew.close` to normalize with other equivelent behaviors. ## 7.0.0b4 (2020-07-06) @@ -12,8 +41,8 @@ **BugFixes** -* Fixed bug where sync AutoLockRenew does not shutdown itself timely. -* Fixed bug where async AutoLockRenew does not support context manager. +* Fixed bug where sync `AutoLockRenew` does not shutdown itself timely. +* Fixed bug where async `AutoLockRenew` does not support context manager. **Breaking Changes** @@ -141,7 +170,7 @@ Version 7.0.0b1 is a preview of our efforts to create a client library that is u * Introduces new AMQP-based API. * Original HTTP-based API still available under new namespace: azure.servicebus.control_client -* For full API changes, please see updated [reference documentation](https://docs.microsoft.com/python/api/overview/azure/servicebus/client?view=azure-python). +* For full API changes, please see updated [reference documentation](https://docs.microsoft.com/python/api/azure-servicebus/azure.servicebus?view=azure-python). Within the new namespace, the original HTTP-based API from version 0.21.1 remains unchanged (i.e. no additional features or bugfixes) so for those intending to only use HTTP operations - there is no additional benefit in updating at this time. diff --git a/sdk/servicebus/azure-servicebus/README.md b/sdk/servicebus/azure-servicebus/README.md index 21ba5350bf5a..4e61997e8ef8 100644 --- a/sdk/servicebus/azure-servicebus/README.md +++ b/sdk/servicebus/azure-servicebus/README.md @@ -381,7 +381,7 @@ connstr = os.environ['SERVICE_BUS_CONN_STR'] queue_name = os.environ['SERVICE_BUS_QUEUE_NAME'] session_id = os.environ['SERVICE_BUS_SESSION_ID'] -# Can also be called via "with AutoLockRenew() as renewer" to automate shutdown. +# Can also be called via "with AutoLockRenew() as renewer" to automate closing. renewer = AutoLockRenew() with ServiceBusClient.from_connection_string(connstr) as client: with client.get_queue_session_receiver(queue_name, session_id=session_id) as receiver: @@ -390,7 +390,7 @@ with ServiceBusClient.from_connection_string(connstr) as client: renewer.register(msg, timeout=60) # Do your application logic here msg.complete() -renewer.shutdown() +renewer.close() ``` If for any reason auto-renewal has been interrupted or failed, this can be observed via the `auto_renew_error` property on the object being renewed. diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/__init__.py b/sdk/servicebus/azure-servicebus/azure/servicebus/__init__.py index 10e5205fd439..826e54f3e087 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/__init__.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/__init__.py @@ -16,7 +16,7 @@ from ._base_handler import ServiceBusSharedKeyCredential from ._common.message import Message, BatchMessage, PeekMessage, ReceivedMessage from ._common.constants import ReceiveSettleMode, NEXT_AVAILABLE -from ._common.utils import AutoLockRenew +from ._common.auto_lock_renewer import AutoLockRenew TransportType = constants.TransportType diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_base_handler.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_base_handler.py index 7ff53c728df8..223180d1bf11 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_base_handler.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_base_handler.py @@ -156,7 +156,7 @@ def __init__( self._running = False self._handler = None # type: uamqp.AMQPClient self._auth_uri = None - self._properties = create_properties() + self._properties = create_properties(self._config.user_agent) def __enter__(self): self._open_with_retry() diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/auto_lock_renewer.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/auto_lock_renewer.py new file mode 100644 index 000000000000..cb9a939f6c01 --- /dev/null +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/auto_lock_renewer.py @@ -0,0 +1,136 @@ +# ------------------------------------------------------------------------ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# ------------------------------------------------------------------------- + +import datetime +import logging +import threading +import time +from concurrent.futures import ThreadPoolExecutor +from typing import TYPE_CHECKING + +from .._servicebus_session import ServiceBusSession +from ..exceptions import AutoLockRenewFailed, AutoLockRenewTimeout, ServiceBusError +from .utils import renewable_start_time, utc_now + +if TYPE_CHECKING: + from typing import Callable, Union, Optional, Awaitable + from .message import ReceivedMessage + LockRenewFailureCallback = Callable[[Union[ServiceBusSession, ReceivedMessage], + Optional[Exception]], None] + +_log = logging.getLogger(__name__) + +class AutoLockRenew(object): + """Auto renew locks for messages and sessions using a background thread pool. + + :param executor: A user-specified thread pool. This cannot be combined with + setting `max_workers`. + :type executor: ~concurrent.futures.ThreadPoolExecutor + :param max_workers: Specify the maximum workers in the thread pool. If not + specified the number used will be derived from the core count of the environment. + This cannot be combined with `executor`. + :type max_workers: int + + .. admonition:: Example: + + .. literalinclude:: ../samples/sync_samples/sample_code_servicebus.py + :start-after: [START auto_lock_renew_message_sync] + :end-before: [END auto_lock_renew_message_sync] + :language: python + :dedent: 4 + :caption: Automatically renew a message lock + + .. literalinclude:: ../samples/sync_samples/sample_code_servicebus.py + :start-after: [START auto_lock_renew_session_sync] + :end-before: [END auto_lock_renew_session_sync] + :language: python + :dedent: 4 + :caption: Automatically renew a session lock + + """ + + def __init__(self, executor=None, max_workers=None): + self._executor = executor or ThreadPoolExecutor(max_workers=max_workers) + self._shutdown = threading.Event() + self._sleep_time = 1 + self._renew_period = 10 + + def __enter__(self): + if self._shutdown.is_set(): + raise ServiceBusError("The AutoLockRenew has already been shutdown. Please create a new instance for" + " auto lock renewing.") + return self + + def __exit__(self, *args): + self.close() + + def _renewable(self, renewable): + # pylint: disable=protected-access + if self._shutdown.is_set(): + return False + if hasattr(renewable, '_settled') and renewable._settled: + return False + if not renewable._receiver._running: + return False + if renewable._lock_expired: + return False + return True + + def _auto_lock_renew(self, renewable, starttime, timeout, on_lock_renew_failure=None): + # pylint: disable=protected-access + _log.debug("Running lock auto-renew thread for %r seconds", timeout) + error = None + clean_shutdown = False # Only trigger the on_lock_renew_failure if halting was not expected (shutdown, etc) + try: + while self._renewable(renewable): + if (utc_now() - starttime) >= datetime.timedelta(seconds=timeout): + _log.debug("Reached auto lock renew timeout - letting lock expire.") + raise AutoLockRenewTimeout("Auto-renew period ({} seconds) elapsed.".format(timeout)) + if (renewable.locked_until_utc - utc_now()) <= datetime.timedelta(seconds=self._renew_period): + _log.debug("%r seconds or less until lock expires - auto renewing.", self._renew_period) + renewable.renew_lock() + time.sleep(self._sleep_time) + clean_shutdown = not renewable._lock_expired + except AutoLockRenewTimeout as e: + error = e + renewable.auto_renew_error = e + clean_shutdown = not renewable._lock_expired + except Exception as e: # pylint: disable=broad-except + _log.debug("Failed to auto-renew lock: %r. Closing thread.", e) + error = AutoLockRenewFailed( + "Failed to auto-renew lock", + inner_exception=e) + renewable.auto_renew_error = error + finally: + if on_lock_renew_failure and not clean_shutdown: + on_lock_renew_failure(renewable, error) + + def register(self, renewable, timeout=300, on_lock_renew_failure=None): + """Register a renewable entity for automatic lock renewal. + + :param renewable: A locked entity that needs to be renewed. + :type renewable: ~azure.servicebus.ReceivedMessage or + ~azure.servicebus.ServiceBusSession + :param float timeout: A time in seconds that the lock should be maintained for. + Default value is 300 (5 minutes). + :param Optional[LockRenewFailureCallback] on_lock_renew_failure: + A callback may be specified to be called when the lock is lost on the renewable that is being registered. + Default value is None (no callback). + """ + if self._shutdown.is_set(): + raise ServiceBusError("The AutoLockRenew has already been shutdown. Please create a new instance for" + " auto lock renewing.") + starttime = renewable_start_time(renewable) + self._executor.submit(self._auto_lock_renew, renewable, starttime, timeout, on_lock_renew_failure) + + def close(self, wait=True): + """Cease autorenewal by shutting down the thread pool to clean up any remaining lock renewal threads. + + :param wait: Whether to block until thread pool has shutdown. Default is `True`. + :type wait: bool + """ + self._shutdown.set() + self._executor.shutdown(wait=wait) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/client_mixins.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/client_mixins.py deleted file mode 100644 index 4056f10388c5..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/client_mixins.py +++ /dev/null @@ -1,346 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- -# pylint: skip-file -import datetime -import uuid -import requests -try: - from urlparse import urlparse # type: ignore - from urllib import unquote_plus # type: ignore -except ImportError: - from urllib.parse import urlparse - from urllib.parse import unquote_plus - -from uamqp import Source - -import azure.common -import azure.servicebus -from .constants import ( - NEXT_AVAILABLE, - SESSION_LOCKED_UNTIL, - DATETIMEOFFSET_EPOCH, - SESSION_FILTER) -from .utils import parse_conn_str, build_uri -from ..exceptions import ( - ServiceBusConnectionError, - ServiceBusResourceNotFound) -from .._control_client import ServiceBusService -from .._control_client.models import AzureServiceBusResourceNotFound, Queue, Subscription, Topic - - -class ServiceBusMixin(object): - - def _get_host(self): - return "sb://" + self.service_namespace + self.host_base - - def create_queue( - self, queue_name, - lock_duration=30, max_size_in_megabytes=None, - requires_duplicate_detection=False, - requires_session=False, - default_message_time_to_live=None, - dead_lettering_on_message_expiration=False, - duplicate_detection_history_time_window=None, - max_delivery_count=None, enable_batched_operations=None): - """Create a queue entity. - - :param queue_name: The name of the new queue. - :type queue_name: str - :param lock_duration: The lock durection in seconds for each message in the queue. - :type lock_duration: int - :param max_size_in_megabytes: The max size to allow the queue to grow to. - :type max_size_in_megabytes: int - :param requires_duplicate_detection: Whether the queue will require every message with - a specified time frame to have a unique ID. Non-unique messages will be discarded. - Default value is False. - :type requires_duplicate_detection: bool - :param requires_session: Whether the queue will be sessionful, and therefore require all - message to have a Session ID and be received by a sessionful receiver. - Default value is False. - :type requires_session: bool - :param default_message_time_to_live: The length of time a message will remain in the queue - before it is either discarded or moved to the dead letter queue. - :type default_message_time_to_live: ~datetime.timedelta - :param dead_lettering_on_message_expiration: Whether to move expired messages to the - dead letter queue. Default value is False. - :type dead_lettering_on_message_expiration: bool - :param duplicate_detection_history_time_window: The period within which all incoming messages - must have a unique message ID. - :type duplicate_detection_history_time_window: ~datetime.timedelta - :param max_delivery_count: The maximum number of times a message will attempt to be delivered - before it is moved to the dead letter queue. - :type max_delivery_count: int - :param enable_batched_operations: - :type: enable_batched_operations: bool - :raises: ~azure.servicebus.exceptions.ServiceBusConnectionError if the namespace is not found. - :raises: ~azure.common.AzureConflictHttpError if a queue of the same name already exists. - """ - queue_properties = Queue( - lock_duration="PT{}S".format(int(lock_duration)), - max_size_in_megabytes=max_size_in_megabytes, - requires_duplicate_detection=requires_duplicate_detection, - requires_session=requires_session, - default_message_time_to_live=default_message_time_to_live, - dead_lettering_on_message_expiration=dead_lettering_on_message_expiration, - duplicate_detection_history_time_window=duplicate_detection_history_time_window, - max_delivery_count=max_delivery_count, - enable_batched_operations=enable_batched_operations) - try: - return self.mgmt_client.create_queue(queue_name, queue=queue_properties, fail_on_exist=True) - except requests.exceptions.ConnectionError as e: - raise ServiceBusConnectionError("Namespace: {} not found".format(self.service_namespace), e) - - def delete_queue(self, queue_name, fail_not_exist=False): - """Delete a queue entity. - - :param queue_name: The name of the queue to delete. - :type queue_name: str - :param fail_not_exist: Whether to raise an exception if the named queue is not - found. If set to True, a ServiceBusResourceNotFound will be raised. - Default value is False. - :type fail_not_exist: bool - :raises: ~azure.servicebus.exceptions.ServiceBusConnectionError if the namesapce is not found. - :raises: ~azure.servicebus.exceptions.ServiceBusResourceNotFound if the queue is not found - and `fail_not_exist` is set to True. - """ - try: - return self.mgmt_client.delete_queue(queue_name, fail_not_exist=fail_not_exist) - except requests.exceptions.ConnectionError as e: - raise ServiceBusConnectionError("Namespace: {} not found".format(self.service_namespace), e) - except azure.common.AzureMissingResourceHttpError as e: - raise ServiceBusResourceNotFound("Specificed queue '{}' does not exist.".format(queue_name), e) - - def create_topic( - self, topic_name, - default_message_time_to_live=None, - max_size_in_megabytes=None, requires_duplicate_detection=None, - duplicate_detection_history_time_window=None, - enable_batched_operations=None): - """Create a topic entity. - - :param topic_name: The name of the new topic. - :type topic_name: str - :param max_size_in_megabytes: The max size to allow the topic to grow to. - :type max_size_in_megabytes: int - :param requires_duplicate_detection: Whether the topic will require every message with - a specified time frame to have a unique ID. Non-unique messages will be discarded. - Default value is False. - :type requires_duplicate_detection: bool - :param default_message_time_to_live: The length of time a message will remain in the topic - before it is either discarded or moved to the dead letter queue. - :type default_message_time_to_live: ~datetime.timedelta - :param duplicate_detection_history_time_window: The period within which all incoming messages - must have a unique message ID. - :type duplicate_detection_history_time_window: ~datetime.timedelta - :param enable_batched_operations: - :type: enable_batched_operations: bool - :raises: ~azure.servicebus.exceptions.ServiceBusConnectionError if the namespace is not found. - :raises: ~azure.common.AzureConflictHttpError if a topic of the same name already exists. - """ - topic_properties = Topic( - max_size_in_megabytes=max_size_in_megabytes, - requires_duplicate_detection=requires_duplicate_detection, - default_message_time_to_live=default_message_time_to_live, - duplicate_detection_history_time_window=duplicate_detection_history_time_window, - enable_batched_operations=enable_batched_operations) - try: - return self.mgmt_client.create_topic(topic_name, topic=topic_properties, fail_on_exist=True) - except requests.exceptions.ConnectionError as e: - raise ServiceBusConnectionError("Namespace: {} not found".format(self.service_namespace), e) - - def delete_topic(self, topic_name, fail_not_exist=False): - """Delete a topic entity. - - :param topic_name: The name of the topic to delete. - :type topic_name: str - :param fail_not_exist: Whether to raise an exception if the named topic is not - found. If set to True, a ServiceBusResourceNotFound will be raised. - Default value is False. - :type fail_not_exist: bool - :raises: ~azure.servicebus.exceptions.ServiceBusConnectionError if the namesapce is not found. - :raises: ~azure.servicebus.exceptions.ServiceBusResourceNotFound if the topic is not found - and `fail_not_exist` is set to True. - """ - try: - return self.mgmt_client.delete_topic(topic_name, fail_not_exist=fail_not_exist) - except requests.exceptions.ConnectionError as e: - raise ServiceBusConnectionError("Namespace: {} not found".format(self.service_namespace), e) - except azure.common.AzureMissingResourceHttpError as e: - raise ServiceBusResourceNotFound("Specificed queue does not exist.", e) - - def create_subscription( - self, topic_name, subscription_name, - lock_duration=30, requires_session=None, - default_message_time_to_live=None, - dead_lettering_on_message_expiration=None, - dead_lettering_on_filter_evaluation_exceptions=None, - enable_batched_operations=None, max_delivery_count=None): - """Create a subscription entity. - - :param topic_name: The name of the topic under which to create the subscription. - :param subscription_name: The name of the new subscription. - :type subscription_name: str - :param lock_duration: The lock durection in seconds for each message in the subscription. - :type lock_duration: int - :param requires_session: Whether the subscription will be sessionful, and therefore require all - message to have a Session ID and be received by a sessionful receiver. - Default value is False. - :type requires_session: bool - :param default_message_time_to_live: The length of time a message will remain in the subscription - before it is either discarded or moved to the dead letter queue. - :type default_message_time_to_live: ~datetime.timedelta - :param dead_lettering_on_message_expiration: Whether to move expired messages to the - dead letter queue. Default value is False. - :type dead_lettering_on_message_expiration: bool - :param dead_lettering_on_filter_evaluation_exceptions: Whether to move messages that error on - filtering into the dead letter queue. Default is False, and the messages will be discarded. - :type dead_lettering_on_filter_evaluation_exceptions: bool - :param max_delivery_count: The maximum number of times a message will attempt to be delivered - before it is moved to the dead letter queue. - :type max_delivery_count: int - :param enable_batched_operations: - :type: enable_batched_operations: bool - :raises: ~azure.servicebus.exceptions.ServiceBusConnectionError if the namespace is not found. - :raises: ~azure.common.AzureConflictHttpError if a queue of the same name already exists. - """ - sub_properties = Subscription( - lock_duration="PT{}S".format(int(lock_duration)), - requires_session=requires_session, - default_message_time_to_live=default_message_time_to_live, - dead_lettering_on_message_expiration=dead_lettering_on_message_expiration, - dead_lettering_on_filter_evaluation_exceptions=dead_lettering_on_filter_evaluation_exceptions, - max_delivery_count=max_delivery_count, - enable_batched_operations=enable_batched_operations) - try: - return self.mgmt_client.create_subscription( - topic_name, subscription_name, - subscription=sub_properties, fail_on_exist=True) - except requests.exceptions.ConnectionError as e: - raise ServiceBusConnectionError("Namespace: {} not found".format(self.service_namespace), e) - - def delete_subscription(self, topic_name, subscription_name, fail_not_exist=False): - """Delete a subscription entity. - - :param topic_name: The name of the topic where the subscription is. - :type topic_name: str - :param subscription_name: The name of the subscription to delete. - :type subscription_name: str - :param fail_not_exist: Whether to raise an exception if the named subscription or - topic is not found. If set to True, a ServiceBusResourceNotFound will be raised. - Default value is False. - :type fail_not_exist: bool - :raises: ~azure.servicebus.exceptions.ServiceBusConnectionError if the namesapce is not found. - :raises: ~azure.servicebus.exceptions.ServiceBusResourceNotFound if the entity is not found - and `fail_not_exist` is set to True. - """ - try: - return self.mgmt_client.delete_subscription( - topic_name, subscription_name, fail_not_exist=fail_not_exist) - except requests.exceptions.ConnectionError as e: - raise ServiceBusConnectionError("Namespace: {} not found".format(self.service_namespace), e) - except azure.common.AzureMissingResourceHttpError as e: - raise ServiceBusResourceNotFound("Specificed queue does not exist.", e) - - -class BaseClient(object): # pylint: disable=too-many-instance-attributes - - def __init__(self, address, name, shared_access_key_name=None, - shared_access_key_value=None, debug=False, **kwargs): - """Construct a new Client to interact with the named Service Bus entity. - - :param address: The full URI of the Service Bus namespace. This can optionally - include URL-encoded access name and key. - :type address: str - :param name: The name of the entity to which the Client will connect. - :type name: str - :param shared_access_key_name: The name of the shared access policy. This must be supplied - if not encoded into the address. - :type shared_access_key_name: str - :param shared_access_key_value: The shared access key. This must be supplied if not encoded - into the address. - :type shared_access_key_value: str - :param debug: Whether to output network trace logs to the logger. Default is `False`. - :type debug: bool - """ - self.container_id = "servicebus.pysdk-" + str(uuid.uuid4())[:8] - self.address = urlparse(address) - self.name = name - self.debug = debug - self.encoding = 'UTF-8' - self.connection = None - self.entity = kwargs.get('validated_entity') - self.properties = dict(self.entity) if self.entity else {} - self.requires_session = self.properties.get('requires_session', False) - - namespace, _, host_base = self.address.hostname.partition('.') - url_username = unquote_plus(self.address.username) if self.address.username else None - shared_access_key_name = shared_access_key_name or url_username - url_password = unquote_plus(self.address.password) if self.address.password else None - shared_access_key_value = shared_access_key_value or url_password - if not shared_access_key_name or not shared_access_key_value: - raise ValueError("Missing shared access key name and/or value.") - self.entity_uri = "amqps://{}{}".format(self.address.hostname, self.address.path) - self.auth_config = { - 'uri': "sb://{}{}".format(self.address.hostname, self.address.path), - 'key_name': shared_access_key_name, - 'shared_access_key': shared_access_key_value} - - self.mgmt_client = kwargs.get('mgmt_client') or ServiceBusService( - service_namespace=namespace, - shared_access_key_name=shared_access_key_name, - shared_access_key_value=shared_access_key_value, - host_base="." + host_base) - - @classmethod - def from_entity(cls, address, entity, **kwargs): - client = cls( - address + "/" + entity.name, - entity.name, - validated_entity=entity, - **kwargs) - return client - - @classmethod - def from_connection_string(cls, conn_str, name=None, **kwargs): - """Create a Client from a Service Bus connection string. - - :param conn_str: The connection string. - :type conn_str: str - :param name: The name of the entity, if the 'EntityName' property is - not included in the connection string. - """ - address, policy, key, entity = parse_conn_str(conn_str) - entity = name or entity - address = build_uri(address, entity) - name = address.split('/')[-1] - return cls(address, name, shared_access_key_name=policy, shared_access_key_value=key, **kwargs) - - def _get_entity(self): - raise NotImplementedError("Must be implemented by child class.") - - def get_properties(self): - """Perform an operation to update the properties of the entity. - - :returns: The properties of the entity as a dictionary. - :rtype: dict[str, Any] - :raises: ~azure.servicebus.exceptions.ServiceBusResourceNotFound if the entity does not exist. - :raises: ~azure.servicebus.exceptions.ServiceBusConnectionError if the endpoint cannot be reached. - :raises: ~azure.common.AzureHTTPError if the credentials are invalid. - """ - try: - self.entity = self._get_entity() - self.properties = dict(self.entity) - if hasattr(self.entity, 'requires_session'): - self.requires_session = self.entity.requires_session - return self.properties - except AzureServiceBusResourceNotFound: - raise ServiceBusResourceNotFound("Specificed queue does not exist.") - except azure.common.AzureHttpError: - self.entity = None - self.properties = {} - self.requires_session = False - except requests.exceptions.ConnectionError as e: - raise ServiceBusConnectionError("Namespace not found", e) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/constants.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/constants.py index 7b67fe37a32b..00182a290432 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/constants.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/constants.py @@ -3,10 +3,9 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # ------------------------------------------------------------------------- - from enum import Enum -from uamqp import constants +from uamqp import constants, types VENDOR = b"com.microsoft" DATETIMEOFFSET_EPOCH = 621355968000000000 @@ -97,6 +96,10 @@ _X_OPT_LOCKED_UNTIL = b'x-opt-locked-until' _X_OPT_LOCK_TOKEN = b'x-opt-lock-token' _X_OPT_SCHEDULED_ENQUEUE_TIME = b'x-opt-scheduled-enqueue-time' +_X_OPT_DEAD_LETTER_SOURCE = b'x-opt-deadletter-source' + +PROPERTIES_DEAD_LETTER_REASON = b'DeadLetterReason' +PROPERTIES_DEAD_LETTER_ERROR_DESCRIPTION = b'DeadLetterErrorDescription' DEAD_LETTER_QUEUE_SUFFIX = '/$DeadLetterQueue' @@ -112,4 +115,15 @@ class SessionFilter(Enum): NextAvailable = 0 +ANNOTATION_SYMBOL_PARTITION_KEY = types.AMQPSymbol(_X_OPT_PARTITION_KEY) +ANNOTATION_SYMBOL_VIA_PARTITION_KEY = types.AMQPSymbol(_X_OPT_VIA_PARTITION_KEY) +ANNOTATION_SYMBOL_SCHEDULED_ENQUEUE_TIME = types.AMQPSymbol(_X_OPT_SCHEDULED_ENQUEUE_TIME) + +ANNOTATION_SYMBOL_KEY_MAP = { + _X_OPT_PARTITION_KEY: ANNOTATION_SYMBOL_PARTITION_KEY, + _X_OPT_VIA_PARTITION_KEY: ANNOTATION_SYMBOL_VIA_PARTITION_KEY, + _X_OPT_SCHEDULED_ENQUEUE_TIME: ANNOTATION_SYMBOL_SCHEDULED_ENQUEUE_TIME +} + + NEXT_AVAILABLE = SessionFilter.NextAvailable diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/message.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/message.py index 69bd3bb7b5e2..3ac801f1a606 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/message.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/message.py @@ -1,17 +1,17 @@ -# ------------------------------------------------------------------------ +# ------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for # license information. # ------------------------------------------------------------------------- +# pylint: disable=too-many-lines import datetime import uuid import functools import logging -from typing import Optional, List, Union, Iterable, TYPE_CHECKING, Callable, Dict, Any +from typing import Optional, List, Union, Iterable, TYPE_CHECKING, Callable import uamqp.message -from uamqp import types from .constants import ( _BATCH_MESSAGE_OVERHEAD_COST, @@ -23,12 +23,12 @@ _X_OPT_ENQUEUED_TIME, _X_OPT_SEQUENCE_NUMBER, _X_OPT_ENQUEUE_SEQUENCE_NUMBER, - _X_OPT_PARTITION_ID, _X_OPT_PARTITION_KEY, _X_OPT_VIA_PARTITION_KEY, _X_OPT_LOCKED_UNTIL, _X_OPT_LOCK_TOKEN, _X_OPT_SCHEDULED_ENQUEUE_TIME, + _X_OPT_DEAD_LETTER_SOURCE, MGMT_RESPONSE_MESSAGE_EXPIRATION, MGMT_REQUEST_DEAD_LETTER_REASON, MGMT_REQUEST_DEAD_LETTER_DESCRIPTION, @@ -39,7 +39,13 @@ MESSAGE_ABANDON, MESSAGE_DEFER, MESSAGE_RENEW_LOCK, - DEADLETTERNAME + DEADLETTERNAME, + PROPERTIES_DEAD_LETTER_REASON, + PROPERTIES_DEAD_LETTER_ERROR_DESCRIPTION, + ANNOTATION_SYMBOL_PARTITION_KEY, + ANNOTATION_SYMBOL_VIA_PARTITION_KEY, + ANNOTATION_SYMBOL_SCHEDULED_ENQUEUE_TIME, + ANNOTATION_SYMBOL_KEY_MAP ) from ..exceptions import ( MessageAlreadySettled, @@ -47,7 +53,7 @@ SessionLockExpired, MessageSettleFailed, MessageContentTooLarge) -from .utils import utc_from_timestamp, utc_now +from .utils import utc_from_timestamp, utc_now, copy_messages_to_sendable_if_needed if TYPE_CHECKING: from .._servicebus_receiver import ServiceBusReceiver from .._servicebus_session_receiver import ServiceBusSessionReceiver @@ -58,17 +64,24 @@ class Message(object): # pylint: disable=too-many-public-methods,too-many-instance-attributes """A Service Bus Message. - :ivar properties: Properties of the internal AMQP message object. - :vartype properties: ~uamqp.message.MessageProperties - :ivar header: Header of the internal AMQP message object. - :vartype header: ~uamqp.message.MessageHeader - :ivar message: Internal AMQP message object. - :vartype message: ~uamqp.message.Message - :param body: The data to send in a single message. :type body: str or bytes + + :keyword dict properties: The user defined properties on the message. + :keyword str session_id: The session identifier of the message for a sessionful entity. + :keyword str message_id: The id to identify the message. + :keyword datetime.datetime scheduled_enqueue_time_utc: The utc scheduled enqueue time to the message. + :keyword datetime.timedelta time_to_live: The life duration of a message. + :keyword str content_type: The content type descriptor. + :keyword str correlation_id: The correlation identifier. + :keyword str label: The application specific label. + :keyword str partition_key: The partition key for sending a message to a partitioned entity. + :keyword str via_partition_key: The partition key for sending a message into an entity via a partitioned + transfer queue. + :keyword str to: The `to` address used for auto_forward chaining scenarios. + :keyword str reply_to: The address of an entity to send replies to. + :keyword str reply_to_session_id: The session identifier augmenting the `reply_to` address. :keyword str encoding: The encoding for string data. Default is UTF-8. - :keyword str session_id: An optional session ID for the message to be sent. .. admonition:: Example: @@ -82,170 +95,190 @@ class Message(object): # pylint: disable=too-many-public-methods,too-many-insta """ def __init__(self, body, **kwargs): - subject = kwargs.pop('subject', None) # Although we might normally thread through **kwargs this causes # problems as MessageProperties won't absorb spurious args. self._encoding = kwargs.pop("encoding", 'UTF-8') - self.properties = uamqp.message.MessageProperties(encoding=self._encoding, subject=subject) - self.header = uamqp.message.MessageHeader() - self._annotations = {} - self._app_properties = {} + self._amqp_properties = uamqp.message.MessageProperties(encoding=self._encoding) + self._amqp_header = uamqp.message.MessageHeader() - self.session_id = kwargs.get("session_id", None) if 'message' in kwargs: self.message = kwargs['message'] - self._annotations = self.message.annotations - self._app_properties = self.message.application_properties - self.properties = self.message.properties - self.header = self.message.header + self._amqp_properties = self.message.properties + self._amqp_header = self.message.header else: self._build_message(body) + self.properties = kwargs.pop("properties", None) + self.session_id = kwargs.pop("session_id", None) + self.message_id = kwargs.get("message_id", None) + self.content_type = kwargs.pop("content_type", None) + self.correlation_id = kwargs.pop("correlation_id", None) + self.to = kwargs.pop("to", None) + self.reply_to = kwargs.pop("reply_to", None) + self.reply_to_session_id = kwargs.pop("reply_to_session_id", None) + self.label = kwargs.pop("label", None) + self.scheduled_enqueue_time_utc = kwargs.pop("scheduled_enqueue_time_utc", None) + self.time_to_live = kwargs.pop("time_to_live", None) + self.partition_key = kwargs.pop("partition_key", None) + self.via_partition_key = kwargs.pop("via_partition_key", None) def __str__(self): return str(self.message) def _build_message(self, body): if isinstance(body, list) and body: # TODO: This only works for a list of bytes/strings - self.message = uamqp.Message(body[0], properties=self.properties, header=self.header) + self.message = uamqp.Message(body[0], properties=self._amqp_properties, header=self._amqp_header) for more in body[1:]: self.message._body.append(more) # pylint: disable=protected-access elif body is None: raise ValueError("Message body cannot be None.") else: - self.message = uamqp.Message(body, properties=self.properties, header=self.header) + self.message = uamqp.Message(body, properties=self._amqp_properties, header=self._amqp_header) + + def _set_message_annotations(self, key, value): + if not self.message.annotations: + self.message.annotations = {} + + if isinstance(self, ReceivedMessage): + try: + del self.message.annotations[key] + except KeyError: + pass + + if value is None: + try: + del self.message.annotations[ANNOTATION_SYMBOL_KEY_MAP[key]] + except KeyError: + pass + else: + self.message.annotations[ANNOTATION_SYMBOL_KEY_MAP[key]] = value @property def session_id(self): # type: () -> str - """The session id of the message + """The session identifier of the message for a sessionful entity. + + For sessionful entities, this application-defined value specifies the session affiliation of the message. + Messages with the same session identifier are subject to summary locking and enable exact in-order + processing and demultiplexing. For non-sessionful entities, this value is ignored. + + See Message Sessions in `https://docs.microsoft.com/azure/service-bus-messaging/message-sessions`. :rtype: str """ try: - return self.properties.group_id.decode('UTF-8') + return self._amqp_properties.group_id.decode('UTF-8') except (AttributeError, UnicodeDecodeError): - return self.properties.group_id + return self._amqp_properties.group_id @session_id.setter def session_id(self, value): - """Set the session id on the message. - - :param value: The session id for the message. - :type value: str - """ - self.properties.group_id = value + # type: (str) -> None + self._amqp_properties.group_id = value @property - def annotations(self): + def properties(self): # type: () -> dict - """The annotations of the message. - - :rtype: dict - """ - return self.message.annotations - - @annotations.setter - def annotations(self, value): - """Set the annotations on the message. - - :param value: The annotations for the Message. - :type value: dict - """ - self.message.annotations = value - - @property - def user_properties(self): - # type: () -> dict - """User defined properties on the message. + """The user defined properties on the message. :rtype: dict """ return self.message.application_properties - @user_properties.setter - def user_properties(self, value): - """User defined properties on the message. - - :param value: The application properties for the Message. - :type value: dict - """ + @properties.setter + def properties(self, value): + # type: (dict) -> None self.message.application_properties = value - @property - def enqueue_sequence_number(self): - # type: () -> Optional[int] - """ - - :rtype: int - """ - if self.message.annotations: - return self.message.annotations.get(_X_OPT_ENQUEUE_SEQUENCE_NUMBER) - return None - - @enqueue_sequence_number.setter - def enqueue_sequence_number(self, value): - if not self.message.annotations: - self.message.annotations = {} - self.message.annotations[types.AMQPSymbol(_X_OPT_ENQUEUE_SEQUENCE_NUMBER)] = value - @property def partition_key(self): # type: () -> Optional[str] - """ + """ The partition key for sending a message to a partitioned entity. + + Setting this value enables assigning related messages to the same internal partition, so that submission + sequence order is correctly recorded. + The partition is chosen by a hash function over this value and cannot be chosen directly. + + See Partitioned queues and topics in + `https://docs.microsoft.com/azure/service-bus-messaging/service-bus-partitioning`. :rtype: str """ - if self.message.annotations: - return self.message.annotations.get(_X_OPT_PARTITION_KEY) - return None + p_key = None + try: + p_key = self.message.annotations.get(_X_OPT_PARTITION_KEY) or \ + self.message.annotations.get(ANNOTATION_SYMBOL_PARTITION_KEY) + return p_key.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return p_key @partition_key.setter def partition_key(self, value): - if not self.message.annotations: - self.message.annotations = {} - self.message.annotations[types.AMQPSymbol(_X_OPT_PARTITION_KEY)] = value + # type: (str) -> None + self._set_message_annotations(_X_OPT_PARTITION_KEY, value) @property def via_partition_key(self): # type: () -> Optional[str] - """ + """ The partition key for sending a message into an entity via a partitioned transfer queue. + + If a message is sent via a transfer queue in the scope of a transaction, this value selects the transfer + queue partition: This is functionally equivalent to `partition_key` and ensures that messages are kept + together and in order as they are transferred. + + See Transfers and Send Via in + `https://docs.microsoft.com/azure/service-bus-messaging/service-bus-transactions#transfers-and-send-via`. :rtype: str """ - if self.message.annotations: - return self.message.annotations.get(_X_OPT_VIA_PARTITION_KEY) - return None + via_p_key = None + try: + via_p_key = self.message.annotations.get(_X_OPT_VIA_PARTITION_KEY) or \ + self.message.annotations.get(ANNOTATION_SYMBOL_VIA_PARTITION_KEY) + return via_p_key.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return via_p_key @via_partition_key.setter def via_partition_key(self, value): - if not self.message.annotations: - self.message.annotations = {} - self.message.annotations[types.AMQPSymbol(_X_OPT_VIA_PARTITION_KEY)] = value + # type: (str) -> None + self._set_message_annotations(_X_OPT_VIA_PARTITION_KEY, value) @property def time_to_live(self): # type: () -> Optional[datetime.timedelta] - """ + """The life duration of a message. + + This value is the relative duration after which the message expires, starting from the instant the message + has been accepted and stored by the broker, as captured in `enqueued_time_utc`. + When not set explicitly, the assumed value is the DefaultTimeToLive for the respective queue or topic. + A message-level time-to-live value cannot be longer than the entity's time-to-live setting and it is silently + adjusted if it does. + + See Expiration in `https://docs.microsoft.com/azure/service-bus-messaging/message-expiration` :rtype: ~datetime.timedelta """ - if self.header and self.header.time_to_live: - return datetime.timedelta(milliseconds=self.header.time_to_live) + if self._amqp_header and self._amqp_header.time_to_live: + return datetime.timedelta(milliseconds=self._amqp_header.time_to_live) return None @time_to_live.setter def time_to_live(self, value): - if not self.header: - self.header = uamqp.message.MessageHeader() - if isinstance(value, datetime.timedelta): - self.header.time_to_live = value.seconds * 1000 + # type: (datetime.timedelta) -> None + if not self._amqp_header: + self._amqp_header = uamqp.message.MessageHeader() + if value is None: + self._amqp_header.time_to_live = value + elif isinstance(value, datetime.timedelta): + self._amqp_header.time_to_live = value.seconds * 1000 else: - self.header.time_to_live = int(value) * 1000 + self._amqp_header.time_to_live = int(value) * 1000 @property def scheduled_enqueue_time_utc(self): # type: () -> Optional[datetime.datetime] - """Get or set the utc scheduled enqueue time to the message. + """The utc scheduled enqueue time to the message. + This property can be used for scheduling when sending a message through `ServiceBusSender.send` method. If cancelling scheduled messages is required, you should use the `ServiceBusSender.schedule` method, which returns sequence numbers that can be used for future cancellation. @@ -254,20 +287,22 @@ def scheduled_enqueue_time_utc(self): :rtype: ~datetime.datetime """ if self.message.annotations: - timestamp = self.message.annotations.get(_X_OPT_SCHEDULED_ENQUEUE_TIME) + timestamp = self.message.annotations.get(_X_OPT_SCHEDULED_ENQUEUE_TIME) or \ + self.message.annotations.get(ANNOTATION_SYMBOL_SCHEDULED_ENQUEUE_TIME) if timestamp: - in_seconds = timestamp/1000.0 - return utc_from_timestamp(in_seconds) + try: + in_seconds = timestamp/1000.0 + return utc_from_timestamp(in_seconds) + except TypeError: + return timestamp return None @scheduled_enqueue_time_utc.setter def scheduled_enqueue_time_utc(self, value): # type: (datetime.datetime) -> None - if not self.properties.message_id: - self.properties.message_id = str(uuid.uuid4()) - if not self.message.annotations: - self.message.annotations = {} - self.message.annotations[types.AMQPSymbol(_X_OPT_SCHEDULED_ENQUEUE_TIME)] = value + if not self._amqp_properties.message_id: + self._amqp_properties.message_id = str(uuid.uuid4()) + self._set_message_annotations(_X_OPT_SCHEDULED_ENQUEUE_TIME, value) @property def body(self): @@ -278,6 +313,165 @@ def body(self): """ return self.message.get_data() + @property + def content_type(self): + # type: () -> str + """The content type descriptor. + + Optionally describes the payload of the message, with a descriptor following the format of RFC2045, Section 5, + for example "application/json". + + :rtype: str + """ + try: + return self._amqp_properties.content_type.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return self._amqp_properties.content_type + + @content_type.setter + def content_type(self, val): + # type: (str) -> None + self._amqp_properties.content_type = val + + @property + def correlation_id(self): + # type: () -> str + # pylint: disable=line-too-long + """The correlation identifier. + + Allows an application to specify a context for the message for the purposes of correlation, for example + reflecting the MessageId of a message that is being replied to. + + See Message Routing and Correlation in + `https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads?#message-routing-and-correlation`. + + :rtype: str + """ + try: + return self._amqp_properties.correlation_id.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return self._amqp_properties.correlation_id + + @correlation_id.setter + def correlation_id(self, val): + # type: (str) -> None + self._amqp_properties.correlation_id = val + + @property + def label(self): + # type: () -> str + """The application specific label. + + This property enables the application to indicate the purpose of the message to the receiver in a standardized + fashion, similar to an email subject line. + + :rtype: str + """ + try: + return self._amqp_properties.subject.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return self._amqp_properties.subject + + @label.setter + def label(self, val): + # type: (str) -> None + self._amqp_properties.subject = val + + @property + def message_id(self): + # type: () -> str + """The id to identify the message. + + The message identifier is an application-defined value that uniquely identifies the message and its payload. + The identifier is a free-form string and can reflect a GUID or an identifier derived from the + application context. If enabled, the duplicate detection (see + `https://docs.microsoft.com/azure/service-bus-messaging/duplicate-detection`) + feature identifies and removes second and further submissions of messages with the same message id. + + :rtype: str + """ + try: + return self._amqp_properties.message_id.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return self._amqp_properties.message_id + + @message_id.setter + def message_id(self, val): + # type: (str) -> None + self._amqp_properties.message_id = val + + @property + def reply_to(self): + # type: () -> str + # pylint: disable=line-too-long + """The address of an entity to send replies to. + + This optional and application-defined value is a standard way to express a reply path to the receiver of + the message. When a sender expects a reply, it sets the value to the absolute or relative path of the queue + or topic it expects the reply to be sent to. + + See Message Routing and Correlation in + `https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads?#message-routing-and-correlation`. + + :rtype: str + """ + try: + return self._amqp_properties.reply_to.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return self._amqp_properties.reply_to + + @reply_to.setter + def reply_to(self, val): + # type: (str) -> None + self._amqp_properties.reply_to = val + + @property + def reply_to_session_id(self): + # type: () -> str + # pylint: disable=line-too-long + """The session identifier augmenting the `reply_to` address. + + This value augments the `reply_to` information and specifies which session id should be set for the reply + when sent to the reply entity. + + See Message Routing and Correlation in + `https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads?#message-routing-and-correlation`. + + :rtype: str + """ + try: + return self._amqp_properties.reply_to_group_id.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return self._amqp_properties.reply_to_group_id + + @reply_to_session_id.setter + def reply_to_session_id(self, val): + # type: (str) -> None + self._amqp_properties.reply_to_group_id = val + + @property + def to(self): + # type: () -> str + """The `to` address. + + This property is reserved for future use in routing scenarios and presently ignored by the broker itself. + Applications can use this value in rule-driven auto-forward chaining scenarios to indicate the intended + logical destination of the message. + + See https://docs.microsoft.com/azure/service-bus-messaging/service-bus-auto-forwarding for more details. + + :rtype: str + """ + try: + return self._amqp_properties.to.decode('UTF-8') + except (AttributeError, UnicodeDecodeError): + return self._amqp_properties.to + + @to.setter + def to(self, val): + # type: (str) -> None + self._amqp_properties.to = val + class BatchMessage(object): """A batch of messages. @@ -346,6 +540,7 @@ def add(self, message): :rtype: None :raises: :class: ~azure.servicebus.exceptions.MessageContentTooLarge, when exceeding the size limit. """ + message = copy_messages_to_sendable_if_needed(message) message_size = message.message.get_message_encoded_size() # For a BatchMessage, if the encoded_message_size of event_data is < 256, then the overhead cost to encode that @@ -376,42 +571,118 @@ class PeekMessage(Message): A peeked message cannot be completed, abandoned, dead-lettered or deferred. It has no lock token or expiry. - :ivar received_timestamp_utc: The utc timestamp of when the message is received. - :vartype received_timestamp_utc: datetime.datetime - """ def __init__(self, message): super(PeekMessage, self).__init__(None, message=message) - self.received_timestamp_utc = utc_now() + + def _to_outgoing_message(self): + # type: () -> Message + amqp_message = self.message + amqp_body = amqp_message._body # pylint: disable=protected-access + + if isinstance(amqp_body, uamqp.message.DataBody): + body = b''.join(amqp_body.data) + else: + # amqp_body is type of uamqp.message.ValueBody + body = amqp_body.data + + return Message( + body=body, + content_type=self.content_type, + correlation_id=self.correlation_id, + label=self.label, + message_id=self.message_id, + partition_key=self.partition_key, + properties=self.properties, + reply_to=self.reply_to, + reply_to_session_id=self.reply_to_session_id, + session_id=self.session_id, + scheduled_enqueue_time_utc=self.scheduled_enqueue_time_utc, + time_to_live=self.time_to_live, + to=self.to, + via_partition_key=self.via_partition_key + ) + @property - def settled(self): - # type: () -> bool - """Whether the message has been settled. + def dead_letter_error_description(self): + # type: () -> Optional[str] + """ + Dead letter error description, when the message is received from a deadletter subqueue of an entity. - This will aways be `True` for a message received using ReceiveAndDelete mode, - otherwise it will be `False` until the message is completed or otherwise settled. + :rtype: str + """ + if self.message.application_properties: + try: + return self.message.application_properties.get(PROPERTIES_DEAD_LETTER_ERROR_DESCRIPTION).decode('UTF-8') + except AttributeError: + pass + return None - :rtype: bool + @property + def dead_letter_reason(self): + # type: () -> Optional[str] + """ + Dead letter reason, when the message is received from a deadletter subqueue of an entity. + + :rtype: str """ - return self.message.settled + if self.message.application_properties: + try: + return self.message.application_properties.get(PROPERTIES_DEAD_LETTER_REASON).decode('UTF-8') + except AttributeError: + pass + return None @property - def partition_id(self): + def dead_letter_source(self): # type: () -> Optional[str] """ + The name of the queue or subscription that this message was enqueued on, before it was deadlettered. + This property is only set in messages that have been dead-lettered and subsequently auto-forwarded + from the dead-letter queue to another entity. Indicates the entity in which the message was dead-lettered. + + :rtype: str + """ + if self.message.annotations: + try: + return self.message.annotations.get(_X_OPT_DEAD_LETTER_SOURCE).decode('UTF-8') + except AttributeError: + pass + return None + + @property + def delivery_count(self): + # type: () -> Optional[int] + """ + Number of deliveries that have been attempted for this message. The count is incremented + when a message lock expires or the message is explicitly abandoned by the receiver. + + :rtype: int + """ + if self._amqp_header: + return self._amqp_header.delivery_count + return None + + @property + def enqueued_sequence_number(self): + # type: () -> Optional[int] + """ + For messages that have been auto-forwarded, this property reflects the sequence number that had + first been assigned to the message at its original point of submission. :rtype: int """ if self.message.annotations: - return self.message.annotations.get(_X_OPT_PARTITION_ID) + return self.message.annotations.get(_X_OPT_ENQUEUE_SEQUENCE_NUMBER) return None @property def enqueued_time_utc(self): # type: () -> Optional[datetime.datetime] """ + The UTC datetime at which the message has been accepted and stored in the entity. :rtype: ~datetime.datetime """ @@ -422,10 +693,28 @@ def enqueued_time_utc(self): return utc_from_timestamp(in_seconds) return None + @property + def expires_at_utc(self): + # type: () -> Optional[datetime.datetime] + """ + The UTC datetime at which the message is marked for removal and no longer available for retrieval + from the entity due to expiration. Expiry is controlled by the `Message.time_to_live` property. + This property is computed from `Message.enqueued_time_utc` + `Message.time_to_live`. + + :rtype: ~datetime.datetime + """ + if self.enqueued_time_utc and self.time_to_live: + return self.enqueued_time_utc + self.time_to_live + return None + @property def sequence_number(self): # type: () -> Optional[int] """ + The unique number assigned to a message by Service Bus. The sequence number is a unique 64-bit integer + assigned to a message as it is accepted and stored by the broker and functions as its true identifier. + For partitioned entities, the topmost 16 bits reflect the partition identifier. + Sequence numbers monotonically increase. They roll over to 0 when the 48-64 bit range is exhausted. :rtype: int """ @@ -434,7 +723,7 @@ def sequence_number(self): return None -class ReceivedMessage(PeekMessage): +class ReceivedMessageBase(PeekMessage): """ A Service Bus Message received from service side. @@ -452,91 +741,27 @@ class ReceivedMessage(PeekMessage): """ def __init__(self, message, mode=ReceiveSettleMode.PeekLock, **kwargs): - super(ReceivedMessage, self).__init__(message=message) + super(ReceivedMessageBase, self).__init__(message=message) self._settled = (mode == ReceiveSettleMode.ReceiveAndDelete) + self._received_timestamp_utc = utc_now() self._is_deferred_message = kwargs.get("is_deferred_message", False) self.auto_renew_error = None self._receiver = None # type: ignore self._expiry = None - @property - def settled(self): - # type: () -> bool - """Whether the message has been settled. - - This will aways be `True` for a message received using ReceiveAndDelete mode, - otherwise it will be `False` until the message is completed or otherwise settled. - - :rtype: bool - """ - return self._settled - - @property - def expired(self): - # type: () -> bool - """ - - :rtype: bool - """ - try: - if self._receiver.session: # pylint: disable=protected-access - raise TypeError("Session messages do not expire. Please use the Session expiry instead.") - except AttributeError: # Is not a session receiver - pass - if self.locked_until_utc and self.locked_until_utc <= utc_now(): - return True - return False - - @property - def locked_until_utc(self): - # type: () -> Optional[datetime.datetime] - """ - - :rtype: datetime.datetime - """ - try: - if self.settled or self._receiver.session: # pylint: disable=protected-access - return None - except AttributeError: # not settled, and isn't session receiver. - pass - if self._expiry: - return self._expiry - if self.message.annotations and _X_OPT_LOCKED_UNTIL in self.message.annotations: - expiry_in_seconds = self.message.annotations[_X_OPT_LOCKED_UNTIL]/1000 - self._expiry = utc_from_timestamp(expiry_in_seconds) - return self._expiry - - @property - def lock_token(self): - # type: () -> Optional[Union[uuid.UUID, str]] - """ - - :rtype: ~uuid.UUID or str - """ - if self.settled: - return None - - if self.message.delivery_tag: - return uuid.UUID(bytes_le=self.message.delivery_tag) - - delivery_annotations = self.message.delivery_annotations - if delivery_annotations: - return delivery_annotations.get(_X_OPT_LOCK_TOKEN) - return None - def _check_live(self, action): # pylint: disable=no-member if not self._receiver or not self._receiver._running: # pylint: disable=protected-access raise MessageSettleFailed(action, "Orphan message had no open connection.") - if self.settled: + if self._settled: raise MessageAlreadySettled(action) try: - if self.expired: + if self._lock_expired: raise MessageLockExpired(inner_exception=self.auto_renew_error) except TypeError: pass try: - if self._receiver.session.expired: + if self._receiver.session._lock_expired: # pylint: disable=protected-access raise SessionLockExpired(inner_exception=self._receiver.session.auto_renew_error) except AttributeError: pass @@ -594,6 +819,77 @@ def _settle_via_receiver_link(self, settle_operation, dead_letter_reason=None, d return functools.partial(self.message.modify, True, True) raise ValueError("Unsupported settle operation type: {}".format(settle_operation)) + @property + def _lock_expired(self): + # type: () -> bool + """ + Whether the lock on the message has expired. + + :rtype: bool + """ + try: + if self._receiver.session: # pylint: disable=protected-access + raise TypeError("Session messages do not expire. Please use the Session expiry instead.") + except AttributeError: # Is not a session receiver + pass + if self.locked_until_utc and self.locked_until_utc <= utc_now(): + return True + return False + + @property + def lock_token(self): + # type: () -> Optional[Union[uuid.UUID, str]] + """ + The lock token for the current message serving as a reference to the lock that + is being held by the broker in PeekLock mode. + + :rtype: ~uuid.UUID or str + """ + if self._settled: + return None + + if self.message.delivery_tag: + return uuid.UUID(bytes_le=self.message.delivery_tag) + + delivery_annotations = self.message.delivery_annotations + if delivery_annotations: + return delivery_annotations.get(_X_OPT_LOCK_TOKEN) + return None + + @property + def locked_until_utc(self): + # type: () -> Optional[datetime.datetime] + """ + The UTC datetime until which the message will be locked in the queue/subscription. + When the lock expires, delivery count of hte message is incremented and the message + is again available for retrieval. + + :rtype: datetime.datetime + """ + try: + if self._settled or self._receiver.session: # pylint: disable=protected-access + return None + except AttributeError: # not settled, and isn't session receiver. + pass + if self._expiry: + return self._expiry + if self.message.annotations and _X_OPT_LOCKED_UNTIL in self.message.annotations: + expiry_in_seconds = self.message.annotations[_X_OPT_LOCKED_UNTIL]/1000 + self._expiry = utc_from_timestamp(expiry_in_seconds) + return self._expiry + + @property + def settled(self): + # type: () -> bool + """Whether the message has been settled. + This will aways be `True` for a message received using ReceiveAndDelete mode, + otherwise it will be `False` until the message is completed or otherwise settled. + :rtype: bool + """ + return self._settled + + +class ReceivedMessage(ReceivedMessageBase): def _settle_message( self, settle_operation, diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/receiver_mixins.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/receiver_mixins.py index 842160c2a79b..f879ac5a8fd4 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/receiver_mixins.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/receiver_mixins.py @@ -90,7 +90,7 @@ def _on_attach(self, source, target, properties, error): # pylint: disable=unus self._session._session_id = self._session_id def _check_live(self): - if self._session and self._session.expired: + if self._session and self._session._lock_expired: # pylint: disable=protected-access raise SessionLockExpired(inner_exception=self._session.auto_renew_error) def _populate_session_attributes(self, **kwargs): diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/utils.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/utils.py index 11ee8e0292b9..a992d841051f 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/utils.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/utils.py @@ -7,25 +7,25 @@ import sys import datetime import logging -import threading -import time import functools +import platform +from typing import Optional, Dict try: from urlparse import urlparse except ImportError: from urllib.parse import urlparse -from concurrent.futures import ThreadPoolExecutor -from uamqp import authentication +from uamqp import authentication, types -from ..exceptions import AutoLockRenewFailed, AutoLockRenewTimeout, ServiceBusError -from .._version import VERSION as sdk_version +from ..exceptions import ServiceBusError +from .._version import VERSION from .constants import ( JWT_TOKEN_SCOPE, TOKEN_TYPE_JWT, TOKEN_TYPE_SASTOKEN, DEAD_LETTER_QUEUE_SUFFIX, - TRANSFER_DEAD_LETTER_QUEUE_SUFFIX + TRANSFER_DEAD_LETTER_QUEUE_SUFFIX, + USER_AGENT_PREFIX ) _log = logging.getLogger(__name__) @@ -93,18 +93,39 @@ def build_uri(address, entity): return address -def create_properties(): +def create_properties(user_agent=None): + # type: (Optional[str]) -> Dict[types.AMQPSymbol, str] + """ + Format the properties with which to instantiate the connection. + This acts like a user agent over HTTP. + + :param str user_agent: If specified, this will be added in front of the built-in user agent string. + + :rtype: dict + """ properties = {} - properties["product"] = "servicebus.python" - properties["version"] = sdk_version - properties["framework"] = "Python {}.{}.{}".format(*sys.version_info[0:3]) - properties["platform"] = sys.platform + properties[types.AMQPSymbol("product")] = USER_AGENT_PREFIX + properties[types.AMQPSymbol("version")] = VERSION + framework = "Python/{}.{}.{}".format( + sys.version_info[0], sys.version_info[1], sys.version_info[2] + ) + properties[types.AMQPSymbol("framework")] = framework + platform_str = platform.platform() + properties[types.AMQPSymbol("platform")] = platform_str + + final_user_agent = "{}/{} {} ({})".format( + USER_AGENT_PREFIX, VERSION, framework, platform_str + ) + if user_agent: + final_user_agent = "{} {}".format(user_agent, final_user_agent) + + properties[types.AMQPSymbol("user-agent")] = final_user_agent return properties def renewable_start_time(renewable): try: - return renewable.received_timestamp_utc + return renewable._received_timestamp_utc # pylint: disable=protected-access except AttributeError: pass try: @@ -158,99 +179,21 @@ def generate_dead_letter_entity_name( return entity_name -class AutoLockRenew(object): - """Auto renew locks for messages and sessions using a background thread pool. - - :param executor: A user-specified thread pool. This cannot be combined with - setting `max_workers`. - :type executor: ~concurrent.futures.ThreadPoolExecutor - :param max_workers: Specify the maximum workers in the thread pool. If not - specified the number used will be derived from the core count of the environment. - This cannot be combined with `executor`. - :type max_workers: int - - .. admonition:: Example: - - .. literalinclude:: ../samples/sync_samples/sample_code_servicebus.py - :start-after: [START auto_lock_renew_message_sync] - :end-before: [END auto_lock_renew_message_sync] - :language: python - :dedent: 4 - :caption: Automatically renew a message lock - - .. literalinclude:: ../samples/sync_samples/sample_code_servicebus.py - :start-after: [START auto_lock_renew_session_sync] - :end-before: [END auto_lock_renew_session_sync] - :language: python - :dedent: 4 - :caption: Automatically renew a session lock - +def copy_messages_to_sendable_if_needed(messages): """ - - def __init__(self, executor=None, max_workers=None): - self.executor = executor or ThreadPoolExecutor(max_workers=max_workers) - self._shutdown = threading.Event() - self.sleep_time = 1 - self.renew_period = 10 - - def __enter__(self): - if self._shutdown.is_set(): - raise ServiceBusError("The AutoLockRenew has already been shutdown. Please create a new instance for" - " auto lock renewing.") - return self - - def __exit__(self, *args): - self.shutdown() - - def _renewable(self, renewable): - if self._shutdown.is_set(): - return False - if hasattr(renewable, 'settled') and renewable.settled: - return False - if renewable.expired: - return False - return True - - def _auto_lock_renew(self, renewable, starttime, timeout): - _log.debug("Running lock auto-renew thread for %r seconds", timeout) + This method is to convert single/multiple received messages to sendable messages to enable message resending. + """ + # pylint: disable=protected-access + try: + msgs_to_return = [] + for each in messages: + try: + msgs_to_return.append(each._to_outgoing_message()) + except AttributeError: + msgs_to_return.append(each) + return msgs_to_return + except TypeError: try: - while self._renewable(renewable): - if (utc_now() - starttime) >= datetime.timedelta(seconds=timeout): - _log.debug("Reached auto lock renew timeout - letting lock expire.") - raise AutoLockRenewTimeout("Auto-renew period ({} seconds) elapsed.".format(timeout)) - if (renewable.locked_until_utc - utc_now()) <= datetime.timedelta(seconds=self.renew_period): - _log.debug("%r seconds or less until lock expires - auto renewing.", self.renew_period) - renewable.renew_lock() - time.sleep(self.sleep_time) - except AutoLockRenewTimeout as e: - renewable.auto_renew_error = e - except Exception as e: # pylint: disable=broad-except - _log.debug("Failed to auto-renew lock: %r. Closing thread.", e) - error = AutoLockRenewFailed( - "Failed to auto-renew lock", - inner_exception=e) - renewable.auto_renew_error = error - - def register(self, renewable, timeout=300): - """Register a renewable entity for automatic lock renewal. - - :param renewable: A locked entity that needs to be renewed. - :type renewable: ~azure.servicebus.ReceivedMessage or - ~azure.servicebus.Session - :param float timeout: A time in seconds that the lock should be maintained for. - Default value is 300 (5 minutes). - """ - if self._shutdown.is_set(): - raise ServiceBusError("The AutoLockRenew has already been shutdown. Please create a new instance for" - " auto lock renewing.") - starttime = renewable_start_time(renewable) - self.executor.submit(self._auto_lock_renew, renewable, starttime, timeout) - - def shutdown(self, wait=True): - """Shutdown the thread pool to clean up any remaining lock renewal threads. - - :param wait: Whether to block until thread pool has shutdown. Default is `True`. - :type wait: bool - """ - self._shutdown.set() - self.executor.shutdown(wait=wait) + return messages._to_outgoing_message() + except AttributeError: + return messages diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/__init__.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/__init__.py deleted file mode 100644 index 1a9b2e37b19c..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/__init__.py +++ /dev/null @@ -1,47 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -from .constants import ( - DEFAULT_RULE_NAME, - AZURE_SERVICEBUS_NAMESPACE, - AZURE_SERVICEBUS_ACCESS_KEY, - AZURE_SERVICEBUS_ISSUER, - SERVICE_BUS_HOST_BASE, - DEFAULT_HTTP_TIMEOUT, -) - -from .models import ( - AzureServiceBusPeekLockError, - AzureServiceBusResourceNotFound, - Queue, - Topic, - Subscription, - Rule, - Message, - EventHub, - AuthorizationRule -) - -from .servicebusservice import ServiceBusService - - -__all__ = [ - 'DEFAULT_RULE_NAME', - 'AZURE_SERVICEBUS_NAMESPACE', - 'AZURE_SERVICEBUS_ACCESS_KEY', - 'AZURE_SERVICEBUS_ISSUER', - 'SERVICE_BUS_HOST_BASE', - 'DEFAULT_HTTP_TIMEOUT', - 'AzureServiceBusPeekLockError', - 'AzureServiceBusResourceNotFound', - 'Queue', - 'Topic', - 'Subscription', - 'Rule', - 'Message', - 'EventHub', - 'AuthorizationRule', - 'ServiceBusService'] diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_conversion.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_conversion.py deleted file mode 100644 index 63e6a6d8afad..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_conversion.py +++ /dev/null @@ -1,84 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -import base64 -import hashlib -import hmac -import sys - -from ._common_models import _unicode_type - - -def _encode_base64(data): - if isinstance(data, _unicode_type): - data = data.encode('utf-8') - encoded = base64.b64encode(data) - return encoded.decode('utf-8') - - -def _decode_base64_to_bytes(data): - if isinstance(data, _unicode_type): - data = data.encode('utf-8') - return base64.b64decode(data) - - -def _decode_base64_to_text(data): - decoded_bytes = _decode_base64_to_bytes(data) - return decoded_bytes.decode('utf-8') - - -if sys.version_info < (3,): - def _str(value): - if isinstance(value, _unicode_type): - return value.encode('utf-8') - - return str(value) -else: - _str = str - - -def _str_or_none(value): - if value is None: - return None - - return _str(value) - - -def _int_or_none(value): - if value is None: - return None - - return str(int(value)) - - -def _bool_or_none(value): - if value is None: - return None - - if isinstance(value, bool): - if value: - return 'true' - return 'false' - - return str(value) - - -def _lower(text): - return text.lower() - - -def _sign_string(key, string_to_sign, key_is_base64=True): - if key_is_base64: - key = _decode_base64_to_bytes(key) - else: - if isinstance(key, _unicode_type): - key = key.encode('utf-8') - if isinstance(string_to_sign, _unicode_type): - string_to_sign = string_to_sign.encode('utf-8') - signed_hmac_sha256 = hmac.HMAC(key, string_to_sign, hashlib.sha256) - digest = signed_hmac_sha256.digest() - encoded_digest = _encode_base64(digest) - return encoded_digest diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_error.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_error.py deleted file mode 100644 index 926bc70eb85b..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_error.py +++ /dev/null @@ -1,67 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -from azure.common import ( - AzureHttpError, - AzureConflictHttpError, - AzureMissingResourceHttpError, -) - - -_ERROR_CONFLICT = 'Conflict ({0})' -_ERROR_NOT_FOUND = 'Not found ({0})' -_ERROR_UNKNOWN = 'Unknown error ({0})' -_ERROR_VALUE_NONE = '{0} should not be None.' -_ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_DELETE = \ - 'Message is not peek locked and cannot be deleted.' -_ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_UNLOCK = \ - 'Message is not peek locked and cannot be unlocked.' -_ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_RENEW_LOCK = \ - 'Message is not peek locked and lock cannot be renewed.' -_ERROR_EVENT_HUB_NOT_FOUND = 'Event hub was not found' -_ERROR_QUEUE_NOT_FOUND = 'Queue was not found' -_ERROR_TOPIC_NOT_FOUND = 'Topic was not found' -_ERROR_SERVICEBUS_MISSING_INFO = \ - 'You need to provide servicebus namespace, access key and Issuer' -_WARNING_VALUE_SHOULD_BE_BYTES = \ - 'Warning: {0} must be bytes data type. It will be converted ' + \ - 'automatically, with utf-8 text encoding.' -_ERROR_VALUE_SHOULD_BE_BYTES = '{0} should be of type bytes.' -_ERROR_VALUE_NEGATIVE = '{0} should not be negative.' - - -def _general_error_handler(http_error): - ''' Simple error handler for azure.''' - message = str(http_error) - if http_error.respbody is not None: - message += '\n' + http_error.respbody.decode('utf-8-sig') - raise AzureHttpError(message, http_error.status) - - -def _dont_fail_on_exist(error): - ''' don't throw exception if the resource exists. - This is called by create_* APIs with fail_on_exist=False''' - if isinstance(error, AzureConflictHttpError): - return False - raise error - - -def _dont_fail_not_exist(error): - ''' don't throw exception if the resource doesn't exist. - This is called by delete_* APIs with fail_on_exist=False''' - if isinstance(error, AzureMissingResourceHttpError): - return False - raise error - - -def _validate_type_bytes(param_name, param): - if not isinstance(param, bytes): - raise TypeError(_ERROR_VALUE_SHOULD_BE_BYTES.format(param_name)) - - -def _validate_not_none(param_name, param): - if param is None: - raise ValueError(_ERROR_VALUE_NONE.format(param_name)) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_models.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_models.py deleted file mode 100644 index a1f3ede58da7..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_models.py +++ /dev/null @@ -1,86 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -# pylint: disable=too-few-public-methods - - -class WindowsAzureData(object): - - ''' This is the base of data class. - It is only used to check whether it is instance or not. ''' - - def __iter__(self): - for attr, value in self.__dict__.items(): - yield attr, value - - -class Feed(object): - pass - - -class _Base64String(str): - pass - - -class HeaderDict(dict): - - def __getitem__(self, index): - return super(HeaderDict, self).__getitem__(index.lower()) - - -class _dict_of(dict): - - """a dict which carries with it the xml element names for key,val. - Used for deserializaion and construction of the lists""" - - def __init__(self, pair_xml_element_name, key_xml_element_name, - value_xml_element_name): - self.pair_xml_element_name = pair_xml_element_name - self.key_xml_element_name = key_xml_element_name - self.value_xml_element_name = value_xml_element_name - super(_dict_of, self).__init__() - - -class _list_of(list): - - """a list which carries with it the type that's expected to go in it. - Used for deserializaion and construction of the lists""" - - def __init__(self, list_type, xml_element_name=None): - self.list_type = list_type - if xml_element_name is None: - self.xml_element_name = list_type.__name__ - else: - self.xml_element_name = xml_element_name - super(_list_of, self).__init__() - - -class _scalar_list_of(list): - """a list of scalar types which carries with it the type that's - expected to go in it along with its xml element name. - Used for deserializaion and construction of the lists""" - - def __init__(self, list_type, xml_element_name): - self.list_type = list_type - self.xml_element_name = xml_element_name - super(_scalar_list_of, self).__init__() - - -class _xml_attribute: - """a accessor to XML attributes - expected to go in it along with its xml element name. - Used for deserialization and construction""" - - def __init__(self, xml_element_name): - self.xml_element_name = xml_element_name - - -try: - _unicode_type = unicode # type: ignore - _strtype = basestring # type: ignore -except NameError: - _unicode_type = str - _strtype = str diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_serialization.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_serialization.py deleted file mode 100644 index f2daaf3cf3ef..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_common_serialization.py +++ /dev/null @@ -1,518 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -from datetime import datetime -from xml.sax.saxutils import escape as xml_escape -try: - from xml.etree import cElementTree as ETree -except ImportError: - from xml.etree import ElementTree as ETree # type: ignore -try: - from cStringIO import StringIO -except ImportError: - from io import StringIO - -from ._common_conversion import _str, _decode_base64_to_text -from ._common_models import ( - Feed, - HeaderDict, - WindowsAzureData, - _Base64String, - _dict_of, - _list_of, - _scalar_list_of, - _unicode_type, - _xml_attribute) - - -_etree_entity_feed_namespaces = { - 'atom': 'http://www.w3.org/2005/Atom', - 'm': 'http://schemas.microsoft.com/ado/2007/08/dataservices/metadata', - 'd': 'http://schemas.microsoft.com/ado/2007/08/dataservices', -} - - -def _make_etree_ns_attr_name(ns, name): - return '{' + ns + '}' + name - - -def _get_etree_tag_name_without_ns(tag): - val = tag.partition('}')[2] - return val - - -def _get_etree_text(element): - text = element.text - return text if text is not None else '' - - -def _get_readable_id(id_name, id_prefix_to_skip): - """simplified an id to be more friendly for us people""" - # id_name is in the form 'https://namespace.host.suffix/name' - # where name may contain a forward slash! - pos = id_name.find('//') - if pos != -1: - pos += 2 - if id_prefix_to_skip: - pos = id_name.find(id_prefix_to_skip, pos) - if pos != -1: - pos += len(id_prefix_to_skip) - pos = id_name.find('/', pos) - if pos != -1: - return id_name[pos + 1:] - return id_name - - -def _to_datetime(strtime): - return datetime.strptime(strtime, "%Y-%m-%dT%H:%M:%S.%f") - -_KNOWN_SERIALIZATION_XFORMS = { - 'last_modified': 'Last-Modified', - 'cache_control': 'Cache-Control', -} - - -def _get_serialization_name(element_name): - """converts a Python name into a serializable name""" - known = _KNOWN_SERIALIZATION_XFORMS.get(element_name) - if known is not None: - return known - - if element_name.startswith('x_ms_'): - return element_name.replace('_', '-') - if element_name.endswith('_id'): - element_name = element_name.replace('_id', 'ID') - for name in ['content_', 'last_modified', 'if_', 'cache_control']: - if element_name.startswith(name): - element_name = element_name.replace('_', '-_') - - return ''.join(name.capitalize() for name in element_name.split('_')) - - -def _convert_class_to_xml(source, xml_prefix=True): - if source is None: - return '' - - xmlstr = '' - if xml_prefix: - xmlstr = '' - - if isinstance(source, list): - for value in source: - xmlstr += _convert_class_to_xml(value, False) - elif isinstance(source, WindowsAzureData): - class_name = source.__class__.__name__ - xmlstr += '<' + class_name + '>' - for name, value in vars(source).items(): - if value is not None: - if isinstance(value, (list, WindowsAzureData)): - xmlstr += _convert_class_to_xml(value, False) - else: - xmlstr += ('<' + _get_serialization_name(name) + '>' + - xml_escape(str(value)) + '') - xmlstr += '' - return xmlstr - - -def _set_continuation_from_response_headers(feeds, response): - x_ms_continuation = HeaderDict() - for name, value in response.headers: - if 'x-ms-continuation' in name: - x_ms_continuation[name[len('x-ms-continuation') + 1:]] = value - if x_ms_continuation: - setattr(feeds, 'x_ms_continuation', x_ms_continuation) - - -def _get_request_body(request_body): - '''Converts an object into a request body. If it's None - we'll return an empty string, if it's one of our objects it'll - convert it to XML and return it. Otherwise we just use the object - directly''' - if request_body is None: - return b'' - - if isinstance(request_body, WindowsAzureData): - request_body = _convert_class_to_xml(request_body) - - if isinstance(request_body, bytes): - return request_body - - if isinstance(request_body, _unicode_type): - return request_body.encode('utf-8') - - request_body = str(request_body) - if isinstance(request_body, _unicode_type): - return request_body.encode('utf-8') - - return request_body - - -class _ETreeXmlToObject(object): - @staticmethod - def parse_response(response, return_type): - ''' - Parse the HTTPResponse's body and fill all the data into a class of - return_type. - ''' - root = ETree.fromstring(response.body) - xml_name = getattr(return_type, '_xml_name', return_type.__name__) - if root.tag == xml_name: - return _ETreeXmlToObject._parse_response_body_from_xml_node(root, return_type) - - return None - - - @staticmethod - def parse_enum_results_list(response, return_type, resp_type, item_type): - """resp_body is the XML we received - resp_type is a string, such as Containers, - return_type is the type we're constructing, such as ContainerEnumResults - item_type is the type object of the item to be created, such as Container - - This function then returns a ContainerEnumResults object with the - containers member populated with the results. - """ - - # parsing something like: - # - # - # - # - # - # - # - # - return_obj = return_type() - root = ETree.fromstring(response.body) - - items = [] - - for container_element in root.findall(resp_type): - for item_element in container_element.findall(resp_type[:-1]): - items.append(_ETreeXmlToObject.fill_instance_element(item_element, item_type)) - - for name, value in vars(return_obj).items(): - # queues, Queues, this is the list its self which we populated - # above - if name == resp_type.lower(): - # the list its self. - continue - value = _ETreeXmlToObject.fill_data_member(root, name, value) - if value is not None: - setattr(return_obj, name, value) - - setattr(return_obj, resp_type.lower(), items) - return return_obj - - - @staticmethod - def parse_simple_list(response, return_type, item_type, list_name): - respbody = response.body - res = return_type() - res_items = [] - root = ETree.fromstring(respbody) - item_name = item_type.__name__ - for item in root.findall(item_name): - res_items.append(_ETreeXmlToObject.fill_instance_element(item, item_type)) - - setattr(res, list_name, res_items) - return res - - - @staticmethod - def convert_response_to_feeds(response, convert_func): - - if response is None: - return None - - feeds = _list_of(Feed) - - _set_continuation_from_response_headers(feeds, response) - - root = ETree.fromstring(response.body) - - # some feeds won't have the 'feed' element, just a single 'entry' element - root_name = _get_etree_tag_name_without_ns(root.tag) - if root_name == 'feed': - entries = root.findall("./atom:entry", _etree_entity_feed_namespaces) - elif root_name == 'entry': - entries = [root] - else: - raise NotImplementedError() - - for entry in entries: - feeds.append(convert_func(entry)) - - return feeds - - - @staticmethod - def get_entry_properties_from_element(element, include_id, id_prefix_to_skip=None, use_title_as_id=False): - ''' get properties from element tree element ''' - properties = {} - - etag = element.attrib.get(_make_etree_ns_attr_name(_etree_entity_feed_namespaces['m'], 'etag'), None) - if etag is not None: - properties['etag'] = etag - - updated = element.findtext('./atom:updated', '', _etree_entity_feed_namespaces) - if updated: - properties['updated'] = updated - - author_name = element.findtext('./atom:author/atom:name', '', _etree_entity_feed_namespaces) - if author_name: - properties['author'] = author_name - - if include_id: - if use_title_as_id: - title = element.findtext('./atom:title', '', _etree_entity_feed_namespaces) - if title: - properties['name'] = title - else: - element_id = element.findtext('./atom:id', '', _etree_entity_feed_namespaces) - if element_id: - properties['name'] = _get_readable_id(element_id, id_prefix_to_skip) - - return properties - - - @staticmethod - def fill_instance_element(element, return_type): - """Converts a DOM element into the specified object""" - return _ETreeXmlToObject._parse_response_body_from_xml_node(element, return_type) - - - @staticmethod - def fill_data_member(xmldoc, element_name, data_member): - element = xmldoc.find(_get_serialization_name(element_name)) - if element is None: - return None - - value = _get_etree_text(element) - - if data_member is None: - return value - if isinstance(data_member, datetime): - return _to_datetime(value) - if isinstance(data_member, bool): - return value.lower() != 'false' - return type(data_member)(value) - - - @staticmethod - def _parse_response_body_from_xml_node(node, return_type): - ''' - parse the xml and fill all the data into a class of return_type - ''' - return_obj = return_type() - _ETreeXmlToObject._fill_data_to_return_object(node, return_obj) - - return return_obj - - - @staticmethod - def _fill_instance_child(xmldoc, element_name, return_type): - '''Converts a child of the current dom element to the specified type. - ''' - element = xmldoc.find(_get_serialization_name(element_name)) - if element is None: - return None - - return_obj = return_type() - _ETreeXmlToObject._fill_data_to_return_object(element, return_obj) - - return return_obj - - - @staticmethod - def _fill_data_to_return_object(node, return_obj): - members = dict(vars(return_obj)) - for name, value in members.items(): - if isinstance(value, _list_of): - setattr(return_obj, - name, - _ETreeXmlToObject._fill_list_of(node, value.list_type, value.xml_element_name)) - elif isinstance(value, _scalar_list_of): - setattr(return_obj, - name, - _ETreeXmlToObject._fill_scalar_list_of( - node, - value.list_type, - _get_serialization_name(name), - value.xml_element_name)) - elif isinstance(value, _dict_of): - setattr(return_obj, - name, - _ETreeXmlToObject._fill_dict_of( - node, - _get_serialization_name(name), - value.pair_xml_element_name, - value.key_xml_element_name, - value.value_xml_element_name)) - elif isinstance(value, _xml_attribute): - real_value = node.attrib.get(value.xml_element_name, None) - if real_value is not None: - setattr(return_obj, name, real_value) - elif isinstance(value, WindowsAzureData): - setattr(return_obj, - name, - _ETreeXmlToObject._fill_instance_child(node, name, value.__class__)) - elif isinstance(value, dict): - setattr(return_obj, - name, - _ETreeXmlToObject._fill_dict(node, _get_serialization_name(name))) - elif isinstance(value, _Base64String): - value = _ETreeXmlToObject.fill_data_member(node, name, '') - if value is not None: - value = _decode_base64_to_text(value) - # always set the attribute, so we don't end up returning an object - # with type _Base64String - setattr(return_obj, name, value) - else: - value = _ETreeXmlToObject.fill_data_member(node, name, value) - if value is not None: - setattr(return_obj, name, value) - - - @staticmethod - def _fill_list_of(xmldoc, element_type, xml_element_name): - return [_ETreeXmlToObject._parse_response_body_from_xml_node(xmlelement, element_type) \ - for xmlelement in xmldoc.findall(xml_element_name)] - - - @staticmethod - def _fill_scalar_list_of(xmldoc, element_type, parent_xml_element_name, - xml_element_name): - '''Converts an xml fragment into a list of scalar types. The parent xml - element contains a flat list of xml elements which are converted into the - specified scalar type and added to the list. - .. admonition:: Example: - xmldoc= - - http://{storage-service-name}.blob.core.windows.net/ - http://{storage-service-name}.queue.core.windows.net/ - http://{storage-service-name}.table.core.windows.net/ - - element_type=str - parent_xml_element_name='Endpoints' - xml_element_name='Endpoint' - ''' - raise NotImplementedError('_scalar_list_of not supported') - - - @staticmethod - def _fill_dict(xmldoc, element_name): - container_element = xmldoc.find(element_name) - if container_element is not None: - return_obj = {} - for item_element in container_element.getchildren(): - return_obj[item_element.tag] = _get_etree_text(item_element) - return return_obj - return None - - - @staticmethod - def _fill_dict_of(xmldoc, parent_xml_element_name, pair_xml_element_name, - key_xml_element_name, value_xml_element_name): - '''Converts an xml fragment into a dictionary. The parent xml element - contains a list of xml elements where each element has a child element for - the key, and another for the value. - .. admonition:: Example: - xmldoc= - - - Ext1 - Val1 - - - Ext2 - Val2 - - - element_type=str - parent_xml_element_name='ExtendedProperties' - pair_xml_element_name='ExtendedProperty' - key_xml_element_name='Name' - value_xml_element_name='Value' - ''' - raise NotImplementedError('_dict_of not supported') - - -class _XmlWriter(object): - - def __init__(self, indent_string=None): - self.file = StringIO() - self.indent_level = 0 - self.indent_string = indent_string - - def _before_element(self, indent_change): - if self.indent_string: - self.indent_level += indent_change - self.file.write(self.indent_string * self.indent_level) - - def _after_element(self, indent_change): - if self.indent_string: - self.file.write('\n') - self.indent_level += indent_change - - def _write_attrs(self, attrs): - for attr_name, attr_val, attr_conv in attrs: - if attr_val is not None: - self.file.write(' ') - self.file.write(attr_name) - self.file.write('="') - val = attr_conv(_str(attr_val)) if attr_conv else _str(attr_val) - val = xml_escape(val) - self.file.write(val) - self.file.write('"') - - def element(self, name, val, val_conv=None, attrs=None): - self._before_element(0) - self.file.write('<') - self.file.write(name) - if attrs: - self._write_attrs(attrs) - self.file.write('>') - val = val_conv(_str(val)) if val_conv else _str(val) - val = xml_escape(val) - self.file.write(val) - self.file.write('') - self._after_element(0) - - def elements(self, name_val_convs): - for name, val, conv in name_val_convs: - if val is not None: - self.element(name, val, conv) - - def preprocessor(self, text): - self._before_element(0) - self.file.write(text) - self._after_element(0) - - def start(self, name, attrs=None): - self._before_element(0) - self.file.write('<') - self.file.write(name) - if attrs: - self._write_attrs(attrs) - self.file.write('>') - self._after_element(1) - - def end(self, name): - self._before_element(-1) - self.file.write('') - self._after_element(0) - - def xml(self): - return self.file.getvalue() - - def close(self): - self.file.close() diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/__init__.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/__init__.py deleted file mode 100644 index ce8ec601360c..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/__init__.py +++ /dev/null @@ -1,73 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - - # pylint: disable=too-few-public-methods - - -class HTTPError(Exception): - - ''' HTTP Exception when response status code >= 300 ''' - - def __init__(self, status, message, respheader, respbody): - '''Creates a new HTTPError with the specified status, message, - response headers and body''' - self.status = status - self.respheader = respheader - self.respbody = respbody - Exception.__init__(self, message) - - -class HTTPResponse(object): - - """Represents a response from an HTTP request. An HTTPResponse has the - following attributes: - - status: - the status code of the response - message: - the message - headers: - the returned headers, as a list of (name, value) pairs - body: - the body of the response - """ - - def __init__(self, status, message, headers, body): - self.status = status - self.message = message - self.headers = headers - self.body = body - - -class HTTPRequest(object): - - '''Represents an HTTP Request. An HTTP Request consists of the following - attributes: - host: - the host name to connect to - method: - the method to use to connect (string such as GET, POST, PUT, etc.) - path: - the uri fragment - query: - query parameters specified as a list of (name, value) pairs - headers: - header values specified as (name, value) pairs - body: - the body of the request. - protocol_override: - specify to use this protocol instead of the global one stored in - _HTTPClient. - ''' - - def __init__(self): - self.host = '' - self.method = '' - self.path = '' - self.query = [] # list of (name, value) - self.headers = [] # list of (header name, header value) - self.body = '' - self.protocol_override = None diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/httpclient.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/httpclient.py deleted file mode 100644 index ed4a14cb796b..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/httpclient.py +++ /dev/null @@ -1,215 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- -# pylint: skip-file -import base64 -try: - from httplib import ( - HTTP_PORT, - HTTPS_PORT) - from urlparse import urlparse - from urllib2 import quote as url_quote -except ImportError: - from http.client import ( - HTTP_PORT, - HTTPS_PORT) - from urllib.parse import urlparse - from urllib.parse import quote as url_quote - -from . import HTTPError, HTTPResponse -from .requestsclient import _RequestsConnection - - -DEBUG_REQUESTS = False -DEBUG_RESPONSES = False - - -class _HTTPClient(object): # pylint: disable=too-many-instance-attributes - - ''' - Takes the request and sends it to cloud service and returns the response. - ''' - - def __init__(self, service_instance, cert_file=None, protocol='https', - request_session=None, timeout=65, user_agent='', api_version=None): - ''' - service_instance: - service client instance. - cert_file: - certificate file name/location. This is only used in hosted - service management. - protocol: - HTTP or HTTPS. - request_session: - session object created with requests library (or compatible). - timeout: - timeout for the HTTP request, in seconds. - user_agent: - user agent string to set in HTTP header. - ''' - self.service_instance = service_instance - self.cert_file = cert_file - self.protocol = protocol - self.proxy_host = None - self.proxy_port = None - self.proxy_user = None - self.proxy_password = None - self.request_session = request_session - self.timeout = timeout - self.user_agent = user_agent - self.api_version = api_version - - def set_proxy(self, host, port, user, password): - ''' - Sets the proxy server host and port for the HTTP CONNECT Tunnelling. - - host: - Address of the proxy. Ex: '192.168.0.100' - port: - Port of the proxy. Ex: 6000 - user: - User for proxy authorization. - password: - Password for proxy authorization. - ''' - self.proxy_host = host - self.proxy_port = port - self.proxy_user = user - self.proxy_password = password - - def get_uri(self, request): - ''' Return the target uri for the request.''' - protocol = request.protocol_override \ - if request.protocol_override else self.protocol - protocol = protocol.lower() - port = HTTP_PORT if protocol == 'http' else HTTPS_PORT - return protocol + '://' + request.host + ':' + str(port) + request.path - - def get_connection(self, request): - ''' Create connection for the request. ''' - protocol = request.protocol_override \ - if request.protocol_override else self.protocol - protocol = protocol.lower() - target_host = request.host - # target_port = HTTP_PORT if protocol == 'http' else HTTPS_PORT - - connection = _RequestsConnection( - target_host, protocol, self.request_session, self.timeout) - proxy_host = self.proxy_host - proxy_port = self.proxy_port - - if self.proxy_host: - headers = None - if self.proxy_user and self.proxy_password: - auth = base64.b64encode("{0}:{1}".format(self.proxy_user, self.proxy_password).encode()) - headers = {'Proxy-Authorization': 'Basic {0}'.format(auth.decode())} - connection.set_tunnel(proxy_host, int(proxy_port), headers) - - return connection - - def send_request_headers(self, connection, request_headers): - # pylint: disable=protected-access - if self.proxy_host and self.request_session is None: - for i in connection._buffer: - if i.startswith(b"Host: "): - connection._buffer.remove(i) - connection.putheader( - 'Host', "{0}:{1}".format(connection._tunnel_host, connection._tunnel_port)) - - for name, value in request_headers: - if value: - connection.putheader(name, value) - - connection.putheader('User-Agent', self.user_agent) - connection.endheaders() - - def send_request_body(self, connection, request_body): # pylint: disable=no-self-use - if request_body: - assert isinstance(request_body, bytes) - connection.send(request_body) - else: - connection.send(None) - - def _update_request_uri_query(self, request): - '''pulls the query string out of the URI and moves it into - the query portion of the request object. If there are already - query parameters on the request the parameters in the URI will - appear after the existing parameters''' - - if '?' in request.path: - request.path, _, query_string = request.path.partition('?') - if query_string: - query_params = query_string.split('&') - for query in query_params: - if '=' in query: - name, _, value = query.partition('=') - request.query.append((name, value)) - if self.api_version: - request.query.append(('api-version', self.api_version)) - - request.path = url_quote(request.path, '/()$=\',') - - # add encoded queries to request.path. - if request.query: - request.path += '?' - for name, value in request.query: - if value is not None: - request.path += name + '=' + url_quote(value, '/()$=\',') + '&' - request.path = request.path[:-1] - - return request.path, request.query - - def perform_request(self, request): - ''' Sends request to cloud service server and return the response. ''' - connection = self.get_connection(request) - try: - connection.putrequest(request.method, request.path) - - self.send_request_headers(connection, request.headers) - self.send_request_body(connection, request.body) - - if DEBUG_REQUESTS and request.body: - print('request:') - try: - print(request.body) - except: # pylint: disable=bare-except - pass - - resp = connection.getresponse() - status = int(resp.status) - message = resp.reason - respheaders = resp.getheaders() - - # for consistency across platforms, make header names lowercase - for i, value in enumerate(respheaders): - respheaders[i] = (value[0].lower(), value[1]) - - respbody = None - if resp.length is None: - respbody = resp.read() - elif resp.length > 0: - respbody = resp.read(resp.length) - - if DEBUG_RESPONSES and respbody: - print('response:') - try: - print(respbody) - except: # pylint: disable=bare-except - pass - - response = HTTPResponse( - status, resp.reason, respheaders, respbody) - if status == 307: - new_url = urlparse(dict(respheaders)['location']) - request.host = new_url.hostname - request.path = new_url.path - request.path, request.query = self._update_request_uri_query(request) - return self.perform_request(request) - if status >= 300: - raise HTTPError(status, message, respheaders, respbody) - - return response - finally: - connection.close() diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/requestsclient.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/requestsclient.py deleted file mode 100644 index c311ec7fdfc1..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_http/requestsclient.py +++ /dev/null @@ -1,81 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- -# pylint: skip-file - - -class _Response(object): - - ''' Response class corresponding to the response returned from httplib - HTTPConnection. ''' - - def __init__(self, response): - self.status = response.status_code - self.reason = response.reason - self.respbody = response.content - self.length = len(response.content) - self.headers = [] - for key, name in response.headers.items(): - self.headers.append((key.lower(), name)) - - def getheaders(self): - '''Returns response headers.''' - return self.headers - - def read(self, _length=None): - '''Returns response body. ''' - if _length: - return self.respbody[:_length] - return self.respbody - - -class _RequestsConnection(object): # pylint: disable=too-many-instance-attributes - - def __init__(self, host, protocol, session, timeout): - self.host = host - self.protocol = protocol - self.session = session - self.headers = {} - self.method = None - self.body = None - self.response = None - self.uri = None - self.timeout = timeout - - # By default, requests adds an Accept:*/* to the session, which causes - # issues with some Azure REST APIs. Removing it here gives us the flexibility - # to add it back on a case by case basis via putheader. - if 'Accept' in self.session.headers: - del self.session.headers['Accept'] - - def close(self): - pass - - def set_tunnel(self, host, port=None, headers=None): - self.session.proxies['http'] = 'http://{}:{}'.format(host, port) - self.session.proxies['https'] = 'https://{}:{}'.format(host, port) - if headers: - self.session.headers.update(headers) - - def set_proxy_credentials(self, user, password): - pass - - def putrequest(self, method, uri): - self.method = method - self.uri = self.protocol + '://' + self.host + uri - - def putheader(self, name, value): - self.headers[name] = value - - def endheaders(self): - pass - - def send(self, request_body): - self.response = self.session.request( - self.method, self.uri, data=request_body, - headers=self.headers, timeout=self.timeout) - - def getresponse(self): - return _Response(self.response) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_serialization.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_serialization.py deleted file mode 100644 index d72a83fd91cb..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/_serialization.py +++ /dev/null @@ -1,569 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -import json -from datetime import datetime -from .models import ( - AzureServiceBusResourceNotFound, - Queue, - Topic, - Subscription, - Rule, - EventHub, - AuthorizationRule, - Message) -from ._common_conversion import _lower -from ._common_serialization import ( - _XmlWriter, - _make_etree_ns_attr_name, - _get_etree_text, - ETree, - _ETreeXmlToObject) -from ._common_error import ( - _ERROR_EVENT_HUB_NOT_FOUND, - _ERROR_QUEUE_NOT_FOUND, - _ERROR_TOPIC_NOT_FOUND, - _general_error_handler) - - -class _XmlSchemas: # pylint: disable=too-few-public-methods - SchemaInstance = 'http://www.w3.org/2001/XMLSchema-instance' - SerializationArrays = 'http://schemas.microsoft.com/2003/10/Serialization/Arrays' - ServiceBus = 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' - DataServices = 'http://schemas.microsoft.com/ado/2007/08/dataservices' - DataServicesMetadata = 'http://schemas.microsoft.com/ado/2007/08/dataservices/metadata' - Atom = 'http://www.w3.org/2005/Atom' - - -def _create_message(response, service_instance): - ''' Create message from response. - - response: - response from Service Bus cloud server. - service_instance: - the Service Bus client. - ''' - respbody = response.body - custom_properties = {} - broker_properties = None - message_type = None - message_location = None - - # gets all information from respheaders. - for name, value in response.headers: - if name.lower() == 'brokerproperties': - broker_properties = json.loads(value) - elif name.lower() == 'content-type': - message_type = value - elif name.lower() == 'location': - message_location = value - # Exclude common HTTP headers to avoid noise. List - # is not exhaustive. At worst, custom properties will contains - # an unexpected content generated by the webserver and not the customer. - elif name.lower() not in ['transfer-encoding', - 'server', - 'date', - 'strict-transport-security']: - # Follow the spec: - # https://docs.microsoft.com/rest/api/servicebus/message-headers-and-properties - if '"' in value: - value = value[1:-1].replace('\\"', '"') - try: - custom_properties[name] = datetime.strptime( - value, '%a, %d %b %Y %H:%M:%S GMT') - except ValueError: - custom_properties[name] = value - elif value.lower() == 'true': - custom_properties[name] = True - elif value.lower() == 'false': - custom_properties[name] = False - else: # in theory, only int or float - try: - # int('3.1') doesn't work so need to get float('3.14') first - float_value = float(value) - if str(int(float_value)) == value: - custom_properties[name] = int(value) - else: - custom_properties[name] = float_value - except ValueError: - # If we are here, this header does not respect the spec. - # Could be an unexpected HTTP header or an invalid - # header value. In both case we ignore without failing. - pass - - if message_type is None: - message = Message( - respbody, service_instance, message_location, custom_properties, - 'application/atom+xml;type=entry;charset=utf-8', broker_properties) - else: - message = Message(respbody, service_instance, message_location, - custom_properties, message_type, broker_properties) - return message - -# convert functions - -_etree_sb_feed_namespaces = { - 'atom': _XmlSchemas.Atom, - 'i': _XmlSchemas.SchemaInstance, - 'sb': _XmlSchemas.ServiceBus, - 'arrays': _XmlSchemas.SerializationArrays, -} - - -def _convert_response_to_rule(response): - root = ETree.fromstring(response.body) - return _convert_etree_element_to_rule(root) - - -def _convert_etree_element_to_rule(entry_element): - ''' Converts entry element to rule object. - - The format of xml for rule: - - - - - MyProperty='XYZ' - - - set MyProperty2 = 'ABC' - - - - - ''' - rule = Rule() - - rule_element = entry_element.find('./atom:content/sb:RuleDescription', _etree_sb_feed_namespaces) - if rule_element is not None: - filter_element = rule_element.find('./sb:Filter', _etree_sb_feed_namespaces) - if filter_element is not None: - rule.filter_type = filter_element.attrib.get( - _make_etree_ns_attr_name(_etree_sb_feed_namespaces['i'], 'type'), None) - sql_exp_element = filter_element.find('./sb:SqlExpression', _etree_sb_feed_namespaces) - if sql_exp_element is not None: - rule.filter_expression = sql_exp_element.text - - action_element = rule_element.find('./sb:Action', _etree_sb_feed_namespaces) - if action_element is not None: - rule.action_type = action_element.attrib.get( - _make_etree_ns_attr_name(_etree_sb_feed_namespaces['i'], 'type'), None) - sql_exp_element = action_element.find('./sb:SqlExpression', _etree_sb_feed_namespaces) - if sql_exp_element is not None: - rule.action_expression = sql_exp_element.text - - - # extract id, updated and name value from feed entry and set them of rule. - for name, value in _ETreeXmlToObject.get_entry_properties_from_element( - entry_element, True, '/rules').items(): - setattr(rule, name, value) - - return rule - - -def _convert_response_to_queue(response): - root = ETree.fromstring(response.body) - return _convert_etree_element_to_queue(root) - - -def _convert_response_to_event_hub(response): - root = ETree.fromstring(response.body) - return _convert_etree_element_to_event_hub(root) - - -def _parse_bool(value): - if value.lower() == 'true': - return True - return False - - -def _read_etree_element(parent_element, child_element_name, target_object, target_field_name, converter): - child_element = parent_element.find('./sb:{0}'.format(child_element_name), _etree_sb_feed_namespaces) - if child_element is not None: - field_value = _get_etree_text(child_element) - if converter is not None: - field_value = converter(field_value) - setattr(target_object, target_field_name, field_value) - return True - return False - - -def _convert_etree_element_to_queue(entry_element): - ''' Converts entry element to queue object. - - The format of xml response for queue: - - 10000 - PT5M - PT2M - False - False - ... - - - ''' - queue = Queue() - - # get node for each attribute in Queue class, if nothing found then the - # response is not valid xml for Queue. - invalid_queue = True - - queue_element = entry_element.find('./atom:content/sb:QueueDescription', _etree_sb_feed_namespaces) - if queue_element is not None: - mappings = [ - ('LockDuration', 'lock_duration', None), - ('MaxSizeInMegabytes', 'max_size_in_megabytes', int), - ('RequiresDuplicateDetection', 'requires_duplicate_detection', _parse_bool), - ('RequiresSession', 'requires_session', _parse_bool), - ('DefaultMessageTimeToLive', 'default_message_time_to_live', None), - ('DeadLetteringOnMessageExpiration', 'dead_lettering_on_message_expiration', _parse_bool), - ('DuplicateDetectionHistoryTimeWindow', 'duplicate_detection_history_time_window', None), - ('EnableBatchedOperations', 'enable_batched_operations', _parse_bool), - ('MaxDeliveryCount', 'max_delivery_count', int), - ('MessageCount', 'message_count', int), - ('SizeInBytes', 'size_in_bytes', int), - ] - - for mapping in mappings: - if _read_etree_element(queue_element, mapping[0], queue, mapping[1], mapping[2]): - invalid_queue = False - - if invalid_queue: - raise AzureServiceBusResourceNotFound(_ERROR_QUEUE_NOT_FOUND) - - # extract id, updated and name value from feed entry and set them of queue. - for name, value in _ETreeXmlToObject.get_entry_properties_from_element( - entry_element, True).items(): - setattr(queue, name, value) - - return queue - - -def _convert_response_to_topic(response): - root = ETree.fromstring(response.body) - return _convert_etree_element_to_topic(root) - - -def _convert_etree_element_to_topic(entry_element): - '''Converts entry element to topic - - The xml format for topic: - - - - P10675199DT2H48M5.4775807S - 1024 - false - P7D - true - - - - ''' - topic = Topic() - - invalid_topic = True - - topic_element = entry_element.find('./atom:content/sb:TopicDescription', _etree_sb_feed_namespaces) - if topic_element is not None: - mappings = [ - ('DefaultMessageTimeToLive', 'default_message_time_to_live', None), - ('MaxSizeInMegabytes', 'max_size_in_megabytes', int), - ('RequiresDuplicateDetection', 'requires_duplicate_detection', _parse_bool), - ('DuplicateDetectionHistoryTimeWindow', 'duplicate_detection_history_time_window', None), - ('EnableBatchedOperations', 'enable_batched_operations', _parse_bool), - ('SizeInBytes', 'size_in_bytes', int), - ] - - for mapping in mappings: - if _read_etree_element(topic_element, mapping[0], topic, mapping[1], mapping[2]): - invalid_topic = False - - if invalid_topic: - raise AzureServiceBusResourceNotFound(_ERROR_TOPIC_NOT_FOUND) - - # extract id, updated and name value from feed entry and set them of topic. - for name, value in _ETreeXmlToObject.get_entry_properties_from_element( - entry_element, True).items(): - setattr(topic, name, value) - - return topic - - -def _convert_response_to_subscription(response): - root = ETree.fromstring(response.body) - return _convert_etree_element_to_subscription(root) - - -def _convert_etree_element_to_subscription(entry_element): - '''Converts entry element to subscription - - The xml format for subscription: - - - - PT5M - false - P10675199DT2H48M5.4775807S - false - true - - - - ''' - subscription = Subscription() - - subscription_element = entry_element.find('./atom:content/sb:SubscriptionDescription', _etree_sb_feed_namespaces) - if subscription_element is not None: - mappings = [ - ('LockDuration', 'lock_duration', None), - ('RequiresSession', 'requires_session', _parse_bool), - ('DefaultMessageTimeToLive', 'default_message_time_to_live', None), - ('DeadLetteringOnFilterEvaluationExceptions', 'dead_lettering_on_filter_evaluation_exceptions', _parse_bool), # pylint: disable=line-too-long - ('DeadLetteringOnMessageExpiration', 'dead_lettering_on_message_expiration', _parse_bool), - ('EnableBatchedOperations', 'enable_batched_operations', _parse_bool), - ('MaxDeliveryCount', 'max_delivery_count', int), - ('MessageCount', 'message_count', int), - ] - - for mapping in mappings: - _read_etree_element(subscription_element, mapping[0], subscription, mapping[1], mapping[2]) - - for name, value in _ETreeXmlToObject.get_entry_properties_from_element( - entry_element, True, '/subscriptions').items(): - setattr(subscription, name, value) - - return subscription - - -def _convert_etree_element_to_event_hub(entry_element): - hub = EventHub() - - invalid_event_hub = True - # get node for each attribute in EventHub class, if nothing found then the - # response is not valid xml for EventHub. - - hub_element = entry_element.find('./atom:content/sb:EventHubDescription', _etree_sb_feed_namespaces) - if hub_element is not None: # pylint: disable=too-many-nested-blocks - mappings = [ - ('SizeInBytes', 'size_in_bytes', int), - ('MessageRetentionInDays', 'message_retention_in_days', int), - ('Status', 'status', None), - ('UserMetadata', 'user_metadata', None), - ('PartitionCount', 'partition_count', int), - ('EntityAvailableStatus', 'entity_available_status', None), - ] - - for mapping in mappings: - if _read_etree_element(hub_element, mapping[0], hub, mapping[1], mapping[2]): - invalid_event_hub = False - - ids = hub_element.find('./sb:PartitionIds', _etree_sb_feed_namespaces) - if ids is not None: - for id_node in ids.findall('./arrays:string', _etree_sb_feed_namespaces): - value = _get_etree_text(id_node) - if value: - hub.partition_ids.append(value) - - rules_nodes = hub_element.find('./sb:AuthorizationRules', _etree_sb_feed_namespaces) - if rules_nodes is not None: - invalid_event_hub = False - for rule_node in rules_nodes.findall('./sb:AuthorizationRule', _etree_sb_feed_namespaces): - rule = AuthorizationRule() - - mappings = [ - ('ClaimType', 'claim_type', None), - ('ClaimValue', 'claim_value', None), - ('ModifiedTime', 'modified_time', None), - ('CreatedTime', 'created_time', None), - ('KeyName', 'key_name', None), - ('PrimaryKey', 'primary_key', None), - ('SecondaryKey', 'secondary_key', None), - ] - - for mapping in mappings: - _read_etree_element(rule_node, mapping[0], rule, mapping[1], mapping[2]) - - rights_nodes = rule_node.find('./sb:Rights', _etree_sb_feed_namespaces) - if rights_nodes is not None: - for access_rights_node in rights_nodes.findall('./sb:AccessRights', _etree_sb_feed_namespaces): - node_value = _get_etree_text(access_rights_node) - if node_value: - rule.rights.append(node_value) - - hub.authorization_rules.append(rule) - - if invalid_event_hub: - raise AzureServiceBusResourceNotFound(_ERROR_EVENT_HUB_NOT_FOUND) - - # extract id, updated and name value from feed entry and set them of queue. - for name, value in _ETreeXmlToObject.get_entry_properties_from_element( - entry_element, True).items(): - if name == 'name': - value = value.partition('?')[0] - setattr(hub, name, value) - - return hub - - -def _convert_object_to_feed_entry(obj, rootName, content_writer): - updated_str = datetime.utcnow().isoformat() - if datetime.utcnow().utcoffset() is None: - updated_str += '+00:00' - - writer = _XmlWriter() - writer.preprocessor('') - writer.start('entry', [ - ('xmlns:d', _XmlSchemas.DataServices, None), - ('xmlns:m', _XmlSchemas.DataServicesMetadata, None), - ('xmlns', _XmlSchemas.Atom, None), - ]) - - writer.element('title', '') - writer.element('updated', updated_str) - writer.start('author') - writer.element('name', '') - writer.end('author') - writer.element('id', '') - writer.start('content', [('type', 'application/xml', None)]) - writer.start(rootName, [ - ('xmlns:i', _XmlSchemas.SchemaInstance, None), - ('xmlns', _XmlSchemas.ServiceBus, None), - ]) - - if obj: - content_writer(writer, obj) - - writer.end(rootName) - writer.end('content') - writer.end('entry') - - xml = writer.xml() - writer.close() - - return xml - - -def _convert_subscription_to_xml(sub): - - def _subscription_to_xml(writer, sub): - writer.elements([ - ('LockDuration', sub.lock_duration, None), - ('RequiresSession', sub.requires_session, _lower), - ('DefaultMessageTimeToLive', sub.default_message_time_to_live, None), - ('DeadLetteringOnMessageExpiration', sub.dead_lettering_on_message_expiration, _lower), - ('DeadLetteringOnFilterEvaluationExceptions', sub.dead_lettering_on_filter_evaluation_exceptions, _lower), - ('EnableBatchedOperations', sub.enable_batched_operations, _lower), - ('MaxDeliveryCount', sub.max_delivery_count, None), - ('MessageCount', sub.message_count, None), - ]) - - return _convert_object_to_feed_entry( - sub, 'SubscriptionDescription', _subscription_to_xml) - - -def _convert_rule_to_xml(rule): - - def _rule_to_xml(writer, rule): - if rule.filter_type: - writer.start('Filter', [('i:type', rule.filter_type, None)]) - if rule.filter_type == 'CorrelationFilter': - writer.element('CorrelationId', rule.filter_expression) - else: - writer.element('SqlExpression', rule.filter_expression) - writer.element('CompatibilityLevel', '20') - writer.end('Filter') - if rule.action_type: - writer.start('Action', [('i:type', rule.action_type, None)]) - if rule.action_type == 'SqlRuleAction': - writer.element('SqlExpression', rule.action_expression) - writer.element('CompatibilityLevel', '20') - writer.end('Action') - - return _convert_object_to_feed_entry( - rule, 'RuleDescription', _rule_to_xml) - - -def _convert_topic_to_xml(topic): - - def _topic_to_xml(writer, topic): - writer.elements([ - ('DefaultMessageTimeToLive', topic.default_message_time_to_live, None), - ('MaxSizeInMegabytes', topic.max_size_in_megabytes, None), - ('RequiresDuplicateDetection', topic.requires_duplicate_detection, _lower), - ('DuplicateDetectionHistoryTimeWindow', topic.duplicate_detection_history_time_window, None), - ('EnableBatchedOperations', topic.enable_batched_operations, _lower), - ('SizeInBytes', topic.size_in_bytes, None), - ]) - - return _convert_object_to_feed_entry( - topic, 'TopicDescription', _topic_to_xml) - - -def _convert_queue_to_xml(queue): - - def _queue_to_xml(writer, queue): - writer.elements([ - ('LockDuration', queue.lock_duration, None), - ('MaxSizeInMegabytes', queue.max_size_in_megabytes, None), - ('RequiresDuplicateDetection', queue.requires_duplicate_detection, _lower), - ('RequiresSession', queue.requires_session, _lower), - ('DefaultMessageTimeToLive', queue.default_message_time_to_live, None), - ('DeadLetteringOnMessageExpiration', queue.dead_lettering_on_message_expiration, _lower), - ('DuplicateDetectionHistoryTimeWindow', queue.duplicate_detection_history_time_window, None), - ('MaxDeliveryCount', queue.max_delivery_count, None), - ('EnableBatchedOperations', queue.enable_batched_operations, _lower), - ('SizeInBytes', queue.size_in_bytes, None), - ('MessageCount', queue.message_count, None), - ]) - - return _convert_object_to_feed_entry( - queue, 'QueueDescription', _queue_to_xml) - - -def _convert_event_hub_to_xml(hub): - - def _hub_to_xml(writer, hub): - writer.elements( - [('MessageRetentionInDays', hub.message_retention_in_days, None)]) - if hub.authorization_rules: - writer.start('AuthorizationRules') - for rule in hub.authorization_rules: - writer.start('AuthorizationRule', - [('i:type', 'SharedAccessAuthorizationRule', None)]) - writer.elements( - [('ClaimType', rule.claim_type, None), - ('ClaimValue', rule.claim_value, None)]) - if rule.rights: - writer.start('Rights') - for right in rule.rights: - writer.element('AccessRights', right) - writer.end('Rights') - writer.elements( - [('KeyName', rule.key_name, None), - ('PrimaryKey', rule.primary_key, None), - ('SecondaryKey', rule.secondary_key, None)]) - writer.end('AuthorizationRule') - writer.end('AuthorizationRules') - writer.elements( - [('Status', hub.status, None), - ('UserMetadata', hub.user_metadata, None), - ('PartitionCount', hub.partition_count, None)]) - - return _convert_object_to_feed_entry( - hub, 'EventHubDescription', _hub_to_xml) - - -def _service_bus_error_handler(http_error): - ''' Simple error handler for Service Bus service. ''' - return _general_error_handler(http_error) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/constants.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/constants.py deleted file mode 100644 index 9bbc8019ae99..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/constants.py +++ /dev/null @@ -1,25 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -from azure.servicebus import __version__ - - -_USER_AGENT_STRING = 'azure-servicebus/{} Azure-SDK-For-Python'.format(__version__) - -# default rule name for subscription -DEFAULT_RULE_NAME = '$Default' - -# ---------------------------------------------------------------------------- -# Constants for Azure app environment settings. -AZURE_SERVICEBUS_NAMESPACE = 'AZURE_SERVICEBUS_NAMESPACE' -AZURE_SERVICEBUS_ACCESS_KEY = 'AZURE_SERVICEBUS_ACCESS_KEY' -AZURE_SERVICEBUS_ISSUER = 'AZURE_SERVICEBUS_ISSUER' - -# Live ServiceClient URLs -SERVICE_BUS_HOST_BASE = '.servicebus.windows.net' - -# Default timeout for HTTP requests (in secs) -DEFAULT_HTTP_TIMEOUT = 65 diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/models.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/models.py deleted file mode 100644 index 9f0ea92812b9..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/models.py +++ /dev/null @@ -1,303 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -# pylint: disable=too-few-public-methods,too-many-instance-attributes - -import sys -import json -from datetime import datetime -import warnings - -from azure.common import AzureException -from ._common_models import WindowsAzureData, _unicode_type -from ._common_error import ( - _ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_DELETE, - _ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_UNLOCK, - _ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_RENEW_LOCK) - -class AzureServiceBusPeekLockError(AzureException): - '''Indicates that peek-lock is required for this operation.''' - - -class AzureServiceBusResourceNotFound(AzureException): - '''Indicates that the resource doesn't exist.''' - - -class Queue(WindowsAzureData): - - ''' Queue class corresponding to Queue Description: - http://msdn.microsoft.com/en-us/library/windowsazure/hh780773''' - - def __init__(self, lock_duration=None, max_size_in_megabytes=None, - requires_duplicate_detection=None, requires_session=None, - default_message_time_to_live=None, - dead_lettering_on_message_expiration=None, - duplicate_detection_history_time_window=None, - max_delivery_count=None, enable_batched_operations=None, - size_in_bytes=None, message_count=None): - - self.lock_duration = lock_duration - self.max_size_in_megabytes = max_size_in_megabytes - self.requires_duplicate_detection = requires_duplicate_detection - self.requires_session = requires_session - self.default_message_time_to_live = default_message_time_to_live - self.dead_lettering_on_message_expiration = \ - dead_lettering_on_message_expiration - self.duplicate_detection_history_time_window = \ - duplicate_detection_history_time_window - self.max_delivery_count = max_delivery_count - self.enable_batched_operations = enable_batched_operations - self.size_in_bytes = size_in_bytes - self.message_count = message_count - - -class Topic(WindowsAzureData): - - ''' Topic class corresponding to Topic Description: - https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicebus.messaging.topicdescription. ''' - - def __init__(self, default_message_time_to_live=None, - max_size_in_megabytes=None, requires_duplicate_detection=None, - duplicate_detection_history_time_window=None, - enable_batched_operations=None, size_in_bytes=None): - - self.default_message_time_to_live = default_message_time_to_live - self.max_size_in_megabytes = max_size_in_megabytes - self.requires_duplicate_detection = requires_duplicate_detection - self.duplicate_detection_history_time_window = \ - duplicate_detection_history_time_window - self.enable_batched_operations = enable_batched_operations - self.size_in_bytes = size_in_bytes - - @property - def max_size_in_mega_bytes(self): - warnings.warn( - 'This attribute has been changed to max_size_in_megabytes.') - return self.max_size_in_megabytes - - @max_size_in_mega_bytes.setter - def max_size_in_mega_bytes(self, value): - self.max_size_in_megabytes = value - - -class Subscription(WindowsAzureData): - - ''' Subscription class corresponding to Subscription Description: - http://msdn.microsoft.com/en-us/library/windowsazure/hh780763. ''' - - def __init__(self, lock_duration=None, requires_session=None, - default_message_time_to_live=None, - dead_lettering_on_message_expiration=None, - dead_lettering_on_filter_evaluation_exceptions=None, - enable_batched_operations=None, max_delivery_count=None, - message_count=None): - - self.lock_duration = lock_duration - self.requires_session = requires_session - self.default_message_time_to_live = default_message_time_to_live - self.dead_lettering_on_message_expiration = \ - dead_lettering_on_message_expiration - self.dead_lettering_on_filter_evaluation_exceptions = \ - dead_lettering_on_filter_evaluation_exceptions - self.enable_batched_operations = enable_batched_operations - self.max_delivery_count = max_delivery_count - self.message_count = message_count - - -class Rule(WindowsAzureData): - - ''' Rule class corresponding to Rule Description: - http://msdn.microsoft.com/en-us/library/windowsazure/hh780753. ''' - - def __init__(self, filter_type=None, filter_expression=None, - action_type=None, action_expression=None): - self.filter_type = filter_type - self.filter_expression = filter_expression - self.action_type = action_type - self.action_expression = action_expression - - -class EventHub(WindowsAzureData): - - def __init__(self, message_retention_in_days=None, status=None, - user_metadata=None, partition_count=None): - self.message_retention_in_days = message_retention_in_days - self.status = status - self.user_metadata = user_metadata - self.partition_count = partition_count - self.authorization_rules = [] - self.partition_ids = [] - - -class AuthorizationRule(WindowsAzureData): - - def __init__(self, claim_type=None, claim_value=None, rights=None, - key_name=None, primary_key=None, secondary_key=None): - self.claim_type = claim_type - self.claim_value = claim_value - self.rights = rights or [] - self.created_time = None - self.modified_time = None - self.key_name = key_name - self.primary_key = primary_key - self.secondary_key = secondary_key - - -class Message(WindowsAzureData): - - ''' Message class that used in send message/get message apis. ''' - - def __init__(self, body=None, service_bus_service=None, location=None, - custom_properties=None, - type='application/atom+xml;type=entry;charset=utf-8', # pylint: disable=redefined-builtin - broker_properties=None): - self.body = body - self.location = location - self.broker_properties = broker_properties - self.custom_properties = custom_properties - self.type = type - self.service_bus_service = service_bus_service - self._topic_name = None - self._subscription_name = None - self._queue_name = None - - if not service_bus_service: - return - - # if location is set, then extracts the queue name for queue message and - # extracts the topic and subscriptions name if it is topic message. - if location: - if '/subscriptions/' in location: - pos = location.find(service_bus_service.host_base.lower())+1 - pos1 = location.find('/subscriptions/') - self._topic_name = location[pos+len(service_bus_service.host_base):pos1] - pos = pos1 + len('/subscriptions/') - pos1 = location.find('/', pos) - self._subscription_name = location[pos:pos1] - elif '/messages/' in location: - pos = location.find(service_bus_service.host_base.lower())+1 - pos1 = location.find('/messages/') - self._queue_name = location[pos+len(service_bus_service.host_base):pos1] - - def delete(self): - ''' Deletes itself if find queue name or topic name and subscription - name. ''' - if self._queue_name: - self.service_bus_service.delete_queue_message( - self._queue_name, - self.broker_properties['SequenceNumber'], - self.broker_properties['LockToken']) - elif self._topic_name and self._subscription_name: - self.service_bus_service.delete_subscription_message( - self._topic_name, - self._subscription_name, - self.broker_properties['SequenceNumber'], - self.broker_properties['LockToken']) - else: - raise AzureServiceBusPeekLockError(_ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_DELETE) - - def unlock(self): - ''' Unlocks itself if find queue name or topic name and subscription - name. ''' - if self._queue_name: - self.service_bus_service.unlock_queue_message( - self._queue_name, - self.broker_properties['SequenceNumber'], - self.broker_properties['LockToken']) - elif self._topic_name and self._subscription_name: - self.service_bus_service.unlock_subscription_message( - self._topic_name, - self._subscription_name, - self.broker_properties['SequenceNumber'], - self.broker_properties['LockToken']) - else: - raise AzureServiceBusPeekLockError(_ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_UNLOCK) - - def renew_lock(self): - ''' Renew lock on itself if find queue name or topic name and subscription - name. ''' - if self._queue_name: - self.service_bus_service.renew_lock_queue_message( - self._queue_name, - self.broker_properties['SequenceNumber'], - self.broker_properties['LockToken']) - elif self._topic_name and self._subscription_name: - self.service_bus_service.renew_lock_subscription_message( - self._topic_name, - self._subscription_name, - self.broker_properties['SequenceNumber'], - self.broker_properties['LockToken']) - else: - raise AzureServiceBusPeekLockError(_ERROR_MESSAGE_NOT_PEEK_LOCKED_ON_RENEW_LOCK) - - def _serialize_escaped_properties_value(self, value): # pylint: disable=no-self-use - if sys.version_info < (3,) and isinstance(value, _unicode_type): - escaped_value = value.replace('"', '\\"') - return '"' + escaped_value.encode('utf-8') + '"' - if isinstance(value, str): - escaped_value = value.replace('"', '\\"') - return '"' + escaped_value + '"' - if isinstance(value, datetime): - return '"' + value.strftime('%a, %d %b %Y %H:%M:%S GMT') + '"' - return str(value).lower() - - def _serialize_basic_properties_value(self, value): # pylint: disable=no-self-use - if sys.version_info < (3,) and isinstance(value, _unicode_type): - return value.encode('utf-8') - if isinstance(value, str): - return value - if isinstance(value, datetime): - return value.strftime('%a, %d %b %Y %H:%M:%S GMT') - return str(value).lower() - - def add_headers(self, request): - ''' add addtional headers to request for message request.''' - - # Adds custom properties - if self.custom_properties: - for name, value in self.custom_properties.items(): - request.headers.append((name, self._serialize_escaped_properties_value(value))) - - # Adds content-type - request.headers.append(('Content-Type', self.type)) - - # Adds BrokerProperties - if self.broker_properties: - if hasattr(self.broker_properties, 'items'): - broker_properties = {name: self._serialize_basic_properties_value(value) - for name, value - in self.broker_properties.items()} - broker_properties = json.dumps(broker_properties) - else: - broker_properties = self.broker_properties - request.headers.append( - ('BrokerProperties', str(broker_properties))) - - return request.headers - - def as_batch_body(self): - ''' return the current message as expected by batch body format''' - if sys.version_info >= (3,) and isinstance(self.body, bytes): - # It HAS to be string to be serialized in JSON - body = self.body.decode('utf-8') - else: - # Python 2.7 people handle this themself - body = self.body - result = {'Body': body} - - # Adds custom properties - if self.custom_properties: - result['UserProperties'] = {name: self._serialize_basic_properties_value(value) - for name, value - in self.custom_properties.items()} - - # Adds BrokerProperties - if self.broker_properties: - result['BrokerProperties'] = {name: self._serialize_basic_properties_value(value) - for name, value - in self.broker_properties.items()} - - return result diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/servicebusservice.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/servicebusservice.py deleted file mode 100644 index 1b635c602fd4..000000000000 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_control_client/servicebusservice.py +++ /dev/null @@ -1,1350 +0,0 @@ -# ------------------------------------------------------------------------ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# ------------------------------------------------------------------------- - -# pylint: disable=too-many-lines,too-few-public-methods - -import os -import time -import json -from typing import Dict - -try: - from urllib2 import quote as url_quote - from urllib2 import unquote as url_unquote -except ImportError: - from urllib.parse import quote as url_quote - from urllib.parse import unquote as url_unquote - -import requests - -from azure.common import AzureHttpError -from .constants import ( - AZURE_SERVICEBUS_NAMESPACE, - AZURE_SERVICEBUS_ACCESS_KEY, - AZURE_SERVICEBUS_ISSUER, - DEFAULT_HTTP_TIMEOUT, - SERVICE_BUS_HOST_BASE, - _USER_AGENT_STRING) -from ._common_error import ( - _dont_fail_not_exist, - _dont_fail_on_exist, - _validate_not_none) -from ._common_conversion import ( - _int_or_none, - _sign_string, - _str) -from ._common_serialization import ( - _ETreeXmlToObject, - _get_request_body) -from ._http import ( - HTTPError, - HTTPRequest) -from ._http.httpclient import _HTTPClient -from ._serialization import ( - _convert_event_hub_to_xml, - _convert_topic_to_xml, - _convert_response_to_topic, - _convert_queue_to_xml, - _convert_response_to_queue, - _convert_subscription_to_xml, - _convert_response_to_subscription, - _convert_rule_to_xml, - _convert_response_to_rule, - _convert_response_to_event_hub, - _convert_etree_element_to_queue, - _convert_etree_element_to_topic, - _convert_etree_element_to_subscription, - _convert_etree_element_to_rule, - _create_message, - _service_bus_error_handler) - - -class ServiceBusService(object): # pylint: disable=too-many-public-methods - - def __init__(self, service_namespace=None, account_key=None, issuer=None, - x_ms_version='2011-06-01', host_base=SERVICE_BUS_HOST_BASE, - shared_access_key_name=None, shared_access_key_value=None, - authentication=None, timeout=DEFAULT_HTTP_TIMEOUT, - request_session=None): - ''' - Initializes the Service Bus service for a namespace with the specified - authentication settings (SAS or ACS). - - service_namespace: - Service Bus namespace, required for all operations. If None, - the value is set to the AZURE_SERVICEBUS_NAMESPACE env variable. - account_key: - ACS authentication account key. If None, the value is set to the - AZURE_SERVICEBUS_ACCESS_KEY env variable. - Note that if both SAS and ACS settings are specified, SAS is used. - issuer: - ACS authentication issuer. If None, the value is set to the - AZURE_SERVICEBUS_ISSUER env variable. - Note that if both SAS and ACS settings are specified, SAS is used. - host_base: - Optional. Live host base URL. Defaults to Azure URL. Override this - for on-premise. - shared_access_key_name: - SAS authentication key name. - Note that if both SAS and ACS settings are specified, SAS is used. - shared_access_key_value: - SAS authentication key value. - Note that if both SAS and ACS settings are specified, SAS is used. - authentication: - Instance of authentication class. If this is specified, then - ACS and SAS parameters are ignored. - timeout: - Optional. Timeout for the HTTP request, in seconds. - request_session: - Optional. Session object to use for HTTP requests. - ''' - self.requestid = None - x_ms_version = None - api_version = x_ms_version # Waiting is updated API version support - self.service_namespace = service_namespace - self.host_base = host_base - - if not self.service_namespace: - self.service_namespace = os.environ.get(AZURE_SERVICEBUS_NAMESPACE) - - if not self.service_namespace: - raise ValueError('You need to provide servicebus namespace') - - if authentication: - self.authentication = authentication - else: - if not account_key: - account_key = os.environ.get(AZURE_SERVICEBUS_ACCESS_KEY) - if not issuer: - issuer = os.environ.get(AZURE_SERVICEBUS_ISSUER) - - if shared_access_key_name and shared_access_key_value: - self.authentication = ServiceBusSASAuthentication( - shared_access_key_name, - shared_access_key_value) - elif account_key and issuer: - self.authentication = ServiceBusWrapTokenAuthentication( - account_key, - issuer) - else: - raise ValueError( - 'You need to provide servicebus access key and Issuer OR shared access key and value') - - self._httpclient = _HTTPClient( - service_instance=self, - timeout=timeout, - request_session=request_session or requests.Session(), - user_agent=_USER_AGENT_STRING, - api_version=api_version, - ) - self._filter = self._httpclient.perform_request - - @staticmethod - def format_dead_letter_queue_name(queue_name): - """Get the dead letter name of this queue""" - return queue_name + '/$DeadLetterQueue' - - @staticmethod - def format_dead_letter_subscription_name(subscription_name): - """Get the dead letter name of this subscription""" - return subscription_name + '/$DeadLetterQueue' - - @staticmethod - def format_transfer_dead_letter_queue_name(queue_name): - """Get the dead letter name of this queue""" - return queue_name + '/$Transfer' + '/$DeadLetterQueue' - - @staticmethod - def format_transfer_dead_letter_topic_name(topic_name): - """Get the dead letter name of this topic""" - return topic_name + '/$Transfer' + '/$DeadLetterQueue' - - # Backwards compatibility: - # account_key and issuer used to be stored on the service class, they are - # now stored on the authentication class. - @property - def account_key(self): - return self.authentication.account_key - - @account_key.setter - def account_key(self, value): - self.authentication.account_key = value - - @property - def issuer(self): - return self.authentication.issuer - - @issuer.setter - def issuer(self, value): - self.authentication.issuer = value - - def with_filter(self, filter_func): - ''' - Returns a new service which will process requests with the specified - filter. Filtering operations can include logging, automatic retrying, - etc... The filter is a lambda which receives the HTTPRequest and - another lambda. The filter can perform any pre-processing on the - request, pass it off to the next lambda, and then perform any - post-processing on the response. - ''' - res = ServiceBusService( - service_namespace=self.service_namespace, - authentication=self.authentication) - - old_filter = self._filter - - def new_filter(request): - return filter_func(request, old_filter) - - res._filter = new_filter # pylint: disable=protected-access - return res - - def set_proxy(self, host, port, user=None, password=None): - ''' - Sets the proxy server host and port for the HTTP CONNECT Tunnelling. - - host: - Address of the proxy. Ex: '192.168.0.100' - port: - Port of the proxy. Ex: 6000 - user: - User for proxy authorization. - password: - Password for proxy authorization. - ''' - self._httpclient.set_proxy(host, port, user, password) - - @property - def timeout(self): - return self._httpclient.timeout - - @timeout.setter - def timeout(self, value): - self._httpclient.timeout = value - - def create_queue(self, queue_name, queue=None, fail_on_exist=False): - ''' - Creates a new queue. Once created, this queue's resource manifest is - immutable. - - queue_name: - Name of the queue to create. - queue: - Queue object to create. - fail_on_exist: - Specify whether to throw an exception when the queue exists. - ''' - _validate_not_none('queue_name', queue_name) - request = HTTPRequest() - request.method = 'PUT' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + '' - request.body = _get_request_body(_convert_queue_to_xml(queue)) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_on_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_on_exist(ex) - return False - else: - self._perform_request(request) - return True - - def delete_queue(self, queue_name, fail_not_exist=False): - ''' - Deletes an existing queue. This operation will also remove all - associated state including messages in the queue. - - queue_name: - Name of the queue to delete. - fail_not_exist: - Specify whether to throw an exception if the queue doesn't exist. - ''' - _validate_not_none('queue_name', queue_name) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_not_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_not_exist(ex) - return False - else: - self._perform_request(request) - return True - - def get_queue(self, queue_name): - ''' - Retrieves an existing queue. - - queue_name: - Name of the queue. - ''' - _validate_not_none('queue_name', queue_name) - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _convert_response_to_queue(response) - - def list_queues(self): - ''' - Enumerates the queues in the service namespace. - ''' - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/$Resources/Queues' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _ETreeXmlToObject.convert_response_to_feeds( - response, _convert_etree_element_to_queue) - - def create_topic(self, topic_name, topic=None, fail_on_exist=False): - ''' - Creates a new topic. Once created, this topic resource manifest is - immutable. - - topic_name: - Name of the topic to create. - topic: - Topic object to create. - fail_on_exist: - Specify whether to throw an exception when the topic exists. - ''' - _validate_not_none('topic_name', topic_name) - request = HTTPRequest() - request.method = 'PUT' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '' - request.body = _get_request_body(_convert_topic_to_xml(topic)) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_on_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_on_exist(ex) - return False - else: - self._perform_request(request) - return True - - def delete_topic(self, topic_name, fail_not_exist=False): - ''' - Deletes an existing topic. This operation will also remove all - associated state including associated subscriptions. - - topic_name: - Name of the topic to delete. - fail_not_exist: - Specify whether throw exception when topic doesn't exist. - ''' - _validate_not_none('topic_name', topic_name) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_not_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_not_exist(ex) - return False - else: - self._perform_request(request) - return True - - def get_topic(self, topic_name): - ''' - Retrieves the description for the specified topic. - - topic_name: - Name of the topic. - ''' - _validate_not_none('topic_name', topic_name) - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _convert_response_to_topic(response) - - def list_topics(self): - ''' - Retrieves the topics in the service namespace. - ''' - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/$Resources/Topics' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _ETreeXmlToObject.convert_response_to_feeds( - response, _convert_etree_element_to_topic) - - def create_rule(self, topic_name, subscription_name, rule_name, rule=None, - fail_on_exist=False): - ''' - Creates a new rule. Once created, this rule's resource manifest is - immutable. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - rule_name: - Name of the rule. - fail_on_exist: - Specify whether to throw an exception when the rule exists. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - _validate_not_none('rule_name', rule_name) - request = HTTPRequest() - request.method = 'PUT' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '/subscriptions/' + \ - _str(subscription_name) + \ - '/rules/' + _str(rule_name) + '' - request.body = _get_request_body(_convert_rule_to_xml(rule)) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_on_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_on_exist(ex) - return False - else: - self._perform_request(request) - return True - - def delete_rule(self, topic_name, subscription_name, rule_name, - fail_not_exist=False): - ''' - Deletes an existing rule. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - rule_name: - Name of the rule to delete. DEFAULT_RULE_NAME=$Default. - Use DEFAULT_RULE_NAME to delete default rule for the subscription. - fail_not_exist: - Specify whether throw exception when rule doesn't exist. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - _validate_not_none('rule_name', rule_name) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '/subscriptions/' + \ - _str(subscription_name) + \ - '/rules/' + _str(rule_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_not_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_not_exist(ex) - return False - else: - self._perform_request(request) - return True - - def get_rule(self, topic_name, subscription_name, rule_name): - ''' - Retrieves the description for the specified rule. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - rule_name: - Name of the rule. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - _validate_not_none('rule_name', rule_name) - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '/subscriptions/' + \ - _str(subscription_name) + \ - '/rules/' + _str(rule_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _convert_response_to_rule(response) - - def list_rules(self, topic_name, subscription_name): - ''' - Retrieves the rules that exist under the specified subscription. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/' + \ - _str(topic_name) + '/subscriptions/' + \ - _str(subscription_name) + '/rules/' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _ETreeXmlToObject.convert_response_to_feeds( - response, _convert_etree_element_to_rule) - - def create_subscription(self, topic_name, subscription_name, - subscription=None, fail_on_exist=False): - ''' - Creates a new subscription. Once created, this subscription resource - manifest is immutable. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - fail_on_exist: - Specify whether throw exception when subscription exists. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - request = HTTPRequest() - request.method = 'PUT' - request.host = self._get_host() - request.path = '/' + \ - _str(topic_name) + '/subscriptions/' + _str(subscription_name) + '' - request.body = _get_request_body( - _convert_subscription_to_xml(subscription)) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_on_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_on_exist(ex) - return False - else: - self._perform_request(request) - return True - - def delete_subscription(self, topic_name, subscription_name, - fail_not_exist=False): - ''' - Deletes an existing subscription. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription to delete. - fail_not_exist: - Specify whether to throw an exception when the subscription - doesn't exist. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + \ - _str(topic_name) + '/subscriptions/' + _str(subscription_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_not_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_not_exist(ex) - return False - else: - self._perform_request(request) - return True - - def get_subscription(self, topic_name, subscription_name): - ''' - Gets an existing subscription. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/' + \ - _str(topic_name) + '/subscriptions/' + _str(subscription_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _convert_response_to_subscription(response) - - def list_subscriptions(self, topic_name): - ''' - Retrieves the subscriptions in the specified topic. - - topic_name: - Name of the topic. - ''' - _validate_not_none('topic_name', topic_name) - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '/subscriptions/' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _ETreeXmlToObject.convert_response_to_feeds( - response, _convert_etree_element_to_subscription) - - def send_topic_message(self, topic_name, message=None): - ''' - Enqueues a message into the specified topic. The limit to the number - of messages which may be present in the topic is governed by the - message size in MaxTopicSizeInBytes. If this message causes the topic - to exceed its quota, a quota exceeded error is returned and the - message will be rejected. - - topic_name: - Name of the topic. - message: - Message object containing message body and properties. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('message', message) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '/messages' - request.headers = message.add_headers(request) - request.body = _get_request_body(message.body) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def send_topic_message_batch(self, topic_name, messages=None): - ''' - Sends a batch of messages into the specified topic. The limit to the number of - messages which may be present in the topic is governed by the message - size the MaxTopicSizeInMegaBytes. If this message will cause the topic - to exceed its quota, a quota exceeded error is returned and the - message will be rejected. - - topic_name: - Name of the topic. - messages: - List of message objects containing message body and properties. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('messages', messages) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + '/messages' - request.headers.append(('Content-Type', 'application/vnd.microsoft.servicebus.json')) - request.body = _get_request_body(json.dumps([m.as_batch_body() for m in messages])) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def peek_lock_subscription_message(self, topic_name, subscription_name, - timeout='60'): - ''' - This operation is used to atomically retrieve and lock a message for - processing. The message is guaranteed not to be delivered to other - receivers during the lock duration period specified in buffer - description. Once the lock expires, the message will be available to - other receivers (on the same subscription only) during the lock - duration period specified in the topic description. Once the lock - expires, the message will be available to other receivers. In order to - complete processing of the message, the receiver should issue a delete - command with the lock ID received from this operation. To abandon - processing of the message and unlock it for other receivers, an Unlock - Message command should be issued, or the lock duration period can - expire. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - timeout: - Optional. The timeout parameter is expressed in seconds. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - request.path = '/' + \ - _str(topic_name) + '/subscriptions/' + \ - _str(subscription_name) + '/messages/head' - request.query = [('timeout', _int_or_none(timeout))] - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _create_message(response, self) - - def unlock_subscription_message(self, topic_name, subscription_name, - sequence_number, lock_token): - ''' - Unlock a message for processing by other receivers on a given - subscription. This operation deletes the lock object, causing the - message to be unlocked. A message must have first been locked by a - receiver before this operation is called. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - sequence_number: - The sequence number of the message to be unlocked as returned in - BrokerProperties['SequenceNumber'] by the Peek Message operation. - lock_token: - The ID of the lock as returned by the Peek Message operation in - BrokerProperties['LockToken'] - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - _validate_not_none('sequence_number', sequence_number) - _validate_not_none('lock_token', lock_token) - request = HTTPRequest() - request.method = 'PUT' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + \ - '/subscriptions/' + str(subscription_name) + \ - '/messages/' + _str(sequence_number) + \ - '/' + _str(lock_token) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def renew_lock_subscription_message(self, topic_name, subscription_name, - sequence_number, lock_token): - ''' - Renew the lock on an already locked message on a given - subscription. A message must have first been locked by a - receiver before this operation is called. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - sequence_number: - The sequence number of the message to be unlocked as returned in - BrokerProperties['SequenceNumber'] by the Peek Message operation. - lock_token: - The ID of the lock as returned by the Peek Message operation in - BrokerProperties['LockToken'] - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - _validate_not_none('sequence_number', sequence_number) - _validate_not_none('lock_token', lock_token) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + \ - '/subscriptions/' + str(subscription_name) + \ - '/messages/' + _str(sequence_number) + \ - '/' + _str(lock_token) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def read_delete_subscription_message(self, topic_name, subscription_name, - timeout='60'): - ''' - Read and delete a message from a subscription as an atomic operation. - This operation should be used when a best-effort guarantee is - sufficient for an application; that is, using this operation it is - possible for messages to be lost if processing fails. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - timeout: - Optional. The timeout parameter is expressed in seconds. - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + \ - '/subscriptions/' + _str(subscription_name) + \ - '/messages/head' - request.query = [('timeout', _int_or_none(timeout))] - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _create_message(response, self) - - def delete_subscription_message(self, topic_name, subscription_name, - sequence_number, lock_token): - ''' - Completes processing on a locked message and delete it from the - subscription. This operation should only be called after processing a - previously locked message is successful to maintain At-Least-Once - delivery assurances. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - sequence_number: - The sequence number of the message to be deleted as returned in - BrokerProperties['SequenceNumber'] by the Peek Message operation. - lock_token: - The ID of the lock as returned by the Peek Message operation in - BrokerProperties['LockToken'] - ''' - _validate_not_none('topic_name', topic_name) - _validate_not_none('subscription_name', subscription_name) - _validate_not_none('sequence_number', sequence_number) - _validate_not_none('lock_token', lock_token) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + _str(topic_name) + \ - '/subscriptions/' + _str(subscription_name) + \ - '/messages/' + _str(sequence_number) + \ - '/' + _str(lock_token) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def send_queue_message(self, queue_name, message=None): - ''' - Sends a message into the specified queue. The limit to the number of - messages which may be present in the queue is governed by the message - size the MaxTopicSizeInMegaBytes. If this message will cause the queue - to exceed its quota, a quota exceeded error is returned and the - message will be rejected. - - queue_name: - Name of the queue. - message: - Message object containing message body and properties. - ''' - _validate_not_none('queue_name', queue_name) - _validate_not_none('message', message) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + '/messages' - request.headers = message.add_headers(request) - request.body = _get_request_body(message.body) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def send_queue_message_batch(self, queue_name, messages=None): - ''' - Sends a batch of messages into the specified queue. The limit to the number of - messages which may be present in the topic is governed by the message - size the MaxTopicSizeInMegaBytes. If this message will cause the queue - to exceed its quota, a quota exceeded error is returned and the - message will be rejected. - - queue_name: - Name of the queue. - messages: - List of message objects containing message body and properties. - ''' - _validate_not_none('queue_name', queue_name) - _validate_not_none('messages', messages) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + '/messages' - request.headers.append(('Content-Type', 'application/vnd.microsoft.servicebus.json')) - request.body = _get_request_body(json.dumps([m.as_batch_body() for m in messages])) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def peek_lock_queue_message(self, queue_name, timeout='60'): - ''' - Automically retrieves and locks a message from a queue for processing. - The message is guaranteed not to be delivered to other receivers (on - the same subscription only) during the lock duration period specified - in the queue description. Once the lock expires, the message will be - available to other receivers. In order to complete processing of the - message, the receiver should issue a delete command with the lock ID - received from this operation. To abandon processing of the message and - unlock it for other receivers, an Unlock Message command should be - issued, or the lock duration period can expire. - - queue_name: - Name of the queue. - timeout: - Optional. The timeout parameter is expressed in seconds. - ''' - _validate_not_none('queue_name', queue_name) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + '/messages/head' - request.query = [('timeout', _int_or_none(timeout))] - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _create_message(response, self) - - def unlock_queue_message(self, queue_name, sequence_number, lock_token): - ''' - Unlocks a message for processing by other receivers on a given - queue. This operation deletes the lock object, causing the - message to be unlocked. A message must have first been locked by a - receiver before this operation is called. - - queue_name: - Name of the queue. - sequence_number: - The sequence number of the message to be unlocked as returned in - BrokerProperties['SequenceNumber'] by the Peek Message operation. - lock_token: - The ID of the lock as returned by the Peek Message operation in - BrokerProperties['LockToken'] - ''' - _validate_not_none('queue_name', queue_name) - _validate_not_none('sequence_number', sequence_number) - _validate_not_none('lock_token', lock_token) - request = HTTPRequest() - request.method = 'PUT' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + \ - '/messages/' + _str(sequence_number) + \ - '/' + _str(lock_token) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def renew_lock_queue_message(self, queue_name, sequence_number, lock_token): - ''' - Renew lock on an already locked message on a given - queue. A message must have first been locked by a - receiver before this operation is called. - - queue_name: - Name of the queue. - sequence_number: - The sequence number of the message to be unlocked as returned in - BrokerProperties['SequenceNumber'] by the Peek Message operation. - lock_token: - The ID of the lock as returned by the Peek Message operation in - BrokerProperties['LockToken'] - ''' - _validate_not_none('queue_name', queue_name) - _validate_not_none('sequence_number', sequence_number) - _validate_not_none('lock_token', lock_token) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + \ - '/messages/' + _str(sequence_number) + \ - '/' + _str(lock_token) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def read_delete_queue_message(self, queue_name, timeout='60'): - ''' - Reads and deletes a message from a queue as an atomic operation. This - operation should be used when a best-effort guarantee is sufficient - for an application; that is, using this operation it is possible for - messages to be lost if processing fails. - - queue_name: - Name of the queue. - timeout: - Optional. The timeout parameter is expressed in seconds. - ''' - _validate_not_none('queue_name', queue_name) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + '/messages/head' - request.query = [('timeout', _int_or_none(timeout))] - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _create_message(response, self) - - def delete_queue_message(self, queue_name, sequence_number, lock_token): - ''' - Completes processing on a locked message and delete it from the queue. - This operation should only be called after processing a previously - locked message is successful to maintain At-Least-Once delivery - assurances. - - queue_name: - Name of the queue. - sequence_number: - The sequence number of the message to be deleted as returned in - BrokerProperties['SequenceNumber'] by the Peek Message operation. - lock_token: - The ID of the lock as returned by the Peek Message operation in - BrokerProperties['LockToken'] - ''' - _validate_not_none('queue_name', queue_name) - _validate_not_none('sequence_number', sequence_number) - _validate_not_none('lock_token', lock_token) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + _str(queue_name) + \ - '/messages/' + _str(sequence_number) + \ - '/' + _str(lock_token) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def receive_queue_message(self, queue_name, peek_lock=True, timeout=60): - ''' - Receive a message from a queue for processing. - - queue_name: - Name of the queue. - peek_lock: - Optional. True to retrieve and lock the message. False to read and - delete the message. Default is True (lock). - timeout: - Optional. The timeout parameter is expressed in seconds. - ''' - if peek_lock: - return self.peek_lock_queue_message(queue_name, timeout) - return self.read_delete_queue_message(queue_name, timeout) - - def receive_subscription_message(self, topic_name, subscription_name, - peek_lock=True, timeout=60): - ''' - Receive a message from a subscription for processing. - - topic_name: - Name of the topic. - subscription_name: - Name of the subscription. - peek_lock: - Optional. True to retrieve and lock the message. False to read and - delete the message. Default is True (lock). - timeout: - Optional. The timeout parameter is expressed in seconds. - ''' - if peek_lock: - return self.peek_lock_subscription_message(topic_name, - subscription_name, - timeout) - return self.read_delete_subscription_message(topic_name, - subscription_name, - timeout) - - def create_event_hub(self, hub_name, hub=None, fail_on_exist=False): - ''' - Creates a new Event Hub. - - hub_name: - Name of event hub. - hub: - Optional. Event hub properties. Instance of EventHub class. - hub.message_retention_in_days: - Number of days to retain the events for this Event Hub. - hub.status: - Status of the Event Hub (enabled or disabled). - hub.user_metadata: - User metadata. - hub.partition_count: - Number of shards on the Event Hub. - fail_on_exist: - Specify whether to throw an exception when the event hub exists. - ''' - _validate_not_none('hub_name', hub_name) - request = HTTPRequest() - request.method = 'PUT' - request.host = self._get_host() - request.path = '/' + _str(hub_name) + '?api-version=2014-01' - request.body = _get_request_body(_convert_event_hub_to_xml(hub)) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_on_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_on_exist(ex) - return False - else: - self._perform_request(request) - return True - - def update_event_hub(self, hub_name, hub=None): - ''' - Updates an Event Hub. - - hub_name: - Name of event hub. - hub: - Optional. Event hub properties. Instance of EventHub class. - hub.message_retention_in_days: - Number of days to retain the events for this Event Hub. - ''' - _validate_not_none('hub_name', hub_name) - request = HTTPRequest() - request.method = 'PUT' - request.host = self._get_host() - request.path = '/' + _str(hub_name) + '?api-version=2014-01' - request.body = _get_request_body(_convert_event_hub_to_xml(hub)) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers.append(('If-Match', '*')) - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _convert_response_to_event_hub(response) - - def delete_event_hub(self, hub_name, fail_not_exist=False): - ''' - Deletes an Event Hub. This operation will also remove all associated - state. - - hub_name: - Name of the event hub to delete. - fail_not_exist: - Specify whether to throw an exception if the event hub doesn't exist. - ''' - _validate_not_none('hub_name', hub_name) - request = HTTPRequest() - request.method = 'DELETE' - request.host = self._get_host() - request.path = '/' + _str(hub_name) + '?api-version=2014-01' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - if not fail_not_exist: - try: - self._perform_request(request) - return True - except AzureHttpError as ex: - _dont_fail_not_exist(ex) - return False - else: - self._perform_request(request) - return True - - def get_event_hub(self, hub_name): - ''' - Retrieves an existing event hub. - - hub_name: - Name of the event hub. - ''' - _validate_not_none('hub_name', hub_name) - request = HTTPRequest() - request.method = 'GET' - request.host = self._get_host() - request.path = '/' + _str(hub_name) + '' - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - response = self._perform_request(request) - - return _convert_response_to_event_hub(response) - - def send_event(self, hub_name, message, device_id=None, - broker_properties=None): - ''' - Sends a new message event to an Event Hub. - ''' - _validate_not_none('hub_name', hub_name) - request = HTTPRequest() - request.method = 'POST' - request.host = self._get_host() - if device_id: - request.path = '/{0}/publishers/{1}/messages?api-version=2014-01'.format(hub_name, device_id) - else: - request.path = '/{0}/messages?api-version=2014-01'.format(hub_name) - if broker_properties: - request.headers.append( - ('BrokerProperties', str(broker_properties))) - request.body = _get_request_body(message) - request.path, request.query = self._httpclient._update_request_uri_query(request) # pylint: disable=protected-access - request.headers = self._update_service_bus_header(request) - self._perform_request(request) - - def _get_host(self): - return self.service_namespace + self.host_base - - def _perform_request(self, request): - try: - resp = self._filter(request) - except HTTPError as ex: - return _service_bus_error_handler(ex) - - return resp - - def _update_service_bus_header(self, request): - ''' Add additional headers for Service Bus. ''' - - if request.method in ['PUT', 'POST', 'MERGE', 'DELETE']: - request.headers.append(('Content-Length', str(len(request.body)))) - - # if it is not GET or HEAD request, must set content-type. - if not request.method in ['GET', 'HEAD']: - for name, _ in request.headers: - if name.lower() == 'content-type': - break - else: - request.headers.append( - ('Content-Type', - 'application/atom+xml;type=entry;charset=utf-8')) - - # Adds authorization header for authentication. - self.authentication.sign_request(request, self._httpclient) - - return request.headers - - -# Token cache for Authentication -# Shared by the different instances of ServiceBusWrapTokenAuthentication -_tokens = {} # type: Dict[str, str] - - -class ServiceBusWrapTokenAuthentication: - def __init__(self, account_key, issuer): - self.account_key = account_key - self.issuer = issuer - - def sign_request(self, request, httpclient): - request.headers.append( - ('Authorization', self._get_authorization(request, httpclient))) - - def _get_authorization(self, request, httpclient): - ''' return the signed string with token. ''' - return 'WRAP access_token="' + \ - self._get_token(request.host, request.path, httpclient) + '"' - - def _token_is_expired(self, token): # pylint: disable=no-self-use - ''' Check if token expires or not. ''' - time_pos_begin = token.find('ExpiresOn=') + len('ExpiresOn=') - time_pos_end = token.find('&', time_pos_begin) - token_expire_time = int(token[time_pos_begin:time_pos_end]) - time_now = time.mktime(time.localtime()) - - # Adding 30 seconds so the token wouldn't be expired when we send the - # token to server. - return (token_expire_time - time_now) < 30 - - def _get_token(self, host, path, httpclient): - ''' - Returns token for the request. - - host: - the Service Bus service request. - path: - the Service Bus service request. - ''' - wrap_scope = 'http://' + host + path + self.issuer + self.account_key - - # Check whether has unexpired cache, return cached token if it is still - # usable. - if wrap_scope in _tokens: - token = _tokens[wrap_scope] - if not self._token_is_expired(token): - return token - - # get token from accessconstrol server - request = HTTPRequest() - request.protocol_override = 'https' - request.host = host.replace('.servicebus.', '-sb.accesscontrol.') - request.method = 'POST' - request.path = '/WRAPv0.9' - request.body = ('wrap_name=' + url_quote(self.issuer) + - '&wrap_password=' + url_quote(self.account_key) + - '&wrap_scope=' + - url_quote('http://' + host + path)).encode('utf-8') - request.headers.append(('Content-Length', str(len(request.body)))) - resp = httpclient.perform_request(request) - - token = resp.body.decode('utf-8-sig') - token = url_unquote(token[token.find('=') + 1:token.rfind('&')]) - _tokens[wrap_scope] = token - - return token - - -class ServiceBusSASAuthentication: - def __init__(self, key_name, key_value): - self.key_name = key_name - self.key_value = key_value - self.account_key = None - self.issuer = None - - def sign_request(self, request, httpclient): - request.headers.append( - ('Authorization', self._get_authorization(request, httpclient))) - - def _get_authorization(self, request, httpclient): - uri = httpclient.get_uri(request) - uri = url_quote(uri, '').lower() - expiry = str(self._get_expiry()) - - to_sign = uri + '\n' + expiry - signature = url_quote(_sign_string(self.key_value, to_sign, False), '') - - auth_format = 'SharedAccessSignature sig={0}&se={1}&skn={2}&sr={3}' - auth = auth_format.format(signature, expiry, self.key_name, uri) - - return auth - - def _get_expiry(self): # pylint: disable=no-self-use - '''Returns the UTC datetime, in seconds since Epoch, when this signed - request expires (5 minutes from now).''' - return int(round(time.time() + 300)) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_client.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_client.py index d57f51e8b04f..b0e8d1fc67c7 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_client.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_client.py @@ -40,6 +40,7 @@ class ServiceBusClient(object): :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. .. admonition:: Example: @@ -115,6 +116,7 @@ def from_connection_string( :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. :rtype: ~azure.servicebus.ServiceBusClient .. admonition:: Example: @@ -163,6 +165,7 @@ def get_queue_sender(self, queue_name, **kwargs): transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, connection=self._connection, + user_agent=self._config.user_agent, **kwargs ) @@ -210,6 +213,7 @@ def get_queue_receiver(self, queue_name, **kwargs): transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, connection=self._connection, + user_agent=self._config.user_agent, **kwargs ) @@ -270,6 +274,7 @@ def get_queue_deadletter_receiver(self, queue_name, **kwargs): http_proxy=self._config.http_proxy, connection=self._connection, is_dead_letter_receiver=True, + user_agent=self._config.user_agent, **kwargs ) @@ -303,6 +308,7 @@ def get_topic_sender(self, topic_name, **kwargs): transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, connection=self._connection, + user_agent=self._config.user_agent, **kwargs ) @@ -356,6 +362,7 @@ def get_subscription_receiver(self, topic_name, subscription_name, **kwargs): transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, connection=self._connection, + user_agent=self._config.user_agent, **kwargs ) @@ -418,6 +425,7 @@ def get_subscription_deadletter_receiver(self, topic_name, subscription_name, ** http_proxy=self._config.http_proxy, connection=self._connection, is_dead_letter_receiver=True, + user_agent=self._config.user_agent, **kwargs ) @@ -475,6 +483,7 @@ def get_subscription_session_receiver(self, topic_name, subscription_name, sessi http_proxy=self._config.http_proxy, connection=self._connection, session_id=session_id, + user_agent=self._config.user_agent, **kwargs ) @@ -526,5 +535,6 @@ def get_queue_session_receiver(self, queue_name, session_id=None, **kwargs): session_id=session_id, transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, + user_agent=self._config.user_agent, **kwargs ) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_receiver.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_receiver.py index b3b85e6aff1e..b498eb4fbfcd 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_receiver.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_receiver.py @@ -79,6 +79,7 @@ class ServiceBusReceiver(BaseHandler, ReceiverMixin): # pylint: disable=too-man :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. :keyword int prefetch: The maximum number of messages to cache with each request to the service. This setting is only for advanced performance tuning. Increasing this value will improve message throughput performance but increase the chance that messages will expire while they are cached if they're not @@ -290,6 +291,7 @@ def from_connection_string( :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. :keyword int prefetch: The maximum number of messages to cache with each request to the service. This setting is only for advanced performance tuning. Increasing this value will improve message throughput performance but increase the chance that messages will expire while they are cached if they're not diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_sender.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_sender.py index 96d5442d741b..841b4eec7a4c 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_sender.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_sender.py @@ -18,7 +18,7 @@ OperationTimeoutError, _ServiceBusErrorPolicy, ) -from ._common.utils import create_authentication +from ._common.utils import create_authentication, copy_messages_to_sendable_if_needed from ._common.constants import ( REQUEST_RESPONSE_CANCEL_SCHEDULED_MESSAGE_OPERATION, REQUEST_RESPONSE_SCHEDULE_MESSAGE_OPERATION, @@ -68,11 +68,12 @@ def _build_schedule_request(cls, schedule_time_utc, *messages): if not isinstance(message, Message): raise ValueError("Scheduling batch messages only supports iterables containing Message Objects." " Received instead: {}".format(message.__class__.__name__)) + message = copy_messages_to_sendable_if_needed(message) message.scheduled_enqueue_time_utc = schedule_time_utc message_data = {} - message_data[MGMT_REQUEST_MESSAGE_ID] = message.properties.message_id - if message.properties.group_id: - message_data[MGMT_REQUEST_SESSION_ID] = message.properties.group_id + message_data[MGMT_REQUEST_MESSAGE_ID] = message.message_id + if message.session_id: + message_data[MGMT_REQUEST_SESSION_ID] = message.session_id if message.partition_key: message_data[MGMT_REQUEST_PARTITION_KEY] = message.partition_key if message.via_partition_key: @@ -109,6 +110,7 @@ class ServiceBusSender(BaseHandler, SenderMixin): :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. .. admonition:: Example: @@ -276,6 +278,7 @@ def from_connection_string( :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. :rtype: ~azure.servicebus.ServiceBusSenderClient .. admonition:: Example: @@ -324,6 +327,7 @@ def send_messages(self, message): :caption: Send message. """ + message = copy_messages_to_sendable_if_needed(message) try: batch = self.create_batch() batch._from_list(message) # pylint: disable=protected-access diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_session.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_session.py index c8b254eccefe..1e991efcb85b 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_session.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_session.py @@ -37,6 +37,19 @@ def __init__(self, session_id, receiver, encoding="UTF-8"): self._locked_until_utc = None # type: Optional[datetime.datetime] self.auto_renew_error = None + def _check_live(self): + if self._lock_expired: + raise SessionLockExpired(inner_exception=self.auto_renew_error) + + @property + def _lock_expired(self): + # type: () -> bool + """Whether the receivers lock on a particular session has expired. + + :rtype: bool + """ + return bool(self._locked_until_utc and self._locked_until_utc <= utc_now()) + @property def session_id(self): # type: () -> str @@ -47,15 +60,6 @@ def session_id(self): """ return self._session_id - @property - def expired(self): - # type: () -> bool - """Whether the receivers lock on a particular session has expired. - - :rtype: bool - """ - return bool(self._locked_until_utc and self._locked_until_utc <= utc_now()) - @property def locked_until_utc(self): # type: () -> Optional[datetime.datetime] @@ -65,10 +69,6 @@ def locked_until_utc(self): """ return self._locked_until_utc - def _check_live(self): - if self.expired: - raise SessionLockExpired(inner_exception=self.auto_renew_error) - class ServiceBusSession(BaseSession): """ diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_session_receiver.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_session_receiver.py index dca10d3176fe..3120a9dbe463 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_session_receiver.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_servicebus_session_receiver.py @@ -40,10 +40,6 @@ class ServiceBusSessionReceiver(ServiceBusReceiver, SessionReceiverMixin): the client connects to. :keyword str subscription_name: The path of specific Service Bus Subscription under the specified Topic the client connects to. - :keyword int prefetch: The maximum number of messages to cache with each request to the service. - The default value is 0, meaning messages will be received from the service and processed - one at a time. Increasing this value will improve message throughput performance but increase - the change that messages will expire while they are cached if they're not processed fast enough. :keyword float idle_timeout: The timeout in seconds between received messages after which the receiver will automatically shutdown. The default value is 0, meaning no timeout. :keyword mode: The mode with which messages will be retrieved from the entity. The two options @@ -66,6 +62,14 @@ class ServiceBusSessionReceiver(ServiceBusReceiver, SessionReceiverMixin): :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. + :keyword int prefetch: The maximum number of messages to cache with each request to the service. + This setting is only for advanced performance tuning. Increasing this value will improve message throughput + performance but increase the chance that messages will expire while they are cached if they're not + processed fast enough. + The default value is 0, meaning messages will be received from the service and processed one at a time. + In the case of prefetch being 0, `ServiceBusReceiver.receive` would try to cache `max_batch_size` (if provided) + within its request to the service. .. admonition:: Example: @@ -128,10 +132,6 @@ def from_connection_string( sessionful entity, otherwise it must be None. In order to receive messages from the next available session, set this to None. The default is None. :paramtype session_id: str - :keyword int prefetch: The maximum number of messages to cache with each request to the service. - The default value is 0, meaning messages will be received from the service and processed - one at a time. Increasing this value will improve message throughput performance but increase - the change that messages will expire while they are cached if they're not processed fast enough. :keyword float idle_timeout: The timeout in seconds between received messages after which the receiver will automatically shutdown. The default value is 0, meaning no timeout. :keyword bool logging_enable: Whether to output network trace logs to the logger. Default is `False`. @@ -143,6 +143,14 @@ def from_connection_string( :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. + :keyword int prefetch: The maximum number of messages to cache with each request to the service. + This setting is only for advanced performance tuning. Increasing this value will improve message throughput + performance but increase the chance that messages will expire while they are cached if they're not + processed fast enough. + The default value is 0, meaning messages will be received from the service and processed one at a time. + In the case of prefetch being 0, `ServiceBusReceiver.receive` would try to cache `max_batch_size` (if provided) + within its request to the service. :rtype: ~azure.servicebus.ServiceBusSessionReceiver .. admonition:: Example: diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/__init__.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/__init__.py index 7b24904344b2..8db9f20d7b1c 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/__init__.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/__init__.py @@ -10,7 +10,7 @@ from ._servicebus_session_receiver_async import ServiceBusSessionReceiver from ._servicebus_session_async import ServiceBusSession from ._servicebus_client_async import ServiceBusClient -from ._async_utils import AutoLockRenew +from ._async_auto_lock_renewer import AutoLockRenew __all__ = [ 'ReceivedMessage', diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_auto_lock_renewer.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_auto_lock_renewer.py new file mode 100644 index 000000000000..be006a36f1c8 --- /dev/null +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_auto_lock_renewer.py @@ -0,0 +1,138 @@ +# ------------------------------------------------------------------------ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# ------------------------------------------------------------------------- + +import asyncio +import logging +import datetime +from typing import Optional, Iterable, Any, Union, Callable, Awaitable, List + +from ._async_message import ReceivedMessage +from ._servicebus_session_async import ServiceBusSession +from .._common.utils import renewable_start_time, utc_now +from ._async_utils import get_running_loop +from ..exceptions import AutoLockRenewTimeout, AutoLockRenewFailed, ServiceBusError + +AsyncLockRenewFailureCallback = Callable[[Union[ServiceBusSession, ReceivedMessage], + Optional[Exception]], Awaitable[None]] + +_log = logging.getLogger(__name__) + + +class AutoLockRenew: + """Auto lock renew. + + An asynchronous AutoLockRenew handler for renewing the lock + tokens of messages and/or sessions in the background. + + :param loop: An async event loop. + :type loop: ~asyncio.BaseEventLoop + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_code_servicebus_async.py + :start-after: [START auto_lock_renew_message_async] + :end-before: [END auto_lock_renew_message_async] + :language: python + :dedent: 4 + :caption: Automatically renew a message lock + + .. literalinclude:: ../samples/async_samples/sample_code_servicebus_async.py + :start-after: [START auto_lock_renew_session_async] + :end-before: [END auto_lock_renew_session_async] + :language: python + :dedent: 4 + :caption: Automatically renew a session lock + + """ + + def __init__(self, loop: Optional[asyncio.BaseEventLoop] = None) -> None: + self._shutdown = asyncio.Event() + self._futures = [] # type: List[asyncio.Future] + self._loop = loop or get_running_loop() + self._sleep_time = 1 + self._renew_period = 10 + + async def __aenter__(self) -> "AutoLockRenew": + if self._shutdown.is_set(): + raise ServiceBusError("The AutoLockRenew has already been shutdown. Please create a new instance for" + " auto lock renewing.") + return self + + async def __aexit__(self, *args: Iterable[Any]) -> None: + await self.close() + + def _renewable(self, renewable: Union[ReceivedMessage, ServiceBusSession]) -> bool: + # pylint: disable=protected-access + if self._shutdown.is_set(): + return False + if hasattr(renewable, '_settled') and renewable._settled: # type: ignore + return False + if renewable._lock_expired: + return False + if not renewable._receiver._running: + return False + return True + + async def _auto_lock_renew(self, + renewable: Union[ReceivedMessage, ServiceBusSession], + starttime: datetime.datetime, + timeout: float, + on_lock_renew_failure: Optional[AsyncLockRenewFailureCallback] = None) -> None: + # pylint: disable=protected-access + _log.debug("Running async lock auto-renew for %r seconds", timeout) + error = None # type: Optional[Exception] + clean_shutdown = False # Only trigger the on_lock_renew_failure if halting was not expected (shutdown, etc) + try: + while self._renewable(renewable): + if (utc_now() - starttime) >= datetime.timedelta(seconds=timeout): + _log.debug("Reached auto lock renew timeout - letting lock expire.") + raise AutoLockRenewTimeout("Auto-renew period ({} seconds) elapsed.".format(timeout)) + if (renewable.locked_until_utc - utc_now()) <= datetime.timedelta(seconds=self._renew_period): + _log.debug("%r seconds or less until lock expires - auto renewing.", self._renew_period) + await renewable.renew_lock() + await asyncio.sleep(self._sleep_time) + clean_shutdown = not renewable._lock_expired + except AutoLockRenewTimeout as e: + error = e + renewable.auto_renew_error = e + clean_shutdown = not renewable._lock_expired + except Exception as e: # pylint: disable=broad-except + _log.debug("Failed to auto-renew lock: %r. Closing thread.", e) + error = AutoLockRenewFailed( + "Failed to auto-renew lock", + inner_exception=e) + renewable.auto_renew_error = error + finally: + if on_lock_renew_failure and not clean_shutdown: + await on_lock_renew_failure(renewable, error) + + def register(self, + renewable: Union[ReceivedMessage, ServiceBusSession], + timeout: float = 300, + on_lock_renew_failure: Optional[AsyncLockRenewFailureCallback] = None) -> None: + """Register a renewable entity for automatic lock renewal. + + :param renewable: A locked entity that needs to be renewed. + :type renewable: Union[~azure.servicebus.aio.ReceivedMessage,~azure.servicebus.aio.ServiceBusSession] + :param float timeout: A time in seconds that the lock should be maintained for. + Default value is 300 (5 minutes). + :param Optional[AsyncLockRenewFailureCallback] on_lock_renew_failure: + An async callback may be specified to be called when the lock is lost on the renewable being registered. + Default value is None (no callback). + """ + if self._shutdown.is_set(): + raise ServiceBusError("The AutoLockRenew has already been shutdown. Please create a new instance for" + " auto lock renewing.") + starttime = renewable_start_time(renewable) + renew_future = asyncio.ensure_future( + self._auto_lock_renew(renewable, starttime, timeout, on_lock_renew_failure), + loop=self._loop) + self._futures.append(renew_future) + + async def close(self) -> None: + """Cease autorenewal by cancelling any remaining open lock renewal futures.""" + self._shutdown.set() + await asyncio.wait(self._futures) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_message.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_message.py index a0280dec0768..6bd8c7122864 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_message.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_message.py @@ -22,7 +22,7 @@ _LOGGER = logging.getLogger(__name__) -class ReceivedMessage(sync_message.ReceivedMessage): +class ReceivedMessage(sync_message.ReceivedMessageBase): """A Service Bus Message received from service side. """ diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_utils.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_utils.py index b1f1050d1754..387c7e3afcad 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_utils.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_utils.py @@ -11,8 +11,6 @@ from uamqp import authentication -from .._common.utils import renewable_start_time, utc_now -from ..exceptions import AutoLockRenewTimeout, AutoLockRenewFailed, ServiceBusError from .._common.constants import ( JWT_TOKEN_SCOPE, TOKEN_TYPE_JWT, @@ -70,97 +68,3 @@ async def create_authentication(client): http_proxy=client._config.http_proxy, transport_type=client._config.transport_type, ) - - -class AutoLockRenew: - """Auto lock renew. - - An asynchronous AutoLockRenew handler for renewing the lock - tokens of messages and/or sessions in the background. - - :param loop: An async event loop. - :type loop: ~asyncio.EventLoop - - .. admonition:: Example: - - .. literalinclude:: ../samples/async_samples/sample_code_servicebus_async.py - :start-after: [START auto_lock_renew_message_async] - :end-before: [END auto_lock_renew_message_async] - :language: python - :dedent: 4 - :caption: Automatically renew a message lock - - .. literalinclude:: ../samples/async_samples/sample_code_servicebus_async.py - :start-after: [START auto_lock_renew_session_async] - :end-before: [END auto_lock_renew_session_async] - :language: python - :dedent: 4 - :caption: Automatically renew a session lock - - """ - - def __init__(self, loop=None): - self._shutdown = asyncio.Event() - self._futures = [] - self.loop = loop or get_running_loop() - self.sleep_time = 1 - self.renew_period = 10 - - async def __aenter__(self): - if self._shutdown.is_set(): - raise ServiceBusError("The AutoLockRenew has already been shutdown. Please create a new instance for" - " auto lock renewing.") - return self - - async def __aexit__(self, *args): - await self.shutdown() - - def _renewable(self, renewable): - if self._shutdown.is_set(): - return False - if hasattr(renewable, 'settled') and renewable.settled: - return False - if renewable.expired: - return False - return True - - async def _auto_lock_renew(self, renewable, starttime, timeout): - _log.debug("Running async lock auto-renew for %r seconds", timeout) - try: - while self._renewable(renewable): - if (utc_now() - starttime) >= datetime.timedelta(seconds=timeout): - _log.debug("Reached auto lock renew timeout - letting lock expire.") - raise AutoLockRenewTimeout("Auto-renew period ({} seconds) elapsed.".format(timeout)) - if (renewable.locked_until_utc - utc_now()) <= datetime.timedelta(seconds=self.renew_period): - _log.debug("%r seconds or less until lock expires - auto renewing.", self.renew_period) - await renewable.renew_lock() - await asyncio.sleep(self.sleep_time) - except AutoLockRenewTimeout as e: - renewable.auto_renew_error = e - except Exception as e: # pylint: disable=broad-except - _log.debug("Failed to auto-renew lock: %r. Closing thread.", e) - error = AutoLockRenewFailed( - "Failed to auto-renew lock", - inner_exception=e) - renewable.auto_renew_error = error - - def register(self, renewable, timeout=300): - """Register a renewable entity for automatic lock renewal. - - :param renewable: A locked entity that needs to be renewed. - :type renewable: ~azure.servicebus.aio.ReceivedMessage or - ~azure.servicebus.aio.Session - :param float timeout: A time in seconds that the lock should be maintained for. - Default value is 300 (5 minutes). - """ - if self._shutdown.is_set(): - raise ServiceBusError("The AutoLockRenew has already been shutdown. Please create a new instance for" - " auto lock renewing.") - starttime = renewable_start_time(renewable) - renew_future = asyncio.ensure_future(self._auto_lock_renew(renewable, starttime, timeout), loop=self.loop) - self._futures.append(renew_future) - - async def shutdown(self): - """Cancel remaining open lock renewal futures.""" - self._shutdown.set() - await asyncio.wait(self._futures) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_base_handler_async.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_base_handler_async.py index 2ad4335e1333..f22ed2b058b1 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_base_handler_async.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_base_handler_async.py @@ -67,7 +67,7 @@ def __init__( self._running = False self._handler = None # type: uamqp.AMQPClient self._auth_uri = None - self._properties = create_properties() + self._properties = create_properties(self._config.user_agent) async def __aenter__(self): await self._open_with_retry() diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_client_async.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_client_async.py index 3ff676ed7b07..85c7e4868d8f 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_client_async.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_client_async.py @@ -42,6 +42,7 @@ class ServiceBusClient(object): :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. .. admonition:: Example: @@ -107,6 +108,7 @@ def from_connection_string( :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. :rtype: ~azure.servicebus.aio.ServiceBusClient .. admonition:: Example: @@ -165,6 +167,7 @@ def get_queue_sender(self, queue_name, **kwargs): transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, connection=self._connection, + user_agent=self._config.user_agent, **kwargs ) @@ -211,6 +214,7 @@ def get_queue_receiver(self, queue_name, **kwargs): transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, connection=self._connection, + user_agent=self._config.user_agent, **kwargs ) @@ -271,6 +275,7 @@ def get_queue_deadletter_receiver(self, queue_name, **kwargs): http_proxy=self._config.http_proxy, connection=self._connection, is_dead_letter_receiver=True, + user_agent=self._config.user_agent, **kwargs ) @@ -304,6 +309,7 @@ def get_topic_sender(self, topic_name, **kwargs): transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, connection=self._connection, + user_agent=self._config.user_agent, **kwargs ) @@ -357,6 +363,7 @@ def get_subscription_receiver(self, topic_name, subscription_name, **kwargs): transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, connection=self._connection, + user_agent=self._config.user_agent, **kwargs ) @@ -419,6 +426,7 @@ def get_subscription_deadletter_receiver(self, topic_name, subscription_name, ** http_proxy=self._config.http_proxy, connection=self._connection, is_dead_letter_receiver=True, + user_agent=self._config.user_agent, **kwargs ) @@ -476,6 +484,7 @@ def get_subscription_session_receiver(self, topic_name, subscription_name, sessi http_proxy=self._config.http_proxy, connection=self._connection, session_id=session_id, + user_agent=self._config.user_agent, **kwargs ) @@ -526,5 +535,6 @@ def get_queue_session_receiver(self, queue_name, session_id=None, **kwargs): session_id=session_id, transport_type=self._config.transport_type, http_proxy=self._config.http_proxy, + user_agent=self._config.user_agent, **kwargs ) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_receiver_async.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_receiver_async.py index 9363f7670b54..86498c2137d8 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_receiver_async.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_receiver_async.py @@ -79,6 +79,7 @@ class ServiceBusReceiver(collections.abc.AsyncIterator, BaseHandler, ReceiverMix :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. :keyword int prefetch: The maximum number of messages to cache with each request to the service. This setting is only for advanced performance tuning. Increasing this value will improve message throughput performance but increase the chance that messages will expire while they are cached if they're not @@ -279,6 +280,7 @@ def from_connection_string( :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. :keyword int prefetch: The maximum number of messages to cache with each request to the service. This setting is only for advanced performance tuning. Increasing this value will improve message throughput performance but increase the chance that messages will expire while they are cached if they're not diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_sender_async.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_sender_async.py index c59bc36a5037..a5176d23d7f6 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_sender_async.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_sender_async.py @@ -19,6 +19,7 @@ MGMT_REQUEST_SEQUENCE_NUMBERS ) from .._common import mgmt_handlers +from .._common.utils import copy_messages_to_sendable_if_needed from ._async_utils import create_authentication if TYPE_CHECKING: @@ -57,6 +58,7 @@ class ServiceBusSender(BaseHandler, SenderMixin): :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. .. admonition:: Example: @@ -217,6 +219,7 @@ def from_connection_string( :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. :rtype: ~azure.servicebus.aio.ServiceBusSender .. admonition:: Example: @@ -265,6 +268,7 @@ async def send_messages(self, message): :caption: Send message. """ + message = copy_messages_to_sendable_if_needed(message) try: batch = await self.create_batch() batch._from_list(message) # pylint: disable=protected-access diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_session_receiver_async.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_session_receiver_async.py index 96a5ecf2a92b..b162ee273d22 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_session_receiver_async.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_servicebus_session_receiver_async.py @@ -51,10 +51,6 @@ class ServiceBusSessionReceiver(ServiceBusReceiver, SessionReceiverMixin): sessionful entity, otherwise it must be None. In order to receive messages from the next available session, set this to None. The default is None. :paramtype session_id: str - :keyword int prefetch: The maximum number of messages to cache with each request to the service. - The default value is 0 meaning messages will be received from the service and processed - one at a time. Increasing this value will improve message throughput performance but increase - the change that messages will expire while they are cached if they're not processed fast enough. :keyword float idle_timeout: The timeout in seconds between received messages after which the receiver will automatically shutdown. The default value is 0, meaning no timeout. :keyword bool logging_enable: Whether to output network trace logs to the logger. Default is `False`. @@ -66,6 +62,14 @@ class ServiceBusSessionReceiver(ServiceBusReceiver, SessionReceiverMixin): :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. + :keyword int prefetch: The maximum number of messages to cache with each request to the service. + This setting is only for advanced performance tuning. Increasing this value will improve message throughput + performance but increase the chance that messages will expire while they are cached if they're not + processed fast enough. + The default value is 0, meaning messages will be received from the service and processed one at a time. + In the case of prefetch being 0, `ServiceBusReceiver.receive` would try to cache `max_batch_size` (if provided) + within its request to the service. .. admonition:: Example: @@ -112,10 +116,6 @@ def from_connection_string( sessionful entity, otherwise it must be None. In order to receive messages from the next available session, set this to None. The default is None. :paramtype session_id: str - :keyword int prefetch: The maximum number of messages to cache with each request to the service. - The default value is 0, meaning messages will be received from the service and processed - one at a time. Increasing this value will improve message throughput performance but increase - the change that messages will expire while they are cached if they're not processed fast enough. :keyword float idle_timeout: The timeout in seconds between received messages after which the receiver will automatically shutdown. The default value is 0, meaning no timeout. :keyword bool logging_enable: Whether to output network trace logs to the logger. Default is `False`. @@ -127,6 +127,14 @@ def from_connection_string( :keyword dict http_proxy: HTTP proxy settings. This must be a dictionary with the following keys: `'proxy_hostname'` (str value) and `'proxy_port'` (int value). Additionally the following keys may also be present: `'username', 'password'`. + :keyword str user_agent: If specified, this will be added in front of the built-in user agent string. + :keyword int prefetch: The maximum number of messages to cache with each request to the service. + This setting is only for advanced performance tuning. Increasing this value will improve message throughput + performance but increase the chance that messages will expire while they are cached if they're not + processed fast enough. + The default value is 0, meaning messages will be received from the service and processed one at a time. + In the case of prefetch being 0, `ServiceBusReceiver.receive` would try to cache `max_batch_size` (if provided) + within its request to the service. :rtype: ~azure.servicebus.aio.ServiceBusSessionReceiver .. admonition:: Example: diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_management_client_async.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_management_client_async.py index 490d84d456db..9ccb33683ab7 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_management_client_async.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_management_client_async.py @@ -10,7 +10,6 @@ from datetime import timedelta from azure.core.async_paging import AsyncItemPaged -from azure.servicebus.aio.management._utils import extract_data_template, get_next_template from azure.core.exceptions import ResourceNotFoundError from azure.core.pipeline import AsyncPipeline from azure.core.pipeline.policies import HttpLoggingPolicy, DistributedTracingPolicy, ContentDecodePolicy, \ @@ -39,6 +38,8 @@ from ...management._xml_workaround_policy import ServiceBusXMLWorkaroundPolicy from ...management._handle_response_error import _handle_response_error from ...management._model_workaround import avoid_timedelta_overflow +from ._utils import extract_data_template, extract_rule_data_template, get_next_template +from ...management._utils import deserialize_rule_key_values, serialize_rule_key_values if TYPE_CHECKING: @@ -692,6 +693,7 @@ async def get_rule( "Rule('Topic: {}, Subscription: {}, Rule {}') does not exist".format( subscription_name, topic_name, rule_name)) rule_description = RuleDescription._from_internal_entity(rule_name, entry.content.rule_description) + deserialize_rule_key_values(entry_ele, rule_description) # to remove after #3535 is released. return rule_description async def create_rule( @@ -724,6 +726,7 @@ async def create_rule( ) ) request_body = create_entity_body.serialize(is_xml=True) + serialize_rule_key_values(request_body, rule) with _handle_response_error(): entry_ele = await self._impl.rule.put( topic_name, @@ -731,7 +734,8 @@ async def create_rule( rule_name, request_body, api_version=constants.API_VERSION, **kwargs) entry = RuleDescriptionEntry.deserialize(entry_ele) - result = entry.content.rule_description + result = RuleDescription._from_internal_entity(rule_name, entry.content.rule_description) + deserialize_rule_key_values(entry_ele, result) # to remove after #3535 is released. return result async def update_rule( @@ -767,6 +771,7 @@ async def update_rule( ) ) request_body = create_entity_body.serialize(is_xml=True) + serialize_rule_key_values(request_body, rule) with _handle_response_error(): await self._impl.rule.put( topic_name, @@ -824,12 +829,17 @@ def list_rules( except AttributeError: subscription_name = subscription - def entry_to_rule(entry): + def entry_to_rule(ele, entry): + """ + `ele` will be removed after #3535 is released. + """ rule = entry.content.rule_description - return RuleDescription._from_internal_entity(entry.title, rule) + rule_description = RuleDescription._from_internal_entity(entry.title, rule) + deserialize_rule_key_values(ele, rule_description) # to remove after #3535 is released. + return rule_description extract_data = functools.partial( - extract_data_template, RuleDescriptionFeed, entry_to_rule + extract_rule_data_template, RuleDescriptionFeed, entry_to_rule ) get_next = functools.partial( get_next_template, functools.partial(self._impl.list_rules, topic_name, subscription_name), **kwargs diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_shared_key_policy_async.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_shared_key_policy_async.py index b63c989fd6c1..a1b93b5e4357 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_shared_key_policy_async.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_shared_key_policy_async.py @@ -22,11 +22,11 @@ def __init__(self, endpoint: str, credential: ServiceBusSharedKeyCredential, nam self._token_expiry_on = 0 self._token = None - async def _update_token(self): + async def _update_token(self): # pylint: disable=invalid-overridden-method if self._token_expiry_on + 60 <= time.time(): # Update token if it's expiring in 60 seconds access_token, self._token_expiry_on = await self._credential.get_token(self._endpoint) self._token = access_token.decode("utf-8") - async def on_request(self, request): + async def on_request(self, request): # pylint: disable=invalid-overridden-method await self._update_token() request.http_request.headers[self._name] = self._token diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_utils.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_utils.py index 035661df3e2e..a5a20021c302 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_utils.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/management/_utils.py @@ -89,6 +89,29 @@ async def extract_data_template(feed_class, convert, feed_element): return next_link, iter(list_of_qd) # when next_page is None, AsyncPagedItem will stop fetch next page data. +async def extract_rule_data_template(feed_class, convert, feed_element): + """Special version of function extrat_data_template for Rule. + + Pass both the XML entry element and the rule instance to function `convert`. Rule needs to extract + KeyValue from XML Element and set to Rule model instance manually. The autorest/msrest serialization/deserialization + doesn't work for this special part. + After autorest is enhanced, this method can be removed. + Refer to autorest issue https://github.com/Azure/autorest/issues/3535 + """ + deserialized = feed_class.deserialize(feed_element) + next_link = None + if deserialized.link and len(deserialized.link) == 2: + next_link = deserialized.link[1].href + if deserialized.entry: + list_of_entities = [ + convert(*x) if convert else x for x in zip(feed_element.findall( + constants.ATOM_ENTRY_TAG), deserialized.entry) + ] + else: + list_of_entities = [] + return next_link, iter(list_of_entities) + + async def get_next_template(list_func, *args, start_index=0, max_page_size=100, **kwargs): """Call list_func to get the XML data and deserialize it to XML ElementTree. diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_constants.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_constants.py index 8762bd46eca9..275a584282da 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_constants.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_constants.py @@ -3,16 +3,37 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- +# Generated API parameters API_VERSION_PARAM_NAME = "api-version" API_VERSION = "2017-04" -ENTRY_TAG = "{http://www.w3.org/2005/Atom}entry" -CONTENT_TAG = "{http://www.w3.org/2005/Atom}content" -QUEUE_DESCRIPTION_TAG = "{http://schemas.microsoft.com/netservices/2010/10/servicebus/connect}QueueDescription" -COUNT_DETAILS_TAG = "{http://schemas.microsoft.com/netservices/2010/10/servicebus/connect}CountDetails" -TITLE_TAG = "{http://www.w3.org/2005/Atom}title" - ENTITY_TYPE_QUEUES = "queues" ENTITY_TYPE_TOPICS = "topics" - LIST_OP_SKIP = "$skip" LIST_OP_TOP = "$top" + +# XML namespace and tags +XML_SCHEMA_NAMESPACE = "http://www.w3.org/2001/XMLSchema" +XML_SCHEMA_INSTANCE_NAMESPACE = "http://www.w3.org/2001/XMLSchema-instance" +ATOM_ENTRY_TAG = "{http://www.w3.org/2005/Atom}entry" +ATOM_CONTENT_TAG = "{http://www.w3.org/2005/Atom}content" + +# ServiceBus XML namespace +SB_XML_NAMESPACE = "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" + +# Rule XML tags +RULE_KEY_VALUE = "KeyValueOfstringanyType" +RULE_KEY = "Key" +RULE_VALUE = "Value" +RULE_VALUE_TYPE = "type" +RULE_VALUE_TYPE_XML_PREFIX = "d6p1" +RULE_SQL_COMPATIBILITY_LEVEL = "20" +RULE_DESCRIPTION_TAG = "{http://schemas.microsoft.com/netservices/2010/10/servicebus/connect}RuleDescription" +RULE_FILTER_TAG = "{http://schemas.microsoft.com/netservices/2010/10/servicebus/connect}Filter" +RULE_FILTER_COR_PROPERTIES_TAG = "{http://schemas.microsoft.com/netservices/2010/10/servicebus/connect}Properties" +RULE_PARAMETERS_TAG = "{http://schemas.microsoft.com/netservices/2010/10/servicebus/connect}Parameters" +RULE_ACTION_TAG = "{http://schemas.microsoft.com/netservices/2010/10/servicebus/connect}Action" +RULE_KEY_VALUE_TAG = "{{{}}}{}".format(SB_XML_NAMESPACE, RULE_KEY_VALUE) +RULE_KEY_TAG = "{{{}}}{}".format(SB_XML_NAMESPACE, RULE_KEY) +RULE_VALUE_TAG = "{{{}}}{}".format(SB_XML_NAMESPACE, RULE_VALUE) +RULE_VALUE_TYPE_TAG = "{{{}}}{}".format(XML_SCHEMA_INSTANCE_NAMESPACE, RULE_VALUE_TYPE) +INT32_MAX_VALUE = 2147483647 # int32 max value used to tell if a Python int is an int32 or long in other languages diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_models.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_models.py index e3077351e58e..bc5a8b1d5438 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_models.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_models.py @@ -13,11 +13,11 @@ class AuthorizationRule(msrest.serialization.Model): """Authorization rule of an entity. - :param type: + :param type: The authorization type. :type type: str - :param claim_type: + :param claim_type: The claim type. :type claim_type: str - :param claim_value: + :param claim_value: The claim value. :type claim_value: str :param rights: Access rights of the entity. Values are 'Send', 'Listen', or 'Manage'. :type rights: list[str] @@ -35,14 +35,14 @@ class AuthorizationRule(msrest.serialization.Model): _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'i', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'claim_type': {'key': 'ClaimType', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'claim_value': {'key': 'ClaimValue', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'rights': {'key': 'Rights', 'type': '[str]', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AccessRights', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_time': {'key': 'CreatedTime', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'modified_time': {'key': 'ModifiedTime', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'key_name': {'key': 'KeyName', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'primary_key': {'key': 'PrimaryKey', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'secondary_key': {'key': 'SecondaryKey', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'claim_type': {'key': 'claimType', 'type': 'str', 'xml': {'name': 'ClaimType', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'claim_value': {'key': 'claimValue', 'type': 'str', 'xml': {'name': 'ClaimValue', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'rights': {'key': 'rights', 'type': '[str]', 'xml': {'name': 'Rights', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AccessRights', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_time': {'key': 'createdTime', 'type': 'iso-8601', 'xml': {'name': 'CreatedTime', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'modified_time': {'key': 'modifiedTime', 'type': 'iso-8601', 'xml': {'name': 'ModifiedTime', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'key_name': {'key': 'keyName', 'type': 'str', 'xml': {'name': 'KeyName', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'primary_key': {'key': 'primaryKey', 'type': 'str', 'xml': {'name': 'PrimaryKey', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'secondary_key': {'key': 'secondaryKey', 'type': 'str', 'xml': {'name': 'SecondaryKey', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'AuthorizationRule', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -68,18 +68,24 @@ class RuleFilter(msrest.serialization.Model): """RuleFilter. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: CorrelationFilter, FalseFilter, SqlFilter, TrueFilter. + sub-classes are: CorrelationFilter, SqlFilter. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, } _subtype_map = { - 'type': {'CorrelationFilter': 'CorrelationFilter', 'FalseFilter': 'FalseFilter', 'SqlFilter': 'SqlFilter', 'TrueFilter': 'TrueFilter'} + 'type': {'CorrelationFilter': 'CorrelationFilter', 'SqlFilter': 'SqlFilter'} } _xml_map = { 'name': 'Filter', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -96,7 +102,9 @@ def __init__( class CorrelationFilter(RuleFilter): """CorrelationFilter. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str :param correlation_id: :type correlation_id: str @@ -118,17 +126,21 @@ class CorrelationFilter(RuleFilter): :type properties: list[~azure.servicebus.management._generated.models.KeyValue] """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'correlation_id': {'key': 'CorrelationId', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_id': {'key': 'MessageId', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'to': {'key': 'To', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'reply_to': {'key': 'ReplyTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'label': {'key': 'Label', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'session_id': {'key': 'SessionId', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'reply_to_session_id': {'key': 'ReplyToSessionId', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'content_type': {'key': 'ContentType', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'properties': {'key': 'Properties', 'type': '[KeyValue]', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'correlation_id': {'key': 'correlationId', 'type': 'str', 'xml': {'name': 'CorrelationId', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_id': {'key': 'messageId', 'type': 'str', 'xml': {'name': 'MessageId', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'to': {'key': 'to', 'type': 'str', 'xml': {'name': 'To', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'reply_to': {'key': 'replyTo', 'type': 'str', 'xml': {'name': 'ReplyTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'label': {'key': 'label', 'type': 'str', 'xml': {'name': 'Label', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'session_id': {'key': 'sessionId', 'type': 'str', 'xml': {'name': 'SessionId', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'reply_to_session_id': {'key': 'replyToSessionId', 'type': 'str', 'xml': {'name': 'ReplyToSessionId', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'content_type': {'key': 'contentType', 'type': 'str', 'xml': {'name': 'ContentType', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'properties': {'key': 'properties', 'type': '[KeyValue]', 'xml': {'name': 'Properties', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } def __init__( @@ -181,7 +193,7 @@ class CreateQueueBodyContent(msrest.serialization.Model): _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True}}, - 'queue_description': {'key': 'QueueDescription', 'type': 'QueueDescription'}, + 'queue_description': {'key': 'queueDescription', 'type': 'QueueDescription'}, } _xml_map = { 'ns': 'http://www.w3.org/2005/Atom' @@ -197,7 +209,7 @@ def __init__( class CreateRuleBody(msrest.serialization.Model): - """The request body for creating a topic. + """The request body for creating a rule. :param content: RuleDescription for the new Rule. :type content: ~azure.servicebus.management._generated.models.CreateRuleBodyContent @@ -229,7 +241,7 @@ class CreateRuleBodyContent(msrest.serialization.Model): _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True}}, - 'rule_description': {'key': 'RuleDescription', 'type': 'RuleDescription'}, + 'rule_description': {'key': 'ruleDescription', 'type': 'RuleDescription'}, } _xml_map = { 'ns': 'http://www.w3.org/2005/Atom' @@ -245,9 +257,9 @@ def __init__( class CreateSubscriptionBody(msrest.serialization.Model): - """The request body for creating a topic. + """The request body for creating a subscription. - :param content: TopicDescription for the new topic. + :param content: SubscriptionDescription for the new subscription. :type content: ~azure.servicebus.management._generated.models.CreateSubscriptionBodyContent """ @@ -267,18 +279,18 @@ def __init__( class CreateSubscriptionBodyContent(msrest.serialization.Model): - """TopicDescription for the new topic. + """SubscriptionDescription for the new subscription. :param type: MIME type of content. :type type: str - :param subscription_description: Topic information to create. + :param subscription_description: Subscription information to create. :type subscription_description: ~azure.servicebus.management._generated.models.SubscriptionDescription """ _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True}}, - 'subscription_description': {'key': 'SubscriptionDescription', 'type': 'SubscriptionDescription'}, + 'subscription_description': {'key': 'subscriptionDescription', 'type': 'SubscriptionDescription'}, } _xml_map = { 'ns': 'http://www.w3.org/2005/Atom' @@ -326,7 +338,7 @@ class CreateTopicBodyContent(msrest.serialization.Model): _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True}}, - 'topic_description': {'key': 'TopicDescription', 'type': 'TopicDescription'}, + 'topic_description': {'key': 'topicDescription', 'type': 'TopicDescription'}, } _xml_map = { 'ns': 'http://www.w3.org/2005/Atom' @@ -347,10 +359,16 @@ class RuleAction(msrest.serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: EmptyRuleAction, SqlRuleAction. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, } @@ -373,10 +391,16 @@ def __init__( class EmptyRuleAction(RuleAction): """EmptyRuleAction. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, } @@ -389,18 +413,81 @@ def __init__( self.type = 'EmptyRuleAction' -class FalseFilter(RuleFilter): +class SqlFilter(RuleFilter): + """SqlFilter. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: FalseFilter, TrueFilter. + + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. + :type type: str + :param sql_expression: + :type sql_expression: str + :param compatibility_level: + :type compatibility_level: str + :param parameters: + :type parameters: list[~azure.servicebus.management._generated.models.KeyValue] + :param requires_preprocessing: + :type requires_preprocessing: bool + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, + 'sql_expression': {'key': 'sqlExpression', 'type': 'str', 'xml': {'name': 'SqlExpression', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'compatibility_level': {'key': 'compatibilityLevel', 'type': 'str', 'xml': {'name': 'CompatibilityLevel', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'parameters': {'key': 'parameters', 'type': '[KeyValue]', 'xml': {'name': 'Parameters', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_preprocessing': {'key': 'requiresPreprocessing', 'type': 'bool', 'xml': {'name': 'RequiresPreprocessing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + } + + _subtype_map = { + 'type': {'FalseFilter': 'FalseFilter', 'TrueFilter': 'TrueFilter'} + } + + def __init__( + self, + **kwargs + ): + super(SqlFilter, self).__init__(**kwargs) + self.type = 'SqlFilter' + self.sql_expression = kwargs.get('sql_expression', None) + self.compatibility_level = kwargs.get('compatibility_level', "20") + self.parameters = kwargs.get('parameters', None) + self.requires_preprocessing = kwargs.get('requires_preprocessing', None) + + +class FalseFilter(SqlFilter): """FalseFilter. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str :param sql_expression: :type sql_expression: str + :param compatibility_level: + :type compatibility_level: str + :param parameters: + :type parameters: list[~azure.servicebus.management._generated.models.KeyValue] + :param requires_preprocessing: + :type requires_preprocessing: bool """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'sql_expression': {'key': 'SqlExpression', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'sql_expression': {'key': 'sqlExpression', 'type': 'str', 'xml': {'name': 'SqlExpression', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'compatibility_level': {'key': 'compatibilityLevel', 'type': 'str', 'xml': {'name': 'CompatibilityLevel', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'parameters': {'key': 'parameters', 'type': '[KeyValue]', 'xml': {'name': 'Parameters', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_preprocessing': {'key': 'requiresPreprocessing', 'type': 'bool', 'xml': {'name': 'RequiresPreprocessing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } def __init__( @@ -409,11 +496,10 @@ def __init__( ): super(FalseFilter, self).__init__(**kwargs) self.type = 'FalseFilter' - self.sql_expression = kwargs.get('sql_expression', "1 != 1") class KeyValue(msrest.serialization.Model): - """KeyValue. + """Key Values of custom properties. :param key: :type key: str @@ -422,8 +508,8 @@ class KeyValue(msrest.serialization.Model): """ _attribute_map = { - 'key': {'key': 'Key', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'value': {'key': 'Value', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'key': {'key': 'key', 'type': 'str', 'xml': {'name': 'Key', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'value': {'key': 'value', 'type': 'str', 'xml': {'name': 'Value', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'KeyValueOfstringanyType', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -455,11 +541,11 @@ class MessageCountDetails(msrest.serialization.Model): """ _attribute_map = { - 'active_message_count': {'key': 'ActiveMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, - 'dead_letter_message_count': {'key': 'DeadLetterMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, - 'scheduled_message_count': {'key': 'ScheduledMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, - 'transfer_dead_letter_message_count': {'key': 'TransferDeadLetterMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, - 'transfer_message_count': {'key': 'TransferMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'active_message_count': {'key': 'activeMessageCount', 'type': 'int', 'xml': {'name': 'ActiveMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'dead_letter_message_count': {'key': 'deadLetterMessageCount', 'type': 'int', 'xml': {'name': 'DeadLetterMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'scheduled_message_count': {'key': 'scheduledMessageCount', 'type': 'int', 'xml': {'name': 'ScheduledMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'transfer_dead_letter_message_count': {'key': 'transferDeadLetterMessageCount', 'type': 'int', 'xml': {'name': 'TransferDeadLetterMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'transfer_message_count': {'key': 'transferMessageCount', 'type': 'int', 'xml': {'name': 'TransferMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, } _xml_map = { 'name': 'CountDetails', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -499,13 +585,13 @@ class NamespaceProperties(msrest.serialization.Model): """ _attribute_map = { - 'alias': {'key': 'Alias', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_time': {'key': 'CreatedTime', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'messaging_sku': {'key': 'MessagingSku', 'type': 'str', 'xml': {'name': 'MessagingSKU', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'messaging_units': {'key': 'MessagingUnits', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'modified_time': {'key': 'ModifiedTime', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'name': {'key': 'Name', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'namespace_type': {'key': 'NamespaceType', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'alias': {'key': 'alias', 'type': 'str', 'xml': {'name': 'Alias', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_time': {'key': 'createdTime', 'type': 'iso-8601', 'xml': {'name': 'CreatedTime', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'messaging_sku': {'key': 'messagingSku', 'type': 'str', 'xml': {'name': 'MessagingSKU', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'messaging_units': {'key': 'messagingUnits', 'type': 'int', 'xml': {'name': 'MessagingUnits', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'modified_time': {'key': 'modifiedTime', 'type': 'iso-8601', 'xml': {'name': 'ModifiedTime', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'name': {'key': 'name', 'type': 'str', 'xml': {'name': 'Name', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'namespace_type': {'key': 'namespaceType', 'type': 'str', 'xml': {'name': 'NamespaceType', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'NamespaceInfo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -602,7 +688,7 @@ class QueueDescription(msrest.serialization.Model): :type lock_duration: ~datetime.timedelta :param max_size_in_megabytes: The maximum size of the queue in megabytes, which is the size of memory allocated for the queue. - :type max_size_in_megabytes: int + :type max_size_in_megabytes: long :param requires_duplicate_detection: A value indicating if this queue requires duplicate detection. :type requires_duplicate_detection: bool @@ -646,7 +732,7 @@ class QueueDescription(msrest.serialization.Model): :type user_metadata: str :param created_at: The exact time the queue was created. :type created_at: ~datetime.datetime - :param updated_at: The exact time a message was updated in the queue. + :param updated_at: The exact time the entity description was last updated. :type updated_at: ~datetime.datetime :param accessed_at: Last time a message was sent, or the last time there was a receive request to this queue. @@ -674,32 +760,32 @@ class QueueDescription(msrest.serialization.Model): """ _attribute_map = { - 'lock_duration': {'key': 'LockDuration', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'max_size_in_megabytes': {'key': 'MaxSizeInMegabytes', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'requires_duplicate_detection': {'key': 'RequiresDuplicateDetection', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'requires_session': {'key': 'RequiresSession', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'default_message_time_to_live': {'key': 'DefaultMessageTimeToLive', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'dead_lettering_on_message_expiration': {'key': 'DeadLetteringOnMessageExpiration', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'duplicate_detection_history_time_window': {'key': 'DuplicateDetectionHistoryTimeWindow', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'max_delivery_count': {'key': 'MaxDeliveryCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_batched_operations': {'key': 'EnableBatchedOperations', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'size_in_bytes': {'key': 'SizeInBytes', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count': {'key': 'MessageCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'is_anonymous_accessible': {'key': 'IsAnonymousAccessible', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'authorization_rules': {'key': 'AuthorizationRules', 'type': '[AuthorizationRule]', 'xml': {'name': 'AuthorizationRules', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AuthorizationRule', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'status': {'key': 'Status', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'forward_to': {'key': 'ForwardTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'user_metadata': {'key': 'UserMetadata', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_at': {'key': 'CreatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'updated_at': {'key': 'UpdatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'accessed_at': {'key': 'AccessedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'support_ordering': {'key': 'SupportOrdering', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count_details': {'key': 'MessageCountDetails', 'type': 'MessageCountDetails'}, - 'auto_delete_on_idle': {'key': 'AutoDeleteOnIdle', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_partitioning': {'key': 'EnablePartitioning', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'entity_availability_status': {'key': 'EntityAvailabilityStatus', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_express': {'key': 'EnableExpress', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'forward_dead_lettered_messages_to': {'key': 'ForwardDeadLetteredMessagesTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'lock_duration': {'key': 'lockDuration', 'type': 'duration', 'xml': {'name': 'LockDuration', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'max_size_in_megabytes': {'key': 'maxSizeInMegabytes', 'type': 'long', 'xml': {'name': 'MaxSizeInMegabytes', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_duplicate_detection': {'key': 'requiresDuplicateDetection', 'type': 'bool', 'xml': {'name': 'RequiresDuplicateDetection', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_session': {'key': 'requiresSession', 'type': 'bool', 'xml': {'name': 'RequiresSession', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'default_message_time_to_live': {'key': 'defaultMessageTimeToLive', 'type': 'duration', 'xml': {'name': 'DefaultMessageTimeToLive', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'dead_lettering_on_message_expiration': {'key': 'deadLetteringOnMessageExpiration', 'type': 'bool', 'xml': {'name': 'DeadLetteringOnMessageExpiration', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'duplicate_detection_history_time_window': {'key': 'duplicateDetectionHistoryTimeWindow', 'type': 'duration', 'xml': {'name': 'DuplicateDetectionHistoryTimeWindow', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'max_delivery_count': {'key': 'maxDeliveryCount', 'type': 'int', 'xml': {'name': 'MaxDeliveryCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_batched_operations': {'key': 'enableBatchedOperations', 'type': 'bool', 'xml': {'name': 'EnableBatchedOperations', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'size_in_bytes': {'key': 'sizeInBytes', 'type': 'int', 'xml': {'name': 'SizeInBytes', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count': {'key': 'messageCount', 'type': 'int', 'xml': {'name': 'MessageCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'is_anonymous_accessible': {'key': 'isAnonymousAccessible', 'type': 'bool', 'xml': {'name': 'IsAnonymousAccessible', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'authorization_rules': {'key': 'authorizationRules', 'type': '[AuthorizationRule]', 'xml': {'name': 'AuthorizationRules', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AuthorizationRule', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'status': {'key': 'status', 'type': 'str', 'xml': {'name': 'Status', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'forward_to': {'key': 'forwardTo', 'type': 'str', 'xml': {'name': 'ForwardTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'user_metadata': {'key': 'userMetadata', 'type': 'str', 'xml': {'name': 'UserMetadata', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601', 'xml': {'name': 'CreatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'updated_at': {'key': 'updatedAt', 'type': 'iso-8601', 'xml': {'name': 'UpdatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'accessed_at': {'key': 'accessedAt', 'type': 'iso-8601', 'xml': {'name': 'AccessedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'support_ordering': {'key': 'supportOrdering', 'type': 'bool', 'xml': {'name': 'SupportOrdering', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count_details': {'key': 'messageCountDetails', 'type': 'MessageCountDetails'}, + 'auto_delete_on_idle': {'key': 'autoDeleteOnIdle', 'type': 'duration', 'xml': {'name': 'AutoDeleteOnIdle', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_partitioning': {'key': 'enablePartitioning', 'type': 'bool', 'xml': {'name': 'EnablePartitioning', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'entity_availability_status': {'key': 'entityAvailabilityStatus', 'type': 'str', 'xml': {'name': 'EntityAvailabilityStatus', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_express': {'key': 'enableExpress', 'type': 'bool', 'xml': {'name': 'EnableExpress', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'forward_dead_lettered_messages_to': {'key': 'forwardDeadLetteredMessagesTo', 'type': 'str', 'xml': {'name': 'ForwardDeadLetteredMessagesTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'QueueDescription', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -863,7 +949,7 @@ class ResponseAuthor(msrest.serialization.Model): 'name': {'key': 'name', 'type': 'str', 'xml': {'ns': 'http://www.w3.org/2005/Atom'}}, } _xml_map = { - 'ns': 'http://www.w3.org/2005/Atom' + 'name': 'author', 'ns': 'http://www.w3.org/2005/Atom' } def __init__( @@ -914,13 +1000,13 @@ class RuleDescription(msrest.serialization.Model): """ _attribute_map = { - 'filter': {'key': 'Filter', 'type': 'RuleFilter'}, - 'action': {'key': 'Action', 'type': 'RuleAction'}, - 'created_at': {'key': 'CreatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'name': {'key': 'Name', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'filter': {'key': 'filter', 'type': 'RuleFilter'}, + 'action': {'key': 'action', 'type': 'RuleAction'}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601', 'xml': {'name': 'CreatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'name': {'key': 'name', 'type': 'str', 'xml': {'name': 'Name', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { - 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' + 'name': 'RuleDescription', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' } def __init__( @@ -979,7 +1065,7 @@ def __init__( class RuleDescriptionEntryContent(msrest.serialization.Model): """The RuleDescription. - :param type: Type of content in queue response. + :param type: Type of content in rule response. :type type: str :param rule_description: :type rule_description: ~azure.servicebus.management._generated.models.RuleDescription @@ -1050,8 +1136,8 @@ class ServiceBusManagementError(msrest.serialization.Model): """ _attribute_map = { - 'code': {'key': 'Code', 'type': 'int'}, - 'detail': {'key': 'Detail', 'type': 'str'}, + 'code': {'key': 'code', 'type': 'int', 'xml': {'name': 'Code'}}, + 'detail': {'key': 'detail', 'type': 'str', 'xml': {'name': 'Detail'}}, } def __init__( @@ -1063,41 +1149,33 @@ def __init__( self.detail = kwargs.get('detail', None) -class SqlFilter(RuleFilter): - """SqlFilter. - - :param type: Constant filled by server. - :type type: str - :param sql_expression: - :type sql_expression: str - """ - - _attribute_map = { - 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'sql_expression': {'key': 'SqlExpression', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - } - - def __init__( - self, - **kwargs - ): - super(SqlFilter, self).__init__(**kwargs) - self.type = 'SqlFilter' - self.sql_expression = kwargs.get('sql_expression', None) - - class SqlRuleAction(RuleAction): """SqlRuleAction. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str :param sql_expression: :type sql_expression: str + :param compatibility_level: + :type compatibility_level: str + :param parameters: + :type parameters: list[~azure.servicebus.management._generated.models.KeyValue] + :param requires_preprocessing: + :type requires_preprocessing: bool """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'sql_expression': {'key': 'SqlExpression', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'sql_expression': {'key': 'sqlExpression', 'type': 'str', 'xml': {'name': 'SqlExpression', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'compatibility_level': {'key': 'compatibilityLevel', 'type': 'str', 'xml': {'name': 'CompatibilityLevel', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'parameters': {'key': 'parameters', 'type': '[KeyValue]', 'xml': {'name': 'Parameters', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_preprocessing': {'key': 'requiresPreprocessing', 'type': 'bool', 'xml': {'name': 'RequiresPreprocessing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } def __init__( @@ -1107,6 +1185,9 @@ def __init__( super(SqlRuleAction, self).__init__(**kwargs) self.type = 'SqlRuleAction' self.sql_expression = kwargs.get('sql_expression', None) + self.compatibility_level = kwargs.get('compatibility_level', "20") + self.parameters = kwargs.get('parameters', None) + self.requires_preprocessing = kwargs.get('requires_preprocessing', None) class SubscriptionDescription(msrest.serialization.Model): @@ -1116,8 +1197,8 @@ class SubscriptionDescription(msrest.serialization.Model): that the message is locked for other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute. :type lock_duration: ~datetime.timedelta - :param requires_session: A value that indicates whether the queue supports the concept of - sessions. + :param requires_session: A value that indicates whether the subscription supports the concept + of sessions. :type requires_session: bool :param default_message_time_to_live: ISO 8601 default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service @@ -1168,24 +1249,24 @@ class SubscriptionDescription(msrest.serialization.Model): """ _attribute_map = { - 'lock_duration': {'key': 'LockDuration', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'requires_session': {'key': 'RequiresSession', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'default_message_time_to_live': {'key': 'DefaultMessageTimeToLive', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'dead_lettering_on_message_expiration': {'key': 'DeadLetteringOnMessageExpiration', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'dead_lettering_on_filter_evaluation_exceptions': {'key': 'DeadLetteringOnFilterEvaluationExceptions', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count': {'key': 'MessageCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'max_delivery_count': {'key': 'MaxDeliveryCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_batched_operations': {'key': 'EnableBatchedOperations', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'status': {'key': 'Status', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'forward_to': {'key': 'ForwardTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_at': {'key': 'CreatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'updated_at': {'key': 'UpdatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'accessed_at': {'key': 'AccessedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count_details': {'key': 'MessageCountDetails', 'type': 'MessageCountDetails'}, - 'user_metadata': {'key': 'UserMetadata', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'forward_dead_lettered_messages_to': {'key': 'ForwardDeadLetteredMessagesTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'auto_delete_on_idle': {'key': 'AutoDeleteOnIdle', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'entity_availability_status': {'key': 'EntityAvailabilityStatus', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'lock_duration': {'key': 'lockDuration', 'type': 'duration', 'xml': {'name': 'LockDuration', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_session': {'key': 'requiresSession', 'type': 'bool', 'xml': {'name': 'RequiresSession', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'default_message_time_to_live': {'key': 'defaultMessageTimeToLive', 'type': 'duration', 'xml': {'name': 'DefaultMessageTimeToLive', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'dead_lettering_on_message_expiration': {'key': 'deadLetteringOnMessageExpiration', 'type': 'bool', 'xml': {'name': 'DeadLetteringOnMessageExpiration', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'dead_lettering_on_filter_evaluation_exceptions': {'key': 'deadLetteringOnFilterEvaluationExceptions', 'type': 'bool', 'xml': {'name': 'DeadLetteringOnFilterEvaluationExceptions', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count': {'key': 'messageCount', 'type': 'int', 'xml': {'name': 'MessageCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'max_delivery_count': {'key': 'maxDeliveryCount', 'type': 'int', 'xml': {'name': 'MaxDeliveryCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_batched_operations': {'key': 'enableBatchedOperations', 'type': 'bool', 'xml': {'name': 'EnableBatchedOperations', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'status': {'key': 'status', 'type': 'str', 'xml': {'name': 'Status', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'forward_to': {'key': 'forwardTo', 'type': 'str', 'xml': {'name': 'ForwardTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601', 'xml': {'name': 'CreatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'updated_at': {'key': 'updatedAt', 'type': 'iso-8601', 'xml': {'name': 'UpdatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'accessed_at': {'key': 'accessedAt', 'type': 'iso-8601', 'xml': {'name': 'AccessedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count_details': {'key': 'messageCountDetails', 'type': 'MessageCountDetails'}, + 'user_metadata': {'key': 'userMetadata', 'type': 'str', 'xml': {'name': 'UserMetadata', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'forward_dead_lettered_messages_to': {'key': 'forwardDeadLetteredMessagesTo', 'type': 'str', 'xml': {'name': 'ForwardDeadLetteredMessagesTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'auto_delete_on_idle': {'key': 'autoDeleteOnIdle', 'type': 'duration', 'xml': {'name': 'AutoDeleteOnIdle', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'entity_availability_status': {'key': 'entityAvailabilityStatus', 'type': 'str', 'xml': {'name': 'EntityAvailabilityStatus', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'SubscriptionDescription', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -1262,7 +1343,7 @@ def __init__( class SubscriptionDescriptionEntryContent(msrest.serialization.Model): """The SubscriptionDescription. - :param type: Type of content in queue response. + :param type: Type of content in subscription response. :type type: str :param subscription_description: Description of a Service Bus subscription resource. :type subscription_description: @@ -1383,35 +1464,35 @@ class TopicDescription(msrest.serialization.Model): subscription is to be partitioned. :type enable_subscription_partitioning: bool :param enable_express: A value that indicates whether Express Entities are enabled. An express - queue holds a message in memory temporarily before writing it to persistent storage. + topic holds a message in memory temporarily before writing it to persistent storage. :type enable_express: bool :param user_metadata: Metadata associated with the topic. :type user_metadata: str """ _attribute_map = { - 'default_message_time_to_live': {'key': 'DefaultMessageTimeToLive', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'max_size_in_megabytes': {'key': 'MaxSizeInMegabytes', 'type': 'long', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'requires_duplicate_detection': {'key': 'RequiresDuplicateDetection', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'duplicate_detection_history_time_window': {'key': 'DuplicateDetectionHistoryTimeWindow', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_batched_operations': {'key': 'EnableBatchedOperations', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'size_in_bytes': {'key': 'SizeInBytes', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'filtering_messages_before_publishing': {'key': 'FilteringMessagesBeforePublishing', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'is_anonymous_accessible': {'key': 'IsAnonymousAccessible', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'authorization_rules': {'key': 'AuthorizationRules', 'type': '[AuthorizationRule]', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AuthorizationRule', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'status': {'key': 'Status', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_at': {'key': 'CreatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'updated_at': {'key': 'UpdatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'accessed_at': {'key': 'AccessedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'support_ordering': {'key': 'SupportOrdering', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count_details': {'key': 'MessageCountDetails', 'type': 'MessageCountDetails'}, - 'subscription_count': {'key': 'SubscriptionCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'auto_delete_on_idle': {'key': 'AutoDeleteOnIdle', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_partitioning': {'key': 'EnablePartitioning', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'entity_availability_status': {'key': 'EntityAvailabilityStatus', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_subscription_partitioning': {'key': 'EnableSubscriptionPartitioning', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_express': {'key': 'EnableExpress', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'user_metadata': {'key': 'UserMetadata', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'default_message_time_to_live': {'key': 'defaultMessageTimeToLive', 'type': 'duration', 'xml': {'name': 'DefaultMessageTimeToLive', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'max_size_in_megabytes': {'key': 'maxSizeInMegabytes', 'type': 'long', 'xml': {'name': 'MaxSizeInMegabytes', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_duplicate_detection': {'key': 'requiresDuplicateDetection', 'type': 'bool', 'xml': {'name': 'RequiresDuplicateDetection', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'duplicate_detection_history_time_window': {'key': 'duplicateDetectionHistoryTimeWindow', 'type': 'duration', 'xml': {'name': 'DuplicateDetectionHistoryTimeWindow', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_batched_operations': {'key': 'enableBatchedOperations', 'type': 'bool', 'xml': {'name': 'EnableBatchedOperations', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'size_in_bytes': {'key': 'sizeInBytes', 'type': 'int', 'xml': {'name': 'SizeInBytes', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'filtering_messages_before_publishing': {'key': 'filteringMessagesBeforePublishing', 'type': 'bool', 'xml': {'name': 'FilteringMessagesBeforePublishing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'is_anonymous_accessible': {'key': 'isAnonymousAccessible', 'type': 'bool', 'xml': {'name': 'IsAnonymousAccessible', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'authorization_rules': {'key': 'authorizationRules', 'type': '[AuthorizationRule]', 'xml': {'name': 'AuthorizationRules', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AuthorizationRule', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'status': {'key': 'status', 'type': 'str', 'xml': {'name': 'Status', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601', 'xml': {'name': 'CreatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'updated_at': {'key': 'updatedAt', 'type': 'iso-8601', 'xml': {'name': 'UpdatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'accessed_at': {'key': 'accessedAt', 'type': 'iso-8601', 'xml': {'name': 'AccessedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'support_ordering': {'key': 'supportOrdering', 'type': 'bool', 'xml': {'name': 'SupportOrdering', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count_details': {'key': 'messageCountDetails', 'type': 'MessageCountDetails'}, + 'subscription_count': {'key': 'subscriptionCount', 'type': 'int', 'xml': {'name': 'SubscriptionCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'auto_delete_on_idle': {'key': 'autoDeleteOnIdle', 'type': 'duration', 'xml': {'name': 'AutoDeleteOnIdle', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_partitioning': {'key': 'enablePartitioning', 'type': 'bool', 'xml': {'name': 'EnablePartitioning', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'entity_availability_status': {'key': 'entityAvailabilityStatus', 'type': 'str', 'xml': {'name': 'EntityAvailabilityStatus', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_subscription_partitioning': {'key': 'enableSubscriptionPartitioning', 'type': 'bool', 'xml': {'name': 'EnableSubscriptionPartitioning', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_express': {'key': 'enableExpress', 'type': 'bool', 'xml': {'name': 'EnableExpress', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'user_metadata': {'key': 'userMetadata', 'type': 'str', 'xml': {'name': 'UserMetadata', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'TopicDescription', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -1499,7 +1580,7 @@ def __init__( class TopicDescriptionEntryContent(msrest.serialization.Model): """The TopicDescription. - :param type: Type of content in queue response. + :param type: Type of content in topic response. :type type: str :param topic_description: Description of a Service Bus topic resource. :type topic_description: ~azure.servicebus.management._generated.models.TopicDescription @@ -1560,18 +1641,33 @@ def __init__( self.entry = kwargs.get('entry', None) -class TrueFilter(RuleFilter): +class TrueFilter(SqlFilter): """TrueFilter. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str :param sql_expression: :type sql_expression: str + :param compatibility_level: + :type compatibility_level: str + :param parameters: + :type parameters: list[~azure.servicebus.management._generated.models.KeyValue] + :param requires_preprocessing: + :type requires_preprocessing: bool """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'sql_expression': {'key': 'SqlExpression', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'sql_expression': {'key': 'sqlExpression', 'type': 'str', 'xml': {'name': 'SqlExpression', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'compatibility_level': {'key': 'compatibilityLevel', 'type': 'str', 'xml': {'name': 'CompatibilityLevel', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'parameters': {'key': 'parameters', 'type': '[KeyValue]', 'xml': {'name': 'Parameters', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_preprocessing': {'key': 'requiresPreprocessing', 'type': 'bool', 'xml': {'name': 'RequiresPreprocessing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } def __init__( @@ -1580,4 +1676,3 @@ def __init__( ): super(TrueFilter, self).__init__(**kwargs) self.type = 'TrueFilter' - self.sql_expression = kwargs.get('sql_expression', "1 = 1") diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_models_py3.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_models_py3.py index f2fce56d1769..656f86cc8284 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_models_py3.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_models_py3.py @@ -18,11 +18,11 @@ class AuthorizationRule(msrest.serialization.Model): """Authorization rule of an entity. - :param type: + :param type: The authorization type. :type type: str - :param claim_type: + :param claim_type: The claim type. :type claim_type: str - :param claim_value: + :param claim_value: The claim value. :type claim_value: str :param rights: Access rights of the entity. Values are 'Send', 'Listen', or 'Manage'. :type rights: list[str] @@ -40,14 +40,14 @@ class AuthorizationRule(msrest.serialization.Model): _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'i', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'claim_type': {'key': 'ClaimType', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'claim_value': {'key': 'ClaimValue', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'rights': {'key': 'Rights', 'type': '[str]', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AccessRights', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_time': {'key': 'CreatedTime', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'modified_time': {'key': 'ModifiedTime', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'key_name': {'key': 'KeyName', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'primary_key': {'key': 'PrimaryKey', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'secondary_key': {'key': 'SecondaryKey', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'claim_type': {'key': 'claimType', 'type': 'str', 'xml': {'name': 'ClaimType', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'claim_value': {'key': 'claimValue', 'type': 'str', 'xml': {'name': 'ClaimValue', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'rights': {'key': 'rights', 'type': '[str]', 'xml': {'name': 'Rights', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AccessRights', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_time': {'key': 'createdTime', 'type': 'iso-8601', 'xml': {'name': 'CreatedTime', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'modified_time': {'key': 'modifiedTime', 'type': 'iso-8601', 'xml': {'name': 'ModifiedTime', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'key_name': {'key': 'keyName', 'type': 'str', 'xml': {'name': 'KeyName', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'primary_key': {'key': 'primaryKey', 'type': 'str', 'xml': {'name': 'PrimaryKey', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'secondary_key': {'key': 'secondaryKey', 'type': 'str', 'xml': {'name': 'SecondaryKey', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'AuthorizationRule', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -83,18 +83,24 @@ class RuleFilter(msrest.serialization.Model): """RuleFilter. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: CorrelationFilter, FalseFilter, SqlFilter, TrueFilter. + sub-classes are: CorrelationFilter, SqlFilter. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, } _subtype_map = { - 'type': {'CorrelationFilter': 'CorrelationFilter', 'FalseFilter': 'FalseFilter', 'SqlFilter': 'SqlFilter', 'TrueFilter': 'TrueFilter'} + 'type': {'CorrelationFilter': 'CorrelationFilter', 'SqlFilter': 'SqlFilter'} } _xml_map = { 'name': 'Filter', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -111,7 +117,9 @@ def __init__( class CorrelationFilter(RuleFilter): """CorrelationFilter. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str :param correlation_id: :type correlation_id: str @@ -133,17 +141,21 @@ class CorrelationFilter(RuleFilter): :type properties: list[~azure.servicebus.management._generated.models.KeyValue] """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'correlation_id': {'key': 'CorrelationId', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_id': {'key': 'MessageId', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'to': {'key': 'To', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'reply_to': {'key': 'ReplyTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'label': {'key': 'Label', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'session_id': {'key': 'SessionId', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'reply_to_session_id': {'key': 'ReplyToSessionId', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'content_type': {'key': 'ContentType', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'properties': {'key': 'Properties', 'type': '[KeyValue]', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'correlation_id': {'key': 'correlationId', 'type': 'str', 'xml': {'name': 'CorrelationId', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_id': {'key': 'messageId', 'type': 'str', 'xml': {'name': 'MessageId', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'to': {'key': 'to', 'type': 'str', 'xml': {'name': 'To', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'reply_to': {'key': 'replyTo', 'type': 'str', 'xml': {'name': 'ReplyTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'label': {'key': 'label', 'type': 'str', 'xml': {'name': 'Label', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'session_id': {'key': 'sessionId', 'type': 'str', 'xml': {'name': 'SessionId', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'reply_to_session_id': {'key': 'replyToSessionId', 'type': 'str', 'xml': {'name': 'ReplyToSessionId', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'content_type': {'key': 'contentType', 'type': 'str', 'xml': {'name': 'ContentType', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'properties': {'key': 'properties', 'type': '[KeyValue]', 'xml': {'name': 'Properties', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } def __init__( @@ -208,7 +220,7 @@ class CreateQueueBodyContent(msrest.serialization.Model): _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True}}, - 'queue_description': {'key': 'QueueDescription', 'type': 'QueueDescription'}, + 'queue_description': {'key': 'queueDescription', 'type': 'QueueDescription'}, } _xml_map = { 'ns': 'http://www.w3.org/2005/Atom' @@ -227,7 +239,7 @@ def __init__( class CreateRuleBody(msrest.serialization.Model): - """The request body for creating a topic. + """The request body for creating a rule. :param content: RuleDescription for the new Rule. :type content: ~azure.servicebus.management._generated.models.CreateRuleBodyContent @@ -261,7 +273,7 @@ class CreateRuleBodyContent(msrest.serialization.Model): _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True}}, - 'rule_description': {'key': 'RuleDescription', 'type': 'RuleDescription'}, + 'rule_description': {'key': 'ruleDescription', 'type': 'RuleDescription'}, } _xml_map = { 'ns': 'http://www.w3.org/2005/Atom' @@ -280,9 +292,9 @@ def __init__( class CreateSubscriptionBody(msrest.serialization.Model): - """The request body for creating a topic. + """The request body for creating a subscription. - :param content: TopicDescription for the new topic. + :param content: SubscriptionDescription for the new subscription. :type content: ~azure.servicebus.management._generated.models.CreateSubscriptionBodyContent """ @@ -304,18 +316,18 @@ def __init__( class CreateSubscriptionBodyContent(msrest.serialization.Model): - """TopicDescription for the new topic. + """SubscriptionDescription for the new subscription. :param type: MIME type of content. :type type: str - :param subscription_description: Topic information to create. + :param subscription_description: Subscription information to create. :type subscription_description: ~azure.servicebus.management._generated.models.SubscriptionDescription """ _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True}}, - 'subscription_description': {'key': 'SubscriptionDescription', 'type': 'SubscriptionDescription'}, + 'subscription_description': {'key': 'subscriptionDescription', 'type': 'SubscriptionDescription'}, } _xml_map = { 'ns': 'http://www.w3.org/2005/Atom' @@ -368,7 +380,7 @@ class CreateTopicBodyContent(msrest.serialization.Model): _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True}}, - 'topic_description': {'key': 'TopicDescription', 'type': 'TopicDescription'}, + 'topic_description': {'key': 'topicDescription', 'type': 'TopicDescription'}, } _xml_map = { 'ns': 'http://www.w3.org/2005/Atom' @@ -392,10 +404,16 @@ class RuleAction(msrest.serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: EmptyRuleAction, SqlRuleAction. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, } @@ -418,10 +436,16 @@ def __init__( class EmptyRuleAction(RuleAction): """EmptyRuleAction. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, } @@ -434,33 +458,103 @@ def __init__( self.type: str = 'EmptyRuleAction' -class FalseFilter(RuleFilter): +class SqlFilter(RuleFilter): + """SqlFilter. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: FalseFilter, TrueFilter. + + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. + :type type: str + :param sql_expression: + :type sql_expression: str + :param compatibility_level: + :type compatibility_level: str + :param parameters: + :type parameters: list[~azure.servicebus.management._generated.models.KeyValue] + :param requires_preprocessing: + :type requires_preprocessing: bool + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, + 'sql_expression': {'key': 'sqlExpression', 'type': 'str', 'xml': {'name': 'SqlExpression', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'compatibility_level': {'key': 'compatibilityLevel', 'type': 'str', 'xml': {'name': 'CompatibilityLevel', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'parameters': {'key': 'parameters', 'type': '[KeyValue]', 'xml': {'name': 'Parameters', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_preprocessing': {'key': 'requiresPreprocessing', 'type': 'bool', 'xml': {'name': 'RequiresPreprocessing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + } + + _subtype_map = { + 'type': {'FalseFilter': 'FalseFilter', 'TrueFilter': 'TrueFilter'} + } + + def __init__( + self, + *, + sql_expression: Optional[str] = None, + compatibility_level: Optional[str] = "20", + parameters: Optional[List["KeyValue"]] = None, + requires_preprocessing: Optional[bool] = None, + **kwargs + ): + super(SqlFilter, self).__init__(**kwargs) + self.type: str = 'SqlFilter' + self.sql_expression = sql_expression + self.compatibility_level = compatibility_level + self.parameters = parameters + self.requires_preprocessing = requires_preprocessing + + +class FalseFilter(SqlFilter): """FalseFilter. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str :param sql_expression: :type sql_expression: str + :param compatibility_level: + :type compatibility_level: str + :param parameters: + :type parameters: list[~azure.servicebus.management._generated.models.KeyValue] + :param requires_preprocessing: + :type requires_preprocessing: bool """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'sql_expression': {'key': 'SqlExpression', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'sql_expression': {'key': 'sqlExpression', 'type': 'str', 'xml': {'name': 'SqlExpression', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'compatibility_level': {'key': 'compatibilityLevel', 'type': 'str', 'xml': {'name': 'CompatibilityLevel', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'parameters': {'key': 'parameters', 'type': '[KeyValue]', 'xml': {'name': 'Parameters', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_preprocessing': {'key': 'requiresPreprocessing', 'type': 'bool', 'xml': {'name': 'RequiresPreprocessing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } def __init__( self, *, - sql_expression: Optional[str] = "1 != 1", + sql_expression: Optional[str] = None, + compatibility_level: Optional[str] = "20", + parameters: Optional[List["KeyValue"]] = None, + requires_preprocessing: Optional[bool] = None, **kwargs ): - super(FalseFilter, self).__init__(**kwargs) + super(FalseFilter, self).__init__(sql_expression=sql_expression, compatibility_level=compatibility_level, parameters=parameters, requires_preprocessing=requires_preprocessing, **kwargs) self.type: str = 'FalseFilter' - self.sql_expression = sql_expression class KeyValue(msrest.serialization.Model): - """KeyValue. + """Key Values of custom properties. :param key: :type key: str @@ -469,8 +563,8 @@ class KeyValue(msrest.serialization.Model): """ _attribute_map = { - 'key': {'key': 'Key', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'value': {'key': 'Value', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'key': {'key': 'key', 'type': 'str', 'xml': {'name': 'Key', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'value': {'key': 'value', 'type': 'str', 'xml': {'name': 'Value', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'KeyValueOfstringanyType', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -505,11 +599,11 @@ class MessageCountDetails(msrest.serialization.Model): """ _attribute_map = { - 'active_message_count': {'key': 'ActiveMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, - 'dead_letter_message_count': {'key': 'DeadLetterMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, - 'scheduled_message_count': {'key': 'ScheduledMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, - 'transfer_dead_letter_message_count': {'key': 'TransferDeadLetterMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, - 'transfer_message_count': {'key': 'TransferMessageCount', 'type': 'int', 'xml': {'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'active_message_count': {'key': 'activeMessageCount', 'type': 'int', 'xml': {'name': 'ActiveMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'dead_letter_message_count': {'key': 'deadLetterMessageCount', 'type': 'int', 'xml': {'name': 'DeadLetterMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'scheduled_message_count': {'key': 'scheduledMessageCount', 'type': 'int', 'xml': {'name': 'ScheduledMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'transfer_dead_letter_message_count': {'key': 'transferDeadLetterMessageCount', 'type': 'int', 'xml': {'name': 'TransferDeadLetterMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, + 'transfer_message_count': {'key': 'transferMessageCount', 'type': 'int', 'xml': {'name': 'TransferMessageCount', 'prefix': 'd2p1', 'ns': 'http://schemas.microsoft.com/netservices/2011/06/servicebus'}}, } _xml_map = { 'name': 'CountDetails', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -555,13 +649,13 @@ class NamespaceProperties(msrest.serialization.Model): """ _attribute_map = { - 'alias': {'key': 'Alias', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_time': {'key': 'CreatedTime', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'messaging_sku': {'key': 'MessagingSku', 'type': 'str', 'xml': {'name': 'MessagingSKU', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'messaging_units': {'key': 'MessagingUnits', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'modified_time': {'key': 'ModifiedTime', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'name': {'key': 'Name', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'namespace_type': {'key': 'NamespaceType', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'alias': {'key': 'alias', 'type': 'str', 'xml': {'name': 'Alias', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_time': {'key': 'createdTime', 'type': 'iso-8601', 'xml': {'name': 'CreatedTime', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'messaging_sku': {'key': 'messagingSku', 'type': 'str', 'xml': {'name': 'MessagingSKU', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'messaging_units': {'key': 'messagingUnits', 'type': 'int', 'xml': {'name': 'MessagingUnits', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'modified_time': {'key': 'modifiedTime', 'type': 'iso-8601', 'xml': {'name': 'ModifiedTime', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'name': {'key': 'name', 'type': 'str', 'xml': {'name': 'Name', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'namespace_type': {'key': 'namespaceType', 'type': 'str', 'xml': {'name': 'NamespaceType', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'NamespaceInfo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -676,7 +770,7 @@ class QueueDescription(msrest.serialization.Model): :type lock_duration: ~datetime.timedelta :param max_size_in_megabytes: The maximum size of the queue in megabytes, which is the size of memory allocated for the queue. - :type max_size_in_megabytes: int + :type max_size_in_megabytes: long :param requires_duplicate_detection: A value indicating if this queue requires duplicate detection. :type requires_duplicate_detection: bool @@ -720,7 +814,7 @@ class QueueDescription(msrest.serialization.Model): :type user_metadata: str :param created_at: The exact time the queue was created. :type created_at: ~datetime.datetime - :param updated_at: The exact time a message was updated in the queue. + :param updated_at: The exact time the entity description was last updated. :type updated_at: ~datetime.datetime :param accessed_at: Last time a message was sent, or the last time there was a receive request to this queue. @@ -748,32 +842,32 @@ class QueueDescription(msrest.serialization.Model): """ _attribute_map = { - 'lock_duration': {'key': 'LockDuration', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'max_size_in_megabytes': {'key': 'MaxSizeInMegabytes', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'requires_duplicate_detection': {'key': 'RequiresDuplicateDetection', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'requires_session': {'key': 'RequiresSession', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'default_message_time_to_live': {'key': 'DefaultMessageTimeToLive', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'dead_lettering_on_message_expiration': {'key': 'DeadLetteringOnMessageExpiration', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'duplicate_detection_history_time_window': {'key': 'DuplicateDetectionHistoryTimeWindow', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'max_delivery_count': {'key': 'MaxDeliveryCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_batched_operations': {'key': 'EnableBatchedOperations', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'size_in_bytes': {'key': 'SizeInBytes', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count': {'key': 'MessageCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'is_anonymous_accessible': {'key': 'IsAnonymousAccessible', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'authorization_rules': {'key': 'AuthorizationRules', 'type': '[AuthorizationRule]', 'xml': {'name': 'AuthorizationRules', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AuthorizationRule', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'status': {'key': 'Status', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'forward_to': {'key': 'ForwardTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'user_metadata': {'key': 'UserMetadata', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_at': {'key': 'CreatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'updated_at': {'key': 'UpdatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'accessed_at': {'key': 'AccessedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'support_ordering': {'key': 'SupportOrdering', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count_details': {'key': 'MessageCountDetails', 'type': 'MessageCountDetails'}, - 'auto_delete_on_idle': {'key': 'AutoDeleteOnIdle', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_partitioning': {'key': 'EnablePartitioning', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'entity_availability_status': {'key': 'EntityAvailabilityStatus', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_express': {'key': 'EnableExpress', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'forward_dead_lettered_messages_to': {'key': 'ForwardDeadLetteredMessagesTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'lock_duration': {'key': 'lockDuration', 'type': 'duration', 'xml': {'name': 'LockDuration', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'max_size_in_megabytes': {'key': 'maxSizeInMegabytes', 'type': 'long', 'xml': {'name': 'MaxSizeInMegabytes', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_duplicate_detection': {'key': 'requiresDuplicateDetection', 'type': 'bool', 'xml': {'name': 'RequiresDuplicateDetection', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_session': {'key': 'requiresSession', 'type': 'bool', 'xml': {'name': 'RequiresSession', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'default_message_time_to_live': {'key': 'defaultMessageTimeToLive', 'type': 'duration', 'xml': {'name': 'DefaultMessageTimeToLive', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'dead_lettering_on_message_expiration': {'key': 'deadLetteringOnMessageExpiration', 'type': 'bool', 'xml': {'name': 'DeadLetteringOnMessageExpiration', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'duplicate_detection_history_time_window': {'key': 'duplicateDetectionHistoryTimeWindow', 'type': 'duration', 'xml': {'name': 'DuplicateDetectionHistoryTimeWindow', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'max_delivery_count': {'key': 'maxDeliveryCount', 'type': 'int', 'xml': {'name': 'MaxDeliveryCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_batched_operations': {'key': 'enableBatchedOperations', 'type': 'bool', 'xml': {'name': 'EnableBatchedOperations', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'size_in_bytes': {'key': 'sizeInBytes', 'type': 'int', 'xml': {'name': 'SizeInBytes', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count': {'key': 'messageCount', 'type': 'int', 'xml': {'name': 'MessageCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'is_anonymous_accessible': {'key': 'isAnonymousAccessible', 'type': 'bool', 'xml': {'name': 'IsAnonymousAccessible', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'authorization_rules': {'key': 'authorizationRules', 'type': '[AuthorizationRule]', 'xml': {'name': 'AuthorizationRules', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AuthorizationRule', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'status': {'key': 'status', 'type': 'str', 'xml': {'name': 'Status', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'forward_to': {'key': 'forwardTo', 'type': 'str', 'xml': {'name': 'ForwardTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'user_metadata': {'key': 'userMetadata', 'type': 'str', 'xml': {'name': 'UserMetadata', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601', 'xml': {'name': 'CreatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'updated_at': {'key': 'updatedAt', 'type': 'iso-8601', 'xml': {'name': 'UpdatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'accessed_at': {'key': 'accessedAt', 'type': 'iso-8601', 'xml': {'name': 'AccessedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'support_ordering': {'key': 'supportOrdering', 'type': 'bool', 'xml': {'name': 'SupportOrdering', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count_details': {'key': 'messageCountDetails', 'type': 'MessageCountDetails'}, + 'auto_delete_on_idle': {'key': 'autoDeleteOnIdle', 'type': 'duration', 'xml': {'name': 'AutoDeleteOnIdle', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_partitioning': {'key': 'enablePartitioning', 'type': 'bool', 'xml': {'name': 'EnablePartitioning', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'entity_availability_status': {'key': 'entityAvailabilityStatus', 'type': 'str', 'xml': {'name': 'EntityAvailabilityStatus', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_express': {'key': 'enableExpress', 'type': 'bool', 'xml': {'name': 'EnableExpress', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'forward_dead_lettered_messages_to': {'key': 'forwardDeadLetteredMessagesTo', 'type': 'str', 'xml': {'name': 'ForwardDeadLetteredMessagesTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'QueueDescription', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -982,7 +1076,7 @@ class ResponseAuthor(msrest.serialization.Model): 'name': {'key': 'name', 'type': 'str', 'xml': {'ns': 'http://www.w3.org/2005/Atom'}}, } _xml_map = { - 'ns': 'http://www.w3.org/2005/Atom' + 'name': 'author', 'ns': 'http://www.w3.org/2005/Atom' } def __init__( @@ -1038,13 +1132,13 @@ class RuleDescription(msrest.serialization.Model): """ _attribute_map = { - 'filter': {'key': 'Filter', 'type': 'RuleFilter'}, - 'action': {'key': 'Action', 'type': 'RuleAction'}, - 'created_at': {'key': 'CreatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'name': {'key': 'Name', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'filter': {'key': 'filter', 'type': 'RuleFilter'}, + 'action': {'key': 'action', 'type': 'RuleAction'}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601', 'xml': {'name': 'CreatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'name': {'key': 'name', 'type': 'str', 'xml': {'name': 'Name', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { - 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' + 'name': 'RuleDescription', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' } def __init__( @@ -1115,7 +1209,7 @@ def __init__( class RuleDescriptionEntryContent(msrest.serialization.Model): """The RuleDescription. - :param type: Type of content in queue response. + :param type: Type of content in rule response. :type type: str :param rule_description: :type rule_description: ~azure.servicebus.management._generated.models.RuleDescription @@ -1195,8 +1289,8 @@ class ServiceBusManagementError(msrest.serialization.Model): """ _attribute_map = { - 'code': {'key': 'Code', 'type': 'int'}, - 'detail': {'key': 'Detail', 'type': 'str'}, + 'code': {'key': 'code', 'type': 'int', 'xml': {'name': 'Code'}}, + 'detail': {'key': 'detail', 'type': 'str', 'xml': {'name': 'Detail'}}, } def __init__( @@ -1211,54 +1305,50 @@ def __init__( self.detail = detail -class SqlFilter(RuleFilter): - """SqlFilter. - - :param type: Constant filled by server. - :type type: str - :param sql_expression: - :type sql_expression: str - """ - - _attribute_map = { - 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'sql_expression': {'key': 'SqlExpression', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - } - - def __init__( - self, - *, - sql_expression: Optional[str] = None, - **kwargs - ): - super(SqlFilter, self).__init__(**kwargs) - self.type: str = 'SqlFilter' - self.sql_expression = sql_expression - - class SqlRuleAction(RuleAction): """SqlRuleAction. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str :param sql_expression: :type sql_expression: str + :param compatibility_level: + :type compatibility_level: str + :param parameters: + :type parameters: list[~azure.servicebus.management._generated.models.KeyValue] + :param requires_preprocessing: + :type requires_preprocessing: bool """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'sql_expression': {'key': 'SqlExpression', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'sql_expression': {'key': 'sqlExpression', 'type': 'str', 'xml': {'name': 'SqlExpression', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'compatibility_level': {'key': 'compatibilityLevel', 'type': 'str', 'xml': {'name': 'CompatibilityLevel', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'parameters': {'key': 'parameters', 'type': '[KeyValue]', 'xml': {'name': 'Parameters', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_preprocessing': {'key': 'requiresPreprocessing', 'type': 'bool', 'xml': {'name': 'RequiresPreprocessing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } def __init__( self, *, sql_expression: Optional[str] = None, + compatibility_level: Optional[str] = "20", + parameters: Optional[List["KeyValue"]] = None, + requires_preprocessing: Optional[bool] = None, **kwargs ): super(SqlRuleAction, self).__init__(**kwargs) self.type: str = 'SqlRuleAction' self.sql_expression = sql_expression + self.compatibility_level = compatibility_level + self.parameters = parameters + self.requires_preprocessing = requires_preprocessing class SubscriptionDescription(msrest.serialization.Model): @@ -1268,8 +1358,8 @@ class SubscriptionDescription(msrest.serialization.Model): that the message is locked for other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute. :type lock_duration: ~datetime.timedelta - :param requires_session: A value that indicates whether the queue supports the concept of - sessions. + :param requires_session: A value that indicates whether the subscription supports the concept + of sessions. :type requires_session: bool :param default_message_time_to_live: ISO 8601 default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service @@ -1320,24 +1410,24 @@ class SubscriptionDescription(msrest.serialization.Model): """ _attribute_map = { - 'lock_duration': {'key': 'LockDuration', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'requires_session': {'key': 'RequiresSession', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'default_message_time_to_live': {'key': 'DefaultMessageTimeToLive', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'dead_lettering_on_message_expiration': {'key': 'DeadLetteringOnMessageExpiration', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'dead_lettering_on_filter_evaluation_exceptions': {'key': 'DeadLetteringOnFilterEvaluationExceptions', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count': {'key': 'MessageCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'max_delivery_count': {'key': 'MaxDeliveryCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_batched_operations': {'key': 'EnableBatchedOperations', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'status': {'key': 'Status', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'forward_to': {'key': 'ForwardTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_at': {'key': 'CreatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'updated_at': {'key': 'UpdatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'accessed_at': {'key': 'AccessedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count_details': {'key': 'MessageCountDetails', 'type': 'MessageCountDetails'}, - 'user_metadata': {'key': 'UserMetadata', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'forward_dead_lettered_messages_to': {'key': 'ForwardDeadLetteredMessagesTo', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'auto_delete_on_idle': {'key': 'AutoDeleteOnIdle', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'entity_availability_status': {'key': 'EntityAvailabilityStatus', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'lock_duration': {'key': 'lockDuration', 'type': 'duration', 'xml': {'name': 'LockDuration', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_session': {'key': 'requiresSession', 'type': 'bool', 'xml': {'name': 'RequiresSession', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'default_message_time_to_live': {'key': 'defaultMessageTimeToLive', 'type': 'duration', 'xml': {'name': 'DefaultMessageTimeToLive', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'dead_lettering_on_message_expiration': {'key': 'deadLetteringOnMessageExpiration', 'type': 'bool', 'xml': {'name': 'DeadLetteringOnMessageExpiration', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'dead_lettering_on_filter_evaluation_exceptions': {'key': 'deadLetteringOnFilterEvaluationExceptions', 'type': 'bool', 'xml': {'name': 'DeadLetteringOnFilterEvaluationExceptions', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count': {'key': 'messageCount', 'type': 'int', 'xml': {'name': 'MessageCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'max_delivery_count': {'key': 'maxDeliveryCount', 'type': 'int', 'xml': {'name': 'MaxDeliveryCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_batched_operations': {'key': 'enableBatchedOperations', 'type': 'bool', 'xml': {'name': 'EnableBatchedOperations', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'status': {'key': 'status', 'type': 'str', 'xml': {'name': 'Status', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'forward_to': {'key': 'forwardTo', 'type': 'str', 'xml': {'name': 'ForwardTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601', 'xml': {'name': 'CreatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'updated_at': {'key': 'updatedAt', 'type': 'iso-8601', 'xml': {'name': 'UpdatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'accessed_at': {'key': 'accessedAt', 'type': 'iso-8601', 'xml': {'name': 'AccessedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count_details': {'key': 'messageCountDetails', 'type': 'MessageCountDetails'}, + 'user_metadata': {'key': 'userMetadata', 'type': 'str', 'xml': {'name': 'UserMetadata', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'forward_dead_lettered_messages_to': {'key': 'forwardDeadLetteredMessagesTo', 'type': 'str', 'xml': {'name': 'ForwardDeadLetteredMessagesTo', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'auto_delete_on_idle': {'key': 'autoDeleteOnIdle', 'type': 'duration', 'xml': {'name': 'AutoDeleteOnIdle', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'entity_availability_status': {'key': 'entityAvailabilityStatus', 'type': 'str', 'xml': {'name': 'EntityAvailabilityStatus', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'SubscriptionDescription', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -1440,7 +1530,7 @@ def __init__( class SubscriptionDescriptionEntryContent(msrest.serialization.Model): """The SubscriptionDescription. - :param type: Type of content in queue response. + :param type: Type of content in subscription response. :type type: str :param subscription_description: Description of a Service Bus subscription resource. :type subscription_description: @@ -1570,35 +1660,35 @@ class TopicDescription(msrest.serialization.Model): subscription is to be partitioned. :type enable_subscription_partitioning: bool :param enable_express: A value that indicates whether Express Entities are enabled. An express - queue holds a message in memory temporarily before writing it to persistent storage. + topic holds a message in memory temporarily before writing it to persistent storage. :type enable_express: bool :param user_metadata: Metadata associated with the topic. :type user_metadata: str """ _attribute_map = { - 'default_message_time_to_live': {'key': 'DefaultMessageTimeToLive', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'max_size_in_megabytes': {'key': 'MaxSizeInMegabytes', 'type': 'long', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'requires_duplicate_detection': {'key': 'RequiresDuplicateDetection', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'duplicate_detection_history_time_window': {'key': 'DuplicateDetectionHistoryTimeWindow', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_batched_operations': {'key': 'EnableBatchedOperations', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'size_in_bytes': {'key': 'SizeInBytes', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'filtering_messages_before_publishing': {'key': 'FilteringMessagesBeforePublishing', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'is_anonymous_accessible': {'key': 'IsAnonymousAccessible', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'authorization_rules': {'key': 'AuthorizationRules', 'type': '[AuthorizationRule]', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AuthorizationRule', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'status': {'key': 'Status', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'created_at': {'key': 'CreatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'updated_at': {'key': 'UpdatedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'accessed_at': {'key': 'AccessedAt', 'type': 'iso-8601', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'support_ordering': {'key': 'SupportOrdering', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'message_count_details': {'key': 'MessageCountDetails', 'type': 'MessageCountDetails'}, - 'subscription_count': {'key': 'SubscriptionCount', 'type': 'int', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'auto_delete_on_idle': {'key': 'AutoDeleteOnIdle', 'type': 'duration', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_partitioning': {'key': 'EnablePartitioning', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'entity_availability_status': {'key': 'EntityAvailabilityStatus', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_subscription_partitioning': {'key': 'EnableSubscriptionPartitioning', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'enable_express': {'key': 'EnableExpress', 'type': 'bool', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, - 'user_metadata': {'key': 'UserMetadata', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'default_message_time_to_live': {'key': 'defaultMessageTimeToLive', 'type': 'duration', 'xml': {'name': 'DefaultMessageTimeToLive', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'max_size_in_megabytes': {'key': 'maxSizeInMegabytes', 'type': 'long', 'xml': {'name': 'MaxSizeInMegabytes', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_duplicate_detection': {'key': 'requiresDuplicateDetection', 'type': 'bool', 'xml': {'name': 'RequiresDuplicateDetection', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'duplicate_detection_history_time_window': {'key': 'duplicateDetectionHistoryTimeWindow', 'type': 'duration', 'xml': {'name': 'DuplicateDetectionHistoryTimeWindow', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_batched_operations': {'key': 'enableBatchedOperations', 'type': 'bool', 'xml': {'name': 'EnableBatchedOperations', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'size_in_bytes': {'key': 'sizeInBytes', 'type': 'int', 'xml': {'name': 'SizeInBytes', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'filtering_messages_before_publishing': {'key': 'filteringMessagesBeforePublishing', 'type': 'bool', 'xml': {'name': 'FilteringMessagesBeforePublishing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'is_anonymous_accessible': {'key': 'isAnonymousAccessible', 'type': 'bool', 'xml': {'name': 'IsAnonymousAccessible', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'authorization_rules': {'key': 'authorizationRules', 'type': '[AuthorizationRule]', 'xml': {'name': 'AuthorizationRules', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'AuthorizationRule', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'status': {'key': 'status', 'type': 'str', 'xml': {'name': 'Status', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601', 'xml': {'name': 'CreatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'updated_at': {'key': 'updatedAt', 'type': 'iso-8601', 'xml': {'name': 'UpdatedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'accessed_at': {'key': 'accessedAt', 'type': 'iso-8601', 'xml': {'name': 'AccessedAt', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'support_ordering': {'key': 'supportOrdering', 'type': 'bool', 'xml': {'name': 'SupportOrdering', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'message_count_details': {'key': 'messageCountDetails', 'type': 'MessageCountDetails'}, + 'subscription_count': {'key': 'subscriptionCount', 'type': 'int', 'xml': {'name': 'SubscriptionCount', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'auto_delete_on_idle': {'key': 'autoDeleteOnIdle', 'type': 'duration', 'xml': {'name': 'AutoDeleteOnIdle', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_partitioning': {'key': 'enablePartitioning', 'type': 'bool', 'xml': {'name': 'EnablePartitioning', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'entity_availability_status': {'key': 'entityAvailabilityStatus', 'type': 'str', 'xml': {'name': 'EntityAvailabilityStatus', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_subscription_partitioning': {'key': 'enableSubscriptionPartitioning', 'type': 'bool', 'xml': {'name': 'EnableSubscriptionPartitioning', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'enable_express': {'key': 'enableExpress', 'type': 'bool', 'xml': {'name': 'EnableExpress', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'user_metadata': {'key': 'userMetadata', 'type': 'str', 'xml': {'name': 'UserMetadata', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } _xml_map = { 'name': 'TopicDescription', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect' @@ -1718,7 +1808,7 @@ def __init__( class TopicDescriptionEntryContent(msrest.serialization.Model): """The TopicDescription. - :param type: Type of content in queue response. + :param type: Type of content in topic response. :type type: str :param topic_description: Description of a Service Bus topic resource. :type topic_description: ~azure.servicebus.management._generated.models.TopicDescription @@ -1788,26 +1878,43 @@ def __init__( self.entry = entry -class TrueFilter(RuleFilter): +class TrueFilter(SqlFilter): """TrueFilter. - :param type: Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Constant filled by server. :type type: str :param sql_expression: :type sql_expression: str + :param compatibility_level: + :type compatibility_level: str + :param parameters: + :type parameters: list[~azure.servicebus.management._generated.models.KeyValue] + :param requires_preprocessing: + :type requires_preprocessing: bool """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str', 'xml': {'attr': True, 'prefix': 'xsi', 'ns': 'http://www.w3.org/2001/XMLSchema-instance'}}, - 'sql_expression': {'key': 'SqlExpression', 'type': 'str', 'xml': {'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'sql_expression': {'key': 'sqlExpression', 'type': 'str', 'xml': {'name': 'SqlExpression', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'compatibility_level': {'key': 'compatibilityLevel', 'type': 'str', 'xml': {'name': 'CompatibilityLevel', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'parameters': {'key': 'parameters', 'type': '[KeyValue]', 'xml': {'name': 'Parameters', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect', 'wrapped': True, 'itemsName': 'KeyValueOfstringanyType', 'itemsNs': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, + 'requires_preprocessing': {'key': 'requiresPreprocessing', 'type': 'bool', 'xml': {'name': 'RequiresPreprocessing', 'ns': 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'}}, } def __init__( self, *, - sql_expression: Optional[str] = "1 = 1", + sql_expression: Optional[str] = None, + compatibility_level: Optional[str] = "20", + parameters: Optional[List["KeyValue"]] = None, + requires_preprocessing: Optional[bool] = None, **kwargs ): - super(TrueFilter, self).__init__(**kwargs) + super(TrueFilter, self).__init__(sql_expression=sql_expression, compatibility_level=compatibility_level, parameters=parameters, requires_preprocessing=requires_preprocessing, **kwargs) self.type: str = 'TrueFilter' - self.sql_expression = sql_expression diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_service_bus_management_client_enums.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_service_bus_management_client_enums.py index faeb59e91e48..e021a09eb502 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_service_bus_management_client_enums.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_generated/models/_service_bus_management_client_enums.py @@ -9,7 +9,7 @@ from enum import Enum class AccessRights(str, Enum): - """Access rights of the entity + """Access rights of an authorization """ manage = "Manage" diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_management_client.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_management_client.py index a90c993b16b3..ff74e6d94779 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_management_client.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_management_client.py @@ -21,9 +21,10 @@ TopicDescriptionFeed, CreateSubscriptionBody, CreateSubscriptionBodyContent, CreateRuleBody, \ CreateRuleBodyContent, CreateQueueBody, CreateQueueBodyContent, \ QueueDescription as InternalQueueDescription, TopicDescription as InternalTopicDescription, \ - SubscriptionDescription as InternalSubscriptionDescription, RuleDescription as InternalRuleDescription, \ + SubscriptionDescription as InternalSubscriptionDescription, \ NamespaceProperties -from ._utils import extract_data_template, get_next_template +from ._utils import extract_data_template, get_next_template, deserialize_rule_key_values, serialize_rule_key_values, \ + extract_rule_data_template from ._xml_workaround_policy import ServiceBusXMLWorkaroundPolicy from .._common.constants import JWT_TOKEN_SCOPE @@ -683,6 +684,7 @@ def get_rule(self, topic, subscription, rule_name, **kwargs): "Rule('Topic: {}, Subscription: {}, Rule {}') does not exist".format( subscription_name, topic_name, rule_name)) rule_description = RuleDescription._from_internal_entity(rule_name, entry.content.rule_description) + deserialize_rule_key_values(entry_ele, rule_description) # to remove after #3535 is released. return rule_description def create_rule(self, topic, subscription, rule, **kwargs): @@ -713,6 +715,7 @@ def create_rule(self, topic, subscription, rule, **kwargs): ) ) request_body = create_entity_body.serialize(is_xml=True) + serialize_rule_key_values(request_body, rule) with _handle_response_error(): entry_ele = self._impl.rule.put( topic_name, @@ -720,7 +723,8 @@ def create_rule(self, topic, subscription, rule, **kwargs): rule_name, request_body, api_version=constants.API_VERSION, **kwargs) entry = RuleDescriptionEntry.deserialize(entry_ele) - result = entry.content.rule_description + result = RuleDescription._from_internal_entity(rule_name, entry.content.rule_description) + deserialize_rule_key_values(entry_ele, result) # to remove after #3535 is released. return result def update_rule(self, topic, subscription, rule, **kwargs): @@ -755,6 +759,7 @@ def update_rule(self, topic, subscription, rule, **kwargs): ) ) request_body = create_entity_body.serialize(is_xml=True) + serialize_rule_key_values(request_body, rule) with _handle_response_error(): self._impl.rule.put( topic_name, @@ -809,12 +814,17 @@ def list_rules(self, topic, subscription, **kwargs): except AttributeError: subscription_name = subscription - def entry_to_rule(entry): + def entry_to_rule(ele, entry): + """ + `ele` will be removed after https://github.com/Azure/autorest/issues/3535 is released. + """ rule = entry.content.rule_description - return RuleDescription._from_internal_entity(entry.title, rule) + rule_description = RuleDescription._from_internal_entity(entry.title, rule) + deserialize_rule_key_values(ele, rule_description) # to remove after #3535 is released. + return rule_description extract_data = functools.partial( - extract_data_template, RuleDescriptionFeed, entry_to_rule + extract_rule_data_template, RuleDescriptionFeed, entry_to_rule ) get_next = functools.partial( get_next_template, functools.partial(self._impl.list_rules, topic_name, subscription_name), **kwargs diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_model_workaround.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_model_workaround.py index 238ba907408f..1ca22b040990 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_model_workaround.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_model_workaround.py @@ -75,7 +75,13 @@ CreateRuleBodyContent: ("type", "rule_description"), CreateSubscriptionBodyContent: ("type", "subscription_description"), CreateTopicBodyContent: ("type", "topic_description"), - FalseFilter: ("type", "sql_expression"), + FalseFilter: ( + "type", + "sql_expression", + "compatibility_level", + "parameters", + "requires_preprocessing", + ), KeyValue: ("key", "value"), MessageCountDetails: ( "active_message_count", @@ -141,8 +147,20 @@ RuleDescriptionEntryContent: ("type", "rule_description"), RuleDescriptionFeed: ("id", "title", "updated", "link", "entry"), ServiceBusManagementError: ("code", "detail"), - SqlFilter: ("type", "sql_expression"), - SqlRuleAction: ("type", "sql_expression"), + SqlFilter: ( + "type", + "sql_expression", + "compatibility_level", + "parameters", + "requires_preprocessing", + ), + SqlRuleAction: ( + "type", + "sql_expression", + "compatibility_level", + "parameters", + "requires_preprocessing", + ), SubscriptionDescription: ( "lock_duration", "requires_session", @@ -209,9 +227,14 @@ ), TopicDescriptionEntryContent: ("type", "topic_description"), TopicDescriptionFeed: ("id", "title", "updated", "link", "entry"), - TrueFilter: ("type", "sql_expression"), + TrueFilter: ( + "type", + "sql_expression", + "compatibility_level", + "parameters", + "requires_preprocessing", + ), } # type: Dict[Type[Model], Tuple[str, ...]] - ### End of code generated by the script. diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_models.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_models.py index 1f8b8afa6287..687cefee36f1 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_models.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_models.py @@ -5,7 +5,8 @@ # pylint:disable=protected-access from collections import OrderedDict from copy import deepcopy -from typing import Type, Dict +from datetime import datetime, timedelta +from typing import Type, Dict, Any, Union, Optional from msrest.serialization import Model from ._generated.models import QueueDescription as InternalQueueDescription, \ @@ -19,6 +20,7 @@ KeyValue from ._model_workaround import adjust_attribute_map +from ._constants import RULE_SQL_COMPATIBILITY_LEVEL adjust_attribute_map() @@ -96,8 +98,9 @@ def __init__( name, **kwargs ): + # type: (str, Any) -> None self.name = name - self._internal_qd = None + self._internal_qd = None # type: Optional[InternalQueueDescription] self.authorization_rules = kwargs.get('authorization_rules', None) self.auto_delete_on_idle = kwargs.get('auto_delete_on_idle', None) @@ -204,8 +207,9 @@ def __init__( name, **kwargs ): + # type: (str, Any) -> None self.name = name - self._internal_qr = None + self._internal_qr = None # type: Optional[InternalQueueDescription] self.accessed_at = kwargs.get('accessed_at', None) self.created_at = kwargs.get('created_at', None) @@ -290,8 +294,9 @@ def __init__( name, **kwargs ): + # type: (str, Any) -> None self.name = name - self._internal_td = None + self._internal_td = None # type: Optional[InternalTopicDescription] self.default_message_time_to_live = kwargs.get('default_message_time_to_live', None) self.max_size_in_megabytes = kwargs.get('max_size_in_megabytes', None) @@ -380,8 +385,9 @@ def __init__( name, **kwargs ): + # type: (str, Any) -> None self.name = name - self._internal_td = None + self._internal_td = None # type: Optional[InternalTopicDescription] self.created_at = kwargs.get('created_at', None) self.updated_at = kwargs.get('updated_at', None) self.accessed_at = kwargs.get('accessed_at', None) @@ -452,8 +458,9 @@ class SubscriptionDescription(object): # pylint:disable=too-many-instance-attri ~azure.servicebus.management._generated.models.EntityAvailabilityStatus """ def __init__(self, name, **kwargs): + # type: (str, Any) -> None self.name = name - self._internal_sd = None + self._internal_sd = None # type: Optional[InternalSubscriptionDescription] self.lock_duration = kwargs.get('lock_duration', None) self.requires_session = kwargs.get('requires_session', None) @@ -532,7 +539,8 @@ class SubscriptionRuntimeInfo(object): """ def __init__(self, name, **kwargs): - self._internal_sd = None + # type: (str, Any) -> None + self._internal_sd = None # type: Optional[InternalSubscriptionDescription] self.name = name self.message_count = kwargs.get('message_count', None) @@ -570,12 +578,13 @@ class RuleDescription(object): """ def __init__(self, name, **kwargs): + # type: (str, Any) -> None self.filter = kwargs.get('filter', None) self.action = kwargs.get('action', None) self.created_at = kwargs.get('created_at', None) self.name = name - self._internal_rule = None + self._internal_rule = None # type: Optional[InternalRuleDescription] @classmethod def _from_internal_entity(cls, name, internal_rule): @@ -588,7 +597,6 @@ def _from_internal_entity(cls, name, internal_rule): rule.action = RULE_CLASS_MAPPING[type(internal_rule.action)]._from_internal_entity(internal_rule.action) \ if internal_rule.action and isinstance(internal_rule.action, tuple(RULE_CLASS_MAPPING.keys())) else None rule.created_at = internal_rule.created_at - rule.name = internal_rule.name return rule @@ -596,7 +604,7 @@ def _to_internal_entity(self): # type: () -> InternalRuleDescription if not self._internal_rule: self._internal_rule = InternalRuleDescription() - self._internal_rule.filter = self.filter._to_internal_entity() if self.filter else TRUE_FILTER + self._internal_rule.filter = self.filter._to_internal_entity() if self.filter else TRUE_FILTER # type: ignore self._internal_rule.action = self.action._to_internal_entity() if self.action else EMPTY_RULE_ACTION self._internal_rule.created_at = self.created_at self._internal_rule.name = self.name @@ -605,7 +613,29 @@ def _to_internal_entity(self): class CorrelationRuleFilter(object): + """Represents the correlation filter expression. + + :param correlation_id: Identifier of the correlation. + :type correlation_id: str + :param message_id: Identifier of the message. + :type message_id: str + :param to: Address to send to. + :type to: str + :param reply_to: Address of the queue to reply to. + :type reply_to: str + :param label: Application specific label. + :type label: str + :param session_id: Session identifier. + :type session_id: str + :param reply_to_session_id: Session identifier to reply to. + :type reply_to_session_id: str + :param content_type: Content type of the message. + :type content_type: str + :param properties: dictionary object for custom filters + :type properties: dict[str, Union[str, int, float, bool, datetime, timedelta]] + """ def __init__(self, **kwargs): + # type: (Any) -> None self.correlation_id = kwargs.get('correlation_id', None) self.message_id = kwargs.get('message_id', None) self.to = kwargs.get('to', None) @@ -635,6 +665,7 @@ def _from_internal_entity(cls, internal_correlation_filter): return correlation_filter def _to_internal_entity(self): + # type: () -> InternalCorrelationFilter internal_entity = InternalCorrelationFilter() internal_entity.correlation_id = self.correlation_id @@ -652,49 +683,106 @@ def _to_internal_entity(self): class SqlRuleFilter(object): - def __init__(self, sql_expression=None): + """Represents a filter which is a composition of an expression and an action + that is executed in the pub/sub pipeline. + + :param sql_expression: The SQL expression. e.g. MyProperty='ABC' + :type sql_expression: str + :param parameters: Sets the value of the sql expression parameters if any. + :type parameters: dict[str, Union[str, int, float, bool, datetime, timedelta]] + :param requires_preprocessing: Value that indicates whether the rule + filter requires preprocessing. Default value: True . + :type requires_preprocessing: bool + """ + def __init__(self, sql_expression=None, parameters=None, requires_preprocessing=True): + # type: (Optional[str], Optional[Dict[str, Union[str, int, float, bool, datetime, timedelta]]], bool) -> None self.sql_expression = sql_expression + self.parameters = parameters + self.requires_preprocessing = requires_preprocessing @classmethod def _from_internal_entity(cls, internal_sql_rule_filter): sql_rule_filter = cls() sql_rule_filter.sql_expression = internal_sql_rule_filter.sql_expression + sql_rule_filter.parameters = OrderedDict((kv.key, kv.value) for kv in internal_sql_rule_filter.parameters) \ + if internal_sql_rule_filter.parameters else OrderedDict() + sql_rule_filter.requires_preprocessing = internal_sql_rule_filter.requires_preprocessing return sql_rule_filter def _to_internal_entity(self): + # type: () -> InternalSqlFilter internal_entity = InternalSqlFilter(sql_expression=self.sql_expression) + internal_entity.parameters = [ + KeyValue(key=key, value=value) for key, value in self.parameters.items() # type: ignore + ] if self.parameters else None + internal_entity.compatibility_level = RULE_SQL_COMPATIBILITY_LEVEL + internal_entity.requires_preprocessing = self.requires_preprocessing return internal_entity class TrueRuleFilter(SqlRuleFilter): + """A sql filter with a sql expression that is always True + """ def __init__(self): - super(TrueRuleFilter, self).__init__("1=1") + super(TrueRuleFilter, self).__init__("1=1", None, True) def _to_internal_entity(self): internal_entity = InternalTrueFilter() + internal_entity.sql_expression = self.sql_expression + internal_entity.requires_preprocessing = True + internal_entity.compatibility_level = RULE_SQL_COMPATIBILITY_LEVEL + return internal_entity class FalseRuleFilter(SqlRuleFilter): + """A sql filter with a sql expression that is always True + """ def __init__(self): - super(FalseRuleFilter, self).__init__("1>1") + super(FalseRuleFilter, self).__init__("1>1", None, True) def _to_internal_entity(self): internal_entity = InternalFalseFilter() + internal_entity.sql_expression = self.sql_expression + internal_entity.requires_preprocessing = True + internal_entity.compatibility_level = RULE_SQL_COMPATIBILITY_LEVEL return internal_entity class SqlRuleAction(object): - def __init__(self, sql_expression=None): + """Represents set of actions written in SQL language-based syntax that is + performed against a ServiceBus.Messaging.BrokeredMessage . + + :param sql_expression: SQL expression. e.g. MyProperty='ABC' + :type sql_expression: str + :param parameters: Sets the value of the sql expression parameters if any. + :type parameters: dict[str, Union[str, int, float, bool, datetime, timedelta]] + :param requires_preprocessing: Value that indicates whether the rule + action requires preprocessing. Default value: True . + :type requires_preprocessing: bool + """ + def __init__(self, sql_expression=None, parameters=None, requires_preprocessing=True): + # type: (Optional[str], Optional[Dict[str, Union[str, int, float, bool, datetime, timedelta]]], bool) -> None self.sql_expression = sql_expression + self.parameters = parameters + self.requires_preprocessing = requires_preprocessing @classmethod def _from_internal_entity(cls, internal_sql_rule_action): - sql_rule_filter = cls(internal_sql_rule_action.sql_expression) - return sql_rule_filter + sql_rule_action = cls() + sql_rule_action.sql_expression = internal_sql_rule_action.sql_expression + sql_rule_action.parameters = OrderedDict((kv.key, kv.value) for kv in internal_sql_rule_action.parameters) \ + if internal_sql_rule_action.parameters else OrderedDict() + sql_rule_action.requires_preprocessing = internal_sql_rule_action.requires_preprocessing + return sql_rule_action def _to_internal_entity(self): - return InternalSqlRuleAction(sql_expression=self.sql_expression) + internal_entity = InternalSqlRuleAction(sql_expression=self.sql_expression) + internal_entity.parameters = [KeyValue(key=key, value=value) for key, value in self.parameters.items()] \ + if self.parameters else None + internal_entity.compatibility_level = RULE_SQL_COMPATIBILITY_LEVEL + internal_entity.requires_preprocessing = self.requires_preprocessing + return internal_entity RULE_CLASS_MAPPING = { diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_utils.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_utils.py index ead42fe7042f..8e233434f711 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_utils.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_utils.py @@ -2,8 +2,11 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- -from typing import cast, Union -from xml.etree.ElementTree import ElementTree +from datetime import datetime, timedelta +from typing import cast +from xml.etree.ElementTree import ElementTree, SubElement, QName +import isodate +import six # Refer to the async version of this module under ..\aio\management\_utils.py for detailed explanation. @@ -16,16 +19,45 @@ from ._handle_response_error import _handle_response_error +def extract_rule_data_template(feed_class, convert, feed_element): + """Special version of function extrat_data_template for Rule. + + Pass both the XML entry element and the rule instance to function `convert`. Rule needs to extract + KeyValue from XML Element and set to Rule model instance manually. The autorest/msrest serialization/deserialization + doesn't work for this special part. + After autorest is enhanced, this method can be removed. + Refer to autorest issue https://github.com/Azure/autorest/issues/3535 + """ + deserialized = feed_class.deserialize(feed_element) + next_link = None + if deserialized.link and len(deserialized.link) == 2: + next_link = deserialized.link[1].href + if deserialized.entry: + list_of_entities = [ + convert(*x) if convert else x for x in zip( + feed_element.findall(constants.ATOM_ENTRY_TAG), deserialized.entry) + ] + else: + list_of_entities = [] + return next_link, iter(list_of_entities) + + def extract_data_template(feed_class, convert, feed_element): deserialized = feed_class.deserialize(feed_element) - list_of_qd = [convert(x) if convert else x for x in deserialized.entry] + list_of_entities = [convert(x) if convert else x for x in deserialized.entry] next_link = None if deserialized.link and len(deserialized.link) == 2: next_link = deserialized.link[1].href - return next_link, iter(list_of_qd) + return next_link, iter(list_of_entities) def get_next_template(list_func, *args, **kwargs): + """Call list_func to get the XML data and deserialize it to XML ElementTree. + + azure.core.async_paging.AsyncItemPaged will call `extract_data_template` and use the returned + XML ElementTree to call a partial function created from `extrat_data_template`. + + """ start_index = kwargs.pop("start_index", 0) max_page_size = kwargs.pop("max_page_size", 100) api_version = constants.API_VERSION @@ -44,3 +76,168 @@ def get_next_template(list_func, *args, **kwargs): ) ) return feed_element + + +def deserialize_value(value, value_type): + if value_type in ("int", "long"): + value = int(value) + elif value_type == "boolean": + value = value.lower() == "true" + elif value_type == "double": + value = float(value) + elif value_type == "dateTime": + value = isodate.parse_datetime(value) + elif value_type == "duration": + value = isodate.parse_duration(value) + # Note: If value ever includes a month or year, will return an isodate type, and should be reassessed + return value + + +def serialize_value_type(value): + if isinstance(value, float): + return "double", str(value) + if isinstance(value, bool): # Attention: bool is subclass of int. So put bool ahead of int + return "boolean", str(value).lower() + if isinstance(value, six.string_types): + return "string", value + if isinstance(value, six.integer_types): + return "int" if value <= constants.INT32_MAX_VALUE else "long", str(value) + if isinstance(value, datetime): + return "dateTime", isodate.datetime_isoformat(value) + if isinstance(value, timedelta): + return "duration", isodate.duration_isoformat(value) + raise ValueError("value {} of type {} is not supported for the key value".format(value, type(value))) + + +def deserialize_key_values(xml_parent, key_values): + """deserialize xml Element and replace the values in dict key_values with correct data types. + + The deserialized XML is like: + + + key_string + str1 + + + key_int + 2 + + ... + + After autorest is enhanced, this method can be removed. + Refer to autorest issue https://github.com/Azure/autorest/issues/3535 + + :param xml_parent: The parent xml Element that contains some children of . + :param key_values: The dict that contains the key values. The value could have wrong data types. + :return: This method returns `None`. It will update each value of key_values to correct value type. + """ + key_values_ele = xml_parent.findall(constants.RULE_KEY_VALUE_TAG) + for key_value_ele in key_values_ele: + key_ele = key_value_ele.find(constants.RULE_KEY_TAG) + value_ele = key_value_ele.find(constants.RULE_VALUE_TAG) + key = key_ele.text + value = value_ele.text + value_type = value_ele.attrib[constants.RULE_VALUE_TYPE_TAG] + value_type = value_type.split(":")[1] + value = deserialize_value(value, value_type) + key_values[key] = value + + +def deserialize_rule_key_values(entry_ele, rule_description): + """Deserialize a rule's filter and action that have key values from xml. + + CorrelationRuleFilter.properties, SqlRuleFilter.parameters and SqlRuleAction.parameters may contain + data (dict is not empty). + + After autorest is enhanced, this method can be removed. + Refer to autorest issue https://github.com/Azure/autorest/issues/3535 + """ + content = entry_ele.find(constants.ATOM_CONTENT_TAG) + if content: + correlation_filter_properties_ele = content\ + .find(constants.RULE_DESCRIPTION_TAG) \ + .find(constants.RULE_FILTER_TAG) \ + .find(constants.RULE_FILTER_COR_PROPERTIES_TAG) + if correlation_filter_properties_ele: + deserialize_key_values(correlation_filter_properties_ele, rule_description.filter.properties) + sql_filter_parameters_ele = content\ + .find(constants.RULE_DESCRIPTION_TAG) \ + .find(constants.RULE_FILTER_TAG) \ + .find(constants.RULE_PARAMETERS_TAG) + if sql_filter_parameters_ele: + deserialize_key_values(sql_filter_parameters_ele, rule_description.filter.parameters) + sql_action_parameters_ele = content\ + .find(constants.RULE_DESCRIPTION_TAG) \ + .find(constants.RULE_ACTION_TAG) \ + .find(constants.RULE_PARAMETERS_TAG) + if sql_action_parameters_ele: + deserialize_key_values(sql_action_parameters_ele, rule_description.action.parameters) + + +def serialize_key_values(xml_parent, key_values): + """serialize a dict to xml Element and put it under xml_parent + + The serialized XML is like: + + + key_string + str1 + + + key_int + 2 + + ... + + :param xml_parent: The parent xml Element for the serialized xml. + :param key_values: The dict that contains the key values. + :return: `xml_parent` is mutated. The returned value is `None`. + + After autorest is enhanced, this method can be removed. + Refer to autorest issue https://github.com/Azure/autorest/issues/3535 + """ + xml_parent.clear() + if key_values: + for key, value in key_values.items(): + value_type, value_in_str = serialize_value_type(value) + key_value_ele = SubElement(xml_parent, QName(constants.SB_XML_NAMESPACE, constants.RULE_KEY_VALUE)) + key_ele = SubElement(key_value_ele, QName(constants.SB_XML_NAMESPACE, constants.RULE_KEY)) + key_ele.text = key + type_qname = QName(constants.XML_SCHEMA_INSTANCE_NAMESPACE, "type") + value_ele = SubElement( + key_value_ele, QName(constants.SB_XML_NAMESPACE, constants.RULE_VALUE), + {type_qname: constants.RULE_VALUE_TYPE_XML_PREFIX + ":" + value_type} + ) + value_ele.text = value_in_str + value_ele.attrib["xmlns:"+constants.RULE_VALUE_TYPE_XML_PREFIX] = constants.XML_SCHEMA_NAMESPACE + + +def serialize_rule_key_values(entry_ele, rule_descripiton): + """Serialize a rule's filter and action that have key values into xml. + + CorrelationRuleFilter.properties, SqlRuleFilter.parameters and SqlRuleAction.parameters may contain + data (dict is not empty). Serialize them to XML. + + After autorest is enhanced, this method can be removed. + Refer to autorest issue https://github.com/Azure/autorest/issues/3535 + """ + content = entry_ele.find(constants.ATOM_CONTENT_TAG) + if content: + correlation_filter_parameters_ele = content\ + .find(constants.RULE_DESCRIPTION_TAG) \ + .find(constants.RULE_FILTER_TAG) \ + .find(constants.RULE_FILTER_COR_PROPERTIES_TAG) + if correlation_filter_parameters_ele: + serialize_key_values(correlation_filter_parameters_ele, rule_descripiton.filter.properties) + sql_filter_parameters_ele = content\ + .find(constants.RULE_DESCRIPTION_TAG) \ + .find(constants.RULE_FILTER_TAG) \ + .find(constants.RULE_PARAMETERS_TAG) + if sql_filter_parameters_ele: + serialize_key_values(sql_filter_parameters_ele, rule_descripiton.filter.parameters) + sql_action_parameters_ele = content\ + .find(constants.RULE_DESCRIPTION_TAG) \ + .find(constants.RULE_ACTION_TAG) \ + .find(constants.RULE_PARAMETERS_TAG) + if sql_action_parameters_ele: + serialize_key_values(sql_action_parameters_ele, rule_descripiton.action.parameters) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_xml_workaround_policy.py b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_xml_workaround_policy.py index ed45887e8247..277db51df0eb 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/management/_xml_workaround_policy.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/management/_xml_workaround_policy.py @@ -20,22 +20,6 @@ class ServiceBusXMLWorkaroundPolicy(SansIOHTTPPolicy): 1 ... - - Another problem is Swagger specification doesn't allow an XML tag to have both a value and attributes. - For instance value1 can't be defined in swagger. - So here we add it. - - - 1 - ... - - - key1 - value1 - - - - """ def on_request(self, request): # type: (PipelineRequest) -> None @@ -50,10 +34,6 @@ def on_request(self, request): if b'' in request_body: - request_body = request_body.replace( - b'', - b'') request.http_request.body = request_body request.http_request.data = request_body request.http_request.headers["Content-Length"] = str(len(request_body)) diff --git a/sdk/servicebus/azure-servicebus/migration_guide.md b/sdk/servicebus/azure-servicebus/migration_guide.md index 7a5c71610366..98281a340add 100644 --- a/sdk/servicebus/azure-servicebus/migration_guide.md +++ b/sdk/servicebus/azure-servicebus/migration_guide.md @@ -77,6 +77,11 @@ semantics with the sender or receiver lifetime. | `azure.servicebus.control_client.ServiceBusService().create_queue(queue_name)` | `azure.servicebus.management.ServiceBusManagementClient().create_queue(queue_name)` | [Create a queue](./samples/sync_samples/mgmt_queue.py) | | `azure.servicebus.ServiceBusClient().list_queues()` | `azure.servicebus.management.ServiceBusManagementClient().list_queues()` | [List queues](./samples/sync_samples/mgmt_queue.py ) | +### Working with AutoLockRenew +| In v0.50 | Equivalent in v7 | Sample | +|---|---|---| +| `azure.servicebus.AutoLockRenew().shutdown()` | `azure.servicebus.AutoLockRenew().close()` | [Close an auto-lock-renewer](./samples/sync_samples/auto_lock_renew.py) | + ## Migration samples diff --git a/sdk/servicebus/azure-servicebus/samples/README.md b/sdk/servicebus/azure-servicebus/samples/README.md index 12dc083032cb..9f9b47b4b25d 100644 --- a/sdk/servicebus/azure-servicebus/samples/README.md +++ b/sdk/servicebus/azure-servicebus/samples/README.md @@ -51,6 +51,7 @@ Both [sync version](./sync_samples) and [async version](./async_samples) of samp - [auto_lock_renew.py](./sync_samples/auto_lock_renew.py) ([async_version](./async_samples/auto_lock_renew_async.py)) - Examples to show usage of AutoLockRenew: - Automatically renew lock on message received from non-sessionful entity - Automatically renew lock on the session of sessionful entity + - Configure a callback to be triggered on auto lock renew failures. - [mgmt_queue](./sync_samples/mgmt_queue.py) ([async_version](./async_samples/mgmt_queue_async.py)) - Examples to manage queue entities under a given servicebus namespace - Create a queue - Delete a queue diff --git a/sdk/servicebus/azure-servicebus/samples/async_samples/auto_lock_renew_async.py b/sdk/servicebus/azure-servicebus/samples/async_samples/auto_lock_renew_async.py index 05991ee0c4aa..917eec08f0b0 100644 --- a/sdk/servicebus/azure-servicebus/samples/async_samples/auto_lock_renew_async.py +++ b/sdk/servicebus/azure-servicebus/samples/async_samples/auto_lock_renew_async.py @@ -18,6 +18,7 @@ from azure.servicebus import Message from azure.servicebus.aio import ServiceBusClient, AutoLockRenew +from azure.servicebus.exceptions import MessageLockExpired CONNECTION_STR = os.environ['SERVICE_BUS_CONNECTION_STR'] QUEUE_NAME = os.environ["SERVICE_BUS_QUEUE_NAME"] @@ -50,7 +51,7 @@ async def renew_lock_on_message_received_from_non_sessionful_entity(): await msg.complete() print('Complete messages.') - await renewer.shutdown() + await renewer.close() async def renew_lock_on_session_of_the_sessionful_entity(): @@ -81,9 +82,50 @@ async def renew_lock_on_session_of_the_sessionful_entity(): await msg.complete() print('Complete messages.') - await renewer.shutdown() + +async def renew_lock_with_lock_renewal_failure_callback(): + servicebus_client = ServiceBusClient.from_connection_string(conn_str=CONNECTION_STR) + + async with servicebus_client: + async with servicebus_client.get_queue_sender(queue_name=QUEUE_NAME) as sender: + await sender.send_messages(Message("message")) + + async with AutoLockRenew() as renewer: + # For this sample we're going to set the renewal recurrence of the autolockrenewer to greater than the + # service side message lock duration, to demonstrate failure. Normally, this should not be adjusted. + renewer._sleep_time = 40 + async with servicebus_client.get_queue_receiver(queue_name=QUEUE_NAME, prefetch=10) as receiver: + + async def on_lock_renew_failure_callback(renewable, error): + # If auto-lock-renewal fails, this function will be called. + # If failure is due to an error, the second argument will be populated, otherwise + # it will default to `None`. + # This callback can be an ideal location to log the failure, or take action to safely + # handle any processing on the message or session that was in progress. + print("Intentionally failed to renew lock on {} due to {}".format(renewable, error)) + + received_msgs = await receiver.receive_messages(max_batch_size=1, max_wait_time=5) + + for msg in received_msgs: + # automatically renew the lock on each message for 120 seconds + renewer.register(msg, timeout=90, on_lock_renew_failure=on_lock_renew_failure_callback) + print('Register messages into AutoLockRenew done.') + + # Cause the messages and autorenewal to time out. + # Other reasons for renew failure could include a network or service outage. + await asyncio.sleep(80) + + try: + for msg in received_msgs: + await msg.complete() + except MessageLockExpired as e: + print('Messages cannot be settled if they have timed out. (This is expected)') + + print('Lock renew failure demonstration complete.') + loop = asyncio.get_event_loop() loop.run_until_complete(renew_lock_on_message_received_from_non_sessionful_entity()) loop.run_until_complete(renew_lock_on_session_of_the_sessionful_entity()) +loop.run_until_complete(renew_lock_with_lock_renewal_failure_callback()) \ No newline at end of file diff --git a/sdk/servicebus/azure-servicebus/samples/async_samples/sample_code_servicebus_async.py b/sdk/servicebus/azure-servicebus/samples/async_samples/sample_code_servicebus_async.py index b4ded73c2eba..e4b9fa76d014 100644 --- a/sdk/servicebus/azure-servicebus/samples/async_samples/sample_code_servicebus_async.py +++ b/sdk/servicebus/azure-servicebus/samples/async_samples/sample_code_servicebus_async.py @@ -22,7 +22,7 @@ async def process_message(message): - print(message) + print(str(message)) def example_create_servicebus_client_async(): @@ -206,14 +206,14 @@ async def example_send_and_receive_async(): async with servicebus_receiver: messages = await servicebus_receiver.peek_messages() for message in messages: - print(message) + print(str(message)) # [END peek_messages_async] # [START receive_async] async with servicebus_receiver: messages = await servicebus_receiver.receive_messages(max_wait_time=5) for message in messages: - print(message) + print(str(message)) await message.complete() # [END receive_async] @@ -240,7 +240,7 @@ async def example_receive_deferred_async(): messages = await servicebus_receiver.receive_messages(max_wait_time=5) for message in messages: deferred_sequenced_numbers.append(message.sequence_number) - print(message) + print(str(message)) await message.defer() received_deferred_msg = await servicebus_receiver.receive_deferred_messages( diff --git a/sdk/servicebus/azure-servicebus/samples/async_samples/session_pool_receive_async.py b/sdk/servicebus/azure-servicebus/samples/async_samples/session_pool_receive_async.py index 9dca5337a921..043e4ccf9a28 100644 --- a/sdk/servicebus/azure-servicebus/samples/async_samples/session_pool_receive_async.py +++ b/sdk/servicebus/azure-servicebus/samples/async_samples/session_pool_receive_async.py @@ -27,10 +27,9 @@ async def message_processing(servicebus_client, queue_name): await receiver.session.set_session_state("OPEN") async for message in receiver: print("Message: {}".format(message)) - print("Time to live: {}".format(message.header.time_to_live)) + print("Time to live: {}".format(message.time_to_live)) print("Sequence number: {}".format(message.sequence_number)) - print("Enqueue Sequence number: {}".format(message.enqueue_sequence_number)) - print("Partition ID: {}".format(message.partition_id)) + print("Enqueue Sequence number: {}".format(message.enqueued_sequence_number)) print("Partition Key: {}".format(message.partition_key)) print("Locked until: {}".format(message.locked_until_utc)) print("Lock Token: {}".format(message.lock_token)) diff --git a/sdk/servicebus/azure-servicebus/samples/sync_samples/auto_lock_renew.py b/sdk/servicebus/azure-servicebus/samples/sync_samples/auto_lock_renew.py index 32f977a5e935..92268bbcf3f3 100644 --- a/sdk/servicebus/azure-servicebus/samples/sync_samples/auto_lock_renew.py +++ b/sdk/servicebus/azure-servicebus/samples/sync_samples/auto_lock_renew.py @@ -17,6 +17,7 @@ import time from azure.servicebus import ServiceBusClient, AutoLockRenew, Message +from azure.servicebus.exceptions import MessageLockExpired CONNECTION_STR = os.environ['SERVICE_BUS_CONNECTION_STR'] QUEUE_NAME = os.environ["SERVICE_BUS_QUEUE_NAME"] @@ -49,7 +50,7 @@ def renew_lock_on_message_received_from_non_sessionful_entity(): msg.complete() # Settling the message deregisters it from the AutoLockRenewer print('Complete messages.') - renewer.shutdown() + renewer.close() def renew_lock_on_session_of_the_sessionful_entity(): @@ -82,8 +83,50 @@ def renew_lock_on_session_of_the_sessionful_entity(): print('Complete messages.') - renewer.shutdown() + renewer.close() + + +def renew_lock_with_lock_renewal_failure_callback(): + servicebus_client = ServiceBusClient.from_connection_string(conn_str=CONNECTION_STR) + + with servicebus_client: + with servicebus_client.get_queue_sender(queue_name=QUEUE_NAME) as sender: + sender.send_messages(Message("message")) + + with AutoLockRenew() as renewer: + # For this sample we're going to set the renewal recurrence of the autolockrenewer to greater than the + # service side message lock duration, to demonstrate failure. Normally, this should not be adjusted. + renewer._sleep_time = 40 + with servicebus_client.get_queue_receiver(queue_name=QUEUE_NAME, prefetch=10) as receiver: + + def on_lock_renew_failure_callback(renewable, error): + # If auto-lock-renewal fails, this function will be called. + # If failure is due to an error, the second argument will be populated, otherwise + # it will default to `None`. + # This callback can be an ideal location to log the failure, or take action to safely + # handle any processing on the message or session that was in progress. + print("Intentionally failed to renew lock on {} due to {}".format(renewable, error)) + + received_msgs = receiver.receive_messages(max_batch_size=1, max_wait_time=5) + + for msg in received_msgs: + # automatically renew the lock on each message for 120 seconds + renewer.register(msg, timeout=90, on_lock_renew_failure=on_lock_renew_failure_callback) + print('Register messages into AutoLockRenew done.') + + # Cause the messages and autorenewal to time out. + # Other reasons for renew failure could include a network or service outage. + time.sleep(80) + + try: + for msg in received_msgs: + msg.complete() + except MessageLockExpired as e: + print('Messages cannot be settled if they have timed out. (This is expected)') + + print('Lock renew failure demonstration complete.') renew_lock_on_message_received_from_non_sessionful_entity() renew_lock_on_session_of_the_sessionful_entity() +renew_lock_with_lock_renewal_failure_callback() \ No newline at end of file diff --git a/sdk/servicebus/azure-servicebus/samples/sync_samples/sample_code_servicebus.py b/sdk/servicebus/azure-servicebus/samples/sync_samples/sample_code_servicebus.py index 19df1c3ff818..1e6393b8f288 100644 --- a/sdk/servicebus/azure-servicebus/samples/sync_samples/sample_code_servicebus.py +++ b/sdk/servicebus/azure-servicebus/samples/sync_samples/sample_code_servicebus.py @@ -18,7 +18,7 @@ def process_message(message): - print(message) + print(str(message)) def example_create_servicebus_client_sync(): @@ -199,18 +199,21 @@ def example_send_and_receive_sync(): # [END create_batch_sync] # [START send_complex_message] - message = Message("Hello World!!") - message.session_id = "MySessionID" - message.partition_key = "UsingSpecificPartition" - message.user_properties = {'data': 'custom_data'} - message.time_to_live = datetime.timedelta(seconds=30) + message = Message( + "Hello World!!", + session_id="MySessionID", + partition_key="UsingSpecificPartition", + user_properties={'data': 'custom_data'}, + time_to_live=datetime.timedelta(seconds=30), + label='MyLabel' + ) # [END send_complex_message] # [START peek_messages_sync] with servicebus_receiver: messages = servicebus_receiver.peek_messages() for message in messages: - print(message) + print(str(message)) # [END peek_messages_sync] # [START auto_lock_renew_message_sync] @@ -229,7 +232,7 @@ def example_send_and_receive_sync(): with servicebus_receiver: messages = servicebus_receiver.receive_messages(max_wait_time=5) for message in messages: - print(message) + print(str(message)) message.complete() # [END receive_sync] @@ -239,13 +242,11 @@ def example_send_and_receive_sync(): print("Receiving: {}".format(message)) print("Time to live: {}".format(message.time_to_live)) print("Sequence number: {}".format(message.sequence_number)) - print("Enqueue Sequence numger: {}".format(message.enqueue_sequence_number)) - print("Partition ID: {}".format(message.partition_id)) + print("Enqueued Sequence numger: {}".format(message.enqueued_sequence_number)) print("Partition Key: {}".format(message.partition_key)) - print("User Properties: {}".format(message.user_properties)) - print("Annotations: {}".format(message.annotations)) - print("Delivery count: {}".format(message.header.delivery_count)) - print("Message ID: {}".format(message.properties.message_id)) + print("Properties: {}".format(message.properties)) + print("Delivery count: {}".format(message.delivery_count)) + print("Message ID: {}".format(message.message_id)) print("Locked until: {}".format(message.locked_until_utc)) print("Lock Token: {}".format(message.lock_token)) print("Enqueued time: {}".format(message.enqueued_time_utc)) @@ -268,7 +269,7 @@ def example_receive_deferred_sync(): messages = servicebus_receiver.receive_messages(max_wait_time=5) for message in messages: deferred_sequenced_numbers.append(message.sequence_number) - print(message) + print(str(message)) message.defer() received_deferred_msg = servicebus_receiver.receive_deferred_messages( diff --git a/sdk/servicebus/azure-servicebus/samples/sync_samples/session_pool_receive.py b/sdk/servicebus/azure-servicebus/samples/sync_samples/session_pool_receive.py index e64705189aa2..26ddcb75cb72 100644 --- a/sdk/servicebus/azure-servicebus/samples/sync_samples/session_pool_receive.py +++ b/sdk/servicebus/azure-servicebus/samples/sync_samples/session_pool_receive.py @@ -26,10 +26,9 @@ def message_processing(sb_client, queue_name, messages): for message in receiver: messages.append(message) print("Message: {}".format(message)) - print("Time to live: {}".format(message.header.time_to_live)) + print("Time to live: {}".format(message.time_to_live)) print("Sequence number: {}".format(message.sequence_number)) - print("Enqueue Sequence number: {}".format(message.enqueue_sequence_number)) - print("Partition ID: {}".format(message.partition_id)) + print("Enqueue Sequence number: {}".format(message.enqueued_sequence_number)) print("Partition Key: {}".format(message.partition_key)) print("Locked until: {}".format(message.locked_until_utc)) print("Lock Token: {}".format(message.lock_token)) diff --git a/sdk/servicebus/azure-servicebus/setup.py b/sdk/servicebus/azure-servicebus/setup.py index edc32a00f41f..1cecc3406a3c 100644 --- a/sdk/servicebus/azure-servicebus/setup.py +++ b/sdk/servicebus/azure-servicebus/setup.py @@ -82,7 +82,9 @@ 'msrestazure>=0.4.32,<2.0.0', 'azure-common~=1.1', 'msrest>=0.6.17,<2.0.0', - 'azure-core<2.0.0,>=1.6.0' + 'azure-core<2.0.0,>=1.6.0', + "isodate>=0.6.0", + "six>=1.6", ], extras_require={ ":python_version<'3.0'": ['azure-nspkg', 'futures'], diff --git a/sdk/servicebus/azure-servicebus/tests/async_tests/mgmt_tests/recordings/test_mgmt_rules_async.test_async_mgmt_rule_create.yaml b/sdk/servicebus/azure-servicebus/tests/async_tests/mgmt_tests/recordings/test_mgmt_rules_async.test_async_mgmt_rule_create.yaml index 1ae5e27da0e4..340889052687 100644 --- a/sdk/servicebus/azure-servicebus/tests/async_tests/mgmt_tests/recordings/test_mgmt_rules_async.test_async_mgmt_rule_create.yaml +++ b/sdk/servicebus/azure-servicebus/tests/async_tests/mgmt_tests/recordings/test_mgmt_rules_async.test_async_mgmt_rule_create.yaml @@ -5,22 +5,22 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: GET uri: https://servicebustestsbname.servicebus.windows.net/$Resources/topics?$skip=0&$top=100&api-version=2017-04 response: body: - string: Topicshttps://servicebustest5levlyksxm.servicebus.windows.net/$Resources/topics?$skip=0&$top=100&api-version=2017-042020-07-02T06:05:01Z + string: Topicshttps://servicebustestviy6yieihi.servicebus.windows.net/$Resources/topics?$skip=0&$top=100&api-version=2017-042020-07-17T02:29:56Z headers: content-type: application/atom+xml;type=feed;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:01 GMT + date: Fri, 17 Jul 2020 02:29:56 GMT server: Microsoft-HTTPAPI/2.0 transfer-encoding: chunked status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/$Resources/topics?$skip=0&$top=100&api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/$Resources/topics?$skip=0&$top=100&api-version=2017-04 - request: body: ' @@ -34,26 +34,26 @@ interactions: Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf?api-version=2017-04 response: body: - string: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf?api-version=2017-04topic_testaddf2020-07-02T06:05:02Z2020-07-02T06:05:02Zservicebustest5levlyksxmhttps://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf?api-version=2017-04topic_testaddf2020-07-17T02:29:56Z2020-07-17T02:29:57Zservicebustestviy6yieihiP10675199DT2H48M5.4775807S1024falsePT10Mtrue0falsefalseActive2020-07-02T06:05:02.167Z2020-07-02T06:05:02.203ZtrueP10675199DT2H48M5.4775807SfalseAvailablefalsefalse + xmlns:i="http://www.w3.org/2001/XMLSchema-instance">P10675199DT2H48M5.4775807S1024falsePT10Mtrue0falsefalseActive2020-07-17T02:29:56.967Z2020-07-17T02:29:57.04ZtrueP10675199DT2H48M5.4775807SfalseAvailablefalsefalse headers: content-type: application/atom+xml;type=entry;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:02 GMT + date: Fri, 17 Jul 2020 02:29:56 GMT server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 201 message: Created - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf?api-version=2017-04 - request: body: ' @@ -67,231 +67,255 @@ interactions: Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04 response: body: - string: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04sub_testkkk2020-07-02T06:05:02Z2020-07-02T06:05:02Zhttps://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04sub_testkkk2020-07-17T02:29:57Z2020-07-17T02:29:57ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010trueActive2020-07-02T06:05:02.6809266Z2020-07-02T06:05:02.6809266Z0001-01-01T00:00:00P10675199DT2H48M5.4775807SAvailable + xmlns:i="http://www.w3.org/2001/XMLSchema-instance">PT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010trueActive2020-07-17T02:29:57.5311135Z2020-07-17T02:29:57.5311135Z0001-01-01T00:00:00P10675199DT2H48M5.4775807SAvailable headers: content-type: application/atom+xml;type=entry;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:02 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:57 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 201 message: Created - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04 - request: body: ' testcidSET Priority = ''low''test_rule_1' + xsi:type="CorrelationFilter">testcidkey_stringstr1key_int2key_long2147483650key_boolfalsekey_datetime2020-07-05T11:12:13key_durationP1DT2H3MSET Priority = @param20@param2020-07-05T11:12:13test_rule_1' headers: Accept: - application/xml Content-Length: - - '518' + - '1765' Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04 response: body: - string: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04test_rule_12020-07-02T06:05:02Z2020-07-02T06:05:02Zhttps://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04test_rule_12020-07-17T02:29:57Z2020-07-17T02:29:57ZtestcidSET Priority = 'low'202020-07-02T06:05:02.9777986Ztest_rule_1 + xmlns:i="http://www.w3.org/2001/XMLSchema-instance">testcidkey_stringstr1key_int2key_long2147483650key_boolfalsekey_datetime2020-07-05T11:12:13key_durationP1DT2H3MSET Priority = @param20@param2020-07-05T11:12:132020-07-17T02:29:57.7811732Ztest_rule_1 headers: content-type: application/atom+xml;type=entry;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:02 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:57 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 201 message: Created - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04 - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: GET uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?enrich=false&api-version=2017-04 response: body: - string: sb://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?enrich=false&api-version=2017-04test_rule_12020-07-02T06:05:02Z2020-07-02T06:05:02Zsb://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?enrich=false&api-version=2017-04test_rule_12020-07-17T02:29:57Z2020-07-17T02:29:57ZtestcidSET Priority = 'low'202020-07-02T06:05:02.9848695Ztest_rule_1 + xmlns:i="http://www.w3.org/2001/XMLSchema-instance">testcidkey_stringstr1key_int2key_long2147483650key_boolfalsekey_datetime2020-07-05T11:12:13key_durationP1DT2H3MSET Priority = @param20@param2020-07-05T11:12:132020-07-17T02:29:57.7591895Ztest_rule_1 headers: content-type: application/atom+xml;type=entry;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:02 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:57 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?enrich=false&api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?enrich=false&api-version=2017-04 - request: body: ' Priority = ''low''Priority = @param120@param1str1test_rule_2' headers: Accept: - application/xml Content-Length: - - '463' + - '690' Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04 response: body: - string: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04test_rule_22020-07-02T06:05:03Z2020-07-02T06:05:03Zhttps://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04test_rule_22020-07-17T02:29:57Z2020-07-17T02:29:57ZPriority - = 'low'202020-07-02T06:05:03.087174Ztest_rule_2 + = @param120@param1str12020-07-17T02:29:57.9998237Ztest_rule_2 headers: content-type: application/atom+xml;type=entry;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:02 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:57 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 201 message: Created - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04 - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: GET uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?enrich=false&api-version=2017-04 response: body: - string: sb://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?enrich=false&api-version=2017-04test_rule_22020-07-02T06:05:03Z2020-07-02T06:05:03Zsb://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?enrich=false&api-version=2017-04test_rule_22020-07-17T02:29:57Z2020-07-17T02:29:57ZPriority - = 'low'202020-07-02T06:05:03.0942588Ztest_rule_2 + = @param120@param1str12020-07-17T02:29:57.9779356Ztest_rule_2 headers: content-type: application/atom+xml;type=entry;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:02 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:57 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?enrich=false&api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?enrich=false&api-version=2017-04 - request: body: ' 1 = 1test_rule_3' + xsi:type="TrueFilter">1=120truetest_rule_3' headers: Accept: - application/xml Content-Length: - - '453' + - '545' Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04 response: body: - string: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04test_rule_32020-07-02T06:05:03Z2020-07-02T06:05:03Zhttps://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04test_rule_32020-07-17T02:29:58Z2020-07-17T02:29:58Z1=1202020-07-02T06:05:03.2277809Ztest_rule_3 + i:type="EmptyRuleAction"/>2020-07-17T02:29:58.2189657Ztest_rule_3 headers: content-type: application/atom+xml;type=entry;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:02 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:57 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 201 message: Created - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04 - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: GET uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?enrich=false&api-version=2017-04 response: body: - string: sb://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?enrich=false&api-version=2017-04test_rule_32020-07-02T06:05:03Z2020-07-02T06:05:03Zsb://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?enrich=false&api-version=2017-04test_rule_32020-07-17T02:29:58Z2020-07-17T02:29:58Z1=1202020-07-02T06:05:03.2348363Ztest_rule_3 + i:type="EmptyRuleAction"/>2020-07-17T02:29:58.2138767Ztest_rule_3 headers: content-type: application/atom+xml;type=entry;charset=utf-8 - date: Thu, 02 Jul 2020 06:05:02 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:57 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?enrich=false&api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?enrich=false&api-version=2017-04 - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04 response: @@ -299,21 +323,21 @@ interactions: string: '' headers: content-length: '0' - date: Thu, 02 Jul 2020 06:05:02 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:58 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04 - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04 response: @@ -321,21 +345,21 @@ interactions: string: '' headers: content-length: '0' - date: Thu, 02 Jul 2020 06:05:03 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:58 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04 - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04 response: @@ -343,21 +367,21 @@ interactions: string: '' headers: content-length: '0' - date: Thu, 02 Jul 2020 06:05:03 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:58 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04 - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04 response: @@ -365,21 +389,21 @@ interactions: string: '' headers: content-length: '0' - date: Thu, 02 Jul 2020 06:05:03 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:58 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04 - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf?api-version=2017-04 response: @@ -387,12 +411,12 @@ interactions: string: '' headers: content-length: '0' - date: Thu, 02 Jul 2020 06:05:03 GMT - etag: '637292667022030000' + date: Fri, 17 Jul 2020 02:29:58 GMT + etag: '637305497970400000' server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 status: code: 200 message: OK - url: https://servicebustest5levlyksxm.servicebus.windows.net/topic_testaddf?api-version=2017-04 + url: https://servicebustestviy6yieihi.servicebus.windows.net/topic_testaddf?api-version=2017-04 version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/async_tests/mgmt_tests/test_mgmt_rules_async.py b/sdk/servicebus/azure-servicebus/tests/async_tests/mgmt_tests/test_mgmt_rules_async.py index 82a300513fe8..b01eed309925 100644 --- a/sdk/servicebus/azure-servicebus/tests/async_tests/mgmt_tests/test_mgmt_rules_async.py +++ b/sdk/servicebus/azure-servicebus/tests/async_tests/mgmt_tests/test_mgmt_rules_async.py @@ -4,11 +4,14 @@ # license information. #-------------------------------------------------------------------------- import logging +from datetime import datetime, timedelta + import pytest import msrest from azure.servicebus.aio.management import ServiceBusManagementClient from azure.servicebus.management import RuleDescription, CorrelationRuleFilter, SqlRuleFilter, TrueRuleFilter, SqlRuleAction +from azure.servicebus.management._constants import INT32_MAX_VALUE from utilities import get_logger from azure.core.exceptions import HttpResponseError, ResourceExistsError @@ -34,11 +37,22 @@ async def test_async_mgmt_rule_create(self, servicebus_namespace_connection_stri rule_name_2 = 'test_rule_2' rule_name_3 = 'test_rule_3' - correlation_fitler = CorrelationRuleFilter(correlation_id='testcid') - sql_rule_action = SqlRuleAction(sql_expression="SET Priority = 'low'") + correlation_fitler = CorrelationRuleFilter(correlation_id='testcid', properties={ + "key_string": "str1", + "key_int": 2, + "key_long": INT32_MAX_VALUE + 3, + "key_bool": False, + "key_datetime": datetime(2020, 7, 5, 11, 12, 13), + "key_duration": timedelta(days=1, hours=2, minutes=3) + }) + sql_rule_action = SqlRuleAction(sql_expression="SET Priority = @param", parameters={ + "@param": datetime(2020, 7, 5, 11, 12, 13), + }) rule_1 = RuleDescription(name=rule_name_1, filter=correlation_fitler, action=sql_rule_action) - sql_filter = SqlRuleFilter("Priority = 'low'") + sql_filter = SqlRuleFilter("Priority = @param1", parameters={ + "@param1": "str1", + }) rule_2 = RuleDescription(name=rule_name_2, filter=sql_filter) bool_filter = TrueRuleFilter() @@ -50,14 +64,23 @@ async def test_async_mgmt_rule_create(self, servicebus_namespace_connection_stri await mgmt_service.create_rule(topic_name, subscription_name, rule_1) rule_desc = await mgmt_service.get_rule(topic_name, subscription_name, rule_name_1) + rule_properties = rule_desc.filter.properties assert type(rule_desc.filter) == CorrelationRuleFilter assert rule_desc.filter.correlation_id == 'testcid' - assert rule_desc.action.sql_expression == "SET Priority = 'low'" + assert rule_desc.action.sql_expression == "SET Priority = @param" + assert rule_desc.action.parameters["@param"] == datetime(2020, 7, 5, 11, 12, 13) + assert rule_properties["key_string"] == "str1" + assert rule_properties["key_int"] == 2 + assert rule_properties["key_long"] == INT32_MAX_VALUE + 3 + assert rule_properties["key_bool"] is False + assert rule_properties["key_datetime"] == datetime(2020, 7, 5, 11, 12, 13) + assert rule_properties["key_duration"] == timedelta(days=1, hours=2, minutes=3) await mgmt_service.create_rule(topic_name, subscription_name, rule_2) rule_desc = await mgmt_service.get_rule(topic_name, subscription_name, rule_name_2) assert type(rule_desc.filter) == SqlRuleFilter - assert rule_desc.filter.sql_expression == "Priority = 'low'" + assert rule_desc.filter.sql_expression == "Priority = @param1" + assert rule_desc.filter.parameters["@param1"] == "str1" await mgmt_service.create_rule(topic_name, subscription_name, rule_3) rule_desc = await mgmt_service.get_rule(topic_name, subscription_name, rule_name_3) diff --git a/sdk/servicebus/azure-servicebus/tests/async_tests/mocks_async.py b/sdk/servicebus/azure-servicebus/tests/async_tests/mocks_async.py new file mode 100644 index 000000000000..fd3f70b06c9b --- /dev/null +++ b/sdk/servicebus/azure-servicebus/tests/async_tests/mocks_async.py @@ -0,0 +1,32 @@ +from datetime import timedelta + +from azure.servicebus._common.utils import utc_now + +class MockReceiver: + def __init__(self): + self._running = True + +class MockReceivedMessage: + def __init__(self, prevent_renew_lock=False, exception_on_renew_lock=False): + self._lock_duration = 2 + + self._received_timestamp_utc = utc_now() + self.locked_until_utc = self._received_timestamp_utc + timedelta(seconds=self._lock_duration) + self._settled = False + self._receiver = MockReceiver() + + self._prevent_renew_lock = prevent_renew_lock + self._exception_on_renew_lock = exception_on_renew_lock + + + async def renew_lock(self): + if self._exception_on_renew_lock: + raise Exception("Generated exception via MockReceivedMessage exception_on_renew_lock") + if not self._prevent_renew_lock: + self.locked_until_utc = self.locked_until_utc + timedelta(seconds=self._lock_duration) + + @property + def _lock_expired(self): + if self.locked_until_utc and self.locked_until_utc <= utc_now(): + return True + return False \ No newline at end of file diff --git a/sdk/servicebus/azure-servicebus/tests/async_tests/test_queues_async.py b/sdk/servicebus/azure-servicebus/tests/async_tests/test_queues_async.py index f3d6dd21a29f..c3b609ad906a 100644 --- a/sdk/servicebus/azure-servicebus/tests/async_tests/test_queues_async.py +++ b/sdk/servicebus/azure-servicebus/tests/async_tests/test_queues_async.py @@ -33,6 +33,7 @@ from devtools_testutils import AzureMgmtTestCase, CachedResourceGroupPreparer from servicebus_preparer import CachedServiceBusNamespacePreparer, CachedServiceBusQueuePreparer, ServiceBusQueuePreparer from utilities import get_logger, print_message, sleep_until_expired +from mocks_async import MockReceivedMessage _logger = get_logger(logging.DEBUG) @@ -51,7 +52,6 @@ async def test_async_queue_by_queue_client_conn_str_receive_handler_peeklock(sel async with sb_client.get_queue_sender(servicebus_queue.name) as sender: for i in range(10): message = Message("Handler message no. {}".format(i)) - message.enqueue_sequence_number = i await sender.send_messages(message) with pytest.raises(ServiceBusConnectionError): @@ -129,7 +129,7 @@ async def test_github_issue_6178_async(self, servicebus_namespace_connection_str _logger.debug(message) _logger.debug(message.sequence_number) _logger.debug(message.enqueued_time_utc) - _logger.debug(message.expired) + _logger.debug(message._lock_expired) await message.complete() await asyncio.sleep(40) @@ -146,11 +146,10 @@ async def test_async_queue_by_queue_client_conn_str_receive_handler_receiveandde async with sb_client.get_queue_sender(servicebus_queue.name) as sender: for i in range(10): message = Message("Handler message no. {}".format(i)) - message.enqueue_sequence_number = i await sender.send_messages(message) messages = [] - async with sb_client.get_queue_receiver(servicebus_queue.name, mode=ReceiveSettleMode.ReceiveAndDelete, idle_timeout=5) as receiver: + async with sb_client.get_queue_receiver(servicebus_queue.name, mode=ReceiveSettleMode.ReceiveAndDelete, idle_timeout=8) as receiver: async for message in receiver: messages.append(message) with pytest.raises(MessageAlreadySettled): @@ -252,11 +251,11 @@ async def test_async_queue_by_servicebus_conn_str_client_iter_messages_with_aban count = 0 async for message in receiver: print_message(_logger, message) - if not message.header.delivery_count: + if not message.delivery_count: count += 1 await message.abandon() else: - assert message.header.delivery_count == 1 + assert message.delivery_count == 1 await message.complete() assert count == 10 @@ -407,8 +406,10 @@ async def test_async_queue_by_servicebus_client_iter_messages_with_retrieve_defe async for message in receiver: count += 1 print_message(_logger, message) - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' await message.complete() assert count == 10 @@ -521,8 +522,10 @@ async def test_async_queue_by_servicebus_client_receive_batch_with_deadletter(se async for message in dl_receiver: await message.complete() count += 1 - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' assert count == 10 @pytest.mark.liveTest @@ -560,8 +563,10 @@ async def test_async_queue_by_servicebus_client_receive_batch_with_retrieve_dead count = 0 async for message in receiver: print_message(_logger, message) - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' await message.complete() count += 1 assert count == 10 @@ -665,7 +670,7 @@ async def test_async_queue_by_servicebus_client_renew_message_locks(self, servic try: with pytest.raises(AttributeError): - assert not message.expired + assert not message._lock_expired for m in messages: time.sleep(5) initial_expiry = m.locked_until_utc @@ -698,33 +703,33 @@ async def test_async_queue_by_queue_client_conn_str_receive_handler_with_autoloc async for message in receiver: if not messages: messages.append(message) - assert not message.expired + assert not message._lock_expired renewer.register(message, timeout=60) print("Registered lock renew thread", message.locked_until_utc, utc_now()) await asyncio.sleep(60) print("Finished first sleep", message.locked_until_utc) - assert not message.expired + assert not message._lock_expired await asyncio.sleep(15) #generate autolockrenewtimeout error by going one iteration past. sleep_until_expired(message) print("Finished second sleep", message.locked_until_utc, utc_now()) - assert message.expired + assert message._lock_expired try: await message.complete() raise AssertionError("Didn't raise MessageLockExpired") except MessageLockExpired as e: assert isinstance(e.inner_exception, AutoLockRenewTimeout) else: - if message.expired: + if message._lock_expired: print("Remaining messages", message.locked_until_utc, utc_now()) - assert message.expired + assert message._lock_expired with pytest.raises(MessageLockExpired): await message.complete() else: - assert message.header.delivery_count >= 1 + assert message.delivery_count >= 1 print("Remaining messages", message.locked_until_utc, utc_now()) messages.append(message) await message.complete() - await renewer.shutdown() + await renewer.close() assert len(messages) == 11 @pytest.mark.liveTest @@ -789,14 +794,14 @@ async def test_async_queue_message_duplicate_detection(self, servicebus_namespac async with sb_client.get_queue_sender(servicebus_queue.name) as sender: for i in range(5): message = Message(str(i)) - message.properties.message_id = message_id + message.message_id = message_id await sender.send_messages(message) async with sb_client.get_queue_receiver(servicebus_queue.name, idle_timeout=5) as receiver: count = 0 async for message in receiver: print_message(_logger, message) - assert message.properties.message_id == message_id + assert message.message_id == message_id await message.complete() count += 1 assert count == 1 @@ -840,7 +845,7 @@ async def test_async_queue_message_expiry(self, servicebus_namespace_connection_ messages = await receiver.receive_messages(max_wait_time=10) assert len(messages) == 1 time.sleep(60) - assert messages[0].expired + assert messages[0]._lock_expired with pytest.raises(MessageLockExpired): await messages[0].complete() with pytest.raises(MessageLockExpired): @@ -850,7 +855,7 @@ async def test_async_queue_message_expiry(self, servicebus_namespace_connection_ messages = await receiver.receive_messages(max_wait_time=30) assert len(messages) == 1 print_message(_logger, messages[0]) - assert messages[0].header.delivery_count > 0 + assert messages[0].delivery_count > 0 await messages[0].complete() @pytest.mark.liveTest @@ -875,7 +880,7 @@ async def test_async_queue_message_lock_renew(self, servicebus_namespace_connect time.sleep(15) await messages[0].renew_lock() time.sleep(15) - assert not messages[0].expired + assert not messages[0]._lock_expired await messages[0].complete() async with sb_client.get_queue_receiver(servicebus_queue.name) as receiver: @@ -960,7 +965,7 @@ async def test_async_queue_schedule_message(self, servicebus_namespace_connectio content = str(uuid.uuid4()) message_id = uuid.uuid4() message = Message(content) - message.properties.message_id = message_id + message.message_id = message_id message.scheduled_enqueue_time_utc = enqueue_time await sender.send_messages(message) @@ -969,7 +974,7 @@ async def test_async_queue_schedule_message(self, servicebus_namespace_connectio try: data = str(messages[0]) assert data == content - assert messages[0].properties.message_id == message_id + assert messages[0].message_id == message_id assert messages[0].scheduled_enqueue_time_utc == enqueue_time assert messages[0].scheduled_enqueue_time_utc == messages[0].enqueued_time_utc.replace(microsecond=0) assert len(messages) == 1 @@ -989,27 +994,34 @@ async def test_async_queue_schedule_multiple_messages(self, servicebus_namespace servicebus_namespace_connection_string, logging_enable=False) as sb_client: enqueue_time = (utc_now() + timedelta(minutes=2)).replace(microsecond=0) messages = [] - async with sb_client.get_queue_receiver(servicebus_queue.name, prefetch=20) as receiver: - async with sb_client.get_queue_sender(servicebus_queue.name) as sender: - content = str(uuid.uuid4()) - message_id_a = uuid.uuid4() - message_a = Message(content) - message_a.properties.message_id = message_id_a - message_id_b = uuid.uuid4() - message_b = Message(content) - message_b.properties.message_id = message_id_b - tokens = await sender.schedule_messages([message_a, message_b], enqueue_time) - assert len(tokens) == 2 + receiver = sb_client.get_queue_receiver(servicebus_queue.name, prefetch=20) + sender = sb_client.get_queue_sender(servicebus_queue.name) + async with sender, receiver: + content = str(uuid.uuid4()) + message_id_a = uuid.uuid4() + message_a = Message(content) + message_a.message_id = message_id_a + message_id_b = uuid.uuid4() + message_b = Message(content) + message_b.message_id = message_id_b - recv = await receiver.receive_messages(max_wait_time=120) - messages.extend(recv) + await sender.send_messages([message_a, message_b]) + + received_messages = await receiver.receive_messages(max_batch_size=2, max_wait_time=5) + for message in received_messages: + await message.complete() + + tokens = await sender.schedule_messages(received_messages, enqueue_time) + assert len(tokens) == 2 + + messages = await receiver.receive_messages(max_wait_time=120) recv = await receiver.receive_messages(max_wait_time=5) messages.extend(recv) if messages: try: data = str(messages[0]) assert data == content - assert messages[0].properties.message_id in (message_id_a, message_id_b) + assert messages[0].message_id in (message_id_a, message_id_b) assert messages[0].scheduled_enqueue_time_utc == enqueue_time assert messages[0].scheduled_enqueue_time_utc == messages[0].enqueued_time_utc.replace(microsecond=0) assert len(messages) == 2 @@ -1103,20 +1115,91 @@ async def test_queue_message_settle_through_mgmt_link_due_to_broken_receiver_lin assert len(messages) == 1 await messages[0].complete() + @pytest.mark.asyncio - async def test_async_queue_mock_no_reusing_auto_lock_renew(self): - class MockReceivedMessage: - def __init__(self): - self.received_timestamp_utc = utc_now() - self.locked_until_utc = self.received_timestamp_utc + timedelta(seconds=10) + async def test_async_queue_mock_auto_lock_renew_callback(self): + results = [] + errors = [] + async def callback_mock(renewable, error): + results.append(renewable) + if error: + errors.append(error) + + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 # So we can run the test fast. + async with auto_lock_renew: # Check that it is called when the object expires for any reason (silent renew failure) + message = MockReceivedMessage(prevent_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + await asyncio.sleep(3) + assert len(results) == 1 and results[-1]._lock_expired == True + assert not errors + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + async with auto_lock_renew: # Check that in normal operation it does not get called + auto_lock_renew.register(renewable=MockReceivedMessage(), on_lock_renew_failure=callback_mock) + await asyncio.sleep(3) + assert not results + assert not errors + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + async with auto_lock_renew: # Check that when a message is settled, it will not get called even after expiry + message = MockReceivedMessage(prevent_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + message._settled = True + await asyncio.sleep(3) + assert not results + assert not errors + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + async with auto_lock_renew: # Check that it is called when there is an overt renew failure + message = MockReceivedMessage(exception_on_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + await asyncio.sleep(3) + assert len(results) == 1 and results[-1]._lock_expired == True + assert errors[-1] + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + async with auto_lock_renew: # Check that it is not called when the renewer is shutdown + message = MockReceivedMessage(prevent_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + await auto_lock_renew.close() + await asyncio.sleep(3) + assert not results + assert not errors + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + async with auto_lock_renew: # Check that it is not called when the receiver is shutdown + message = MockReceivedMessage(prevent_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + message._receiver._running = False + await asyncio.sleep(3) + assert not results + assert not errors - async def renew_lock(self): - self.locked_until_utc = self.locked_until_utc + timedelta(seconds=10) + @pytest.mark.asyncio + async def test_async_queue_mock_no_reusing_auto_lock_renew(self): auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + async with auto_lock_renew: auto_lock_renew.register(renewable=MockReceivedMessage()) - await asyncio.sleep(12) + await asyncio.sleep(3) with pytest.raises(ServiceBusError): async with auto_lock_renew: @@ -1126,11 +1209,12 @@ async def renew_lock(self): auto_lock_renew.register(renewable=MockReceivedMessage()) auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 auto_lock_renew.register(renewable=MockReceivedMessage()) - time.sleep(12) + time.sleep(3) - await auto_lock_renew.shutdown() + await auto_lock_renew.close() with pytest.raises(ServiceBusError): async with auto_lock_renew: @@ -1150,18 +1234,39 @@ async def test_async_queue_receive_batch_without_setting_prefetch(self, serviceb def message_content(): for i in range(20): - yield Message("Message no. {}".format(i)) + yield Message( + body="Message no. {}".format(i), + label='1st' + ) - async with sb_client.get_queue_sender(servicebus_queue.name) as sender: + sender = sb_client.get_queue_sender(servicebus_queue.name) + receiver = sb_client.get_queue_receiver(servicebus_queue.name) + + async with sender, receiver: message = BatchMessage() for each in message_content(): message.add(each) await sender.send_messages(message) - async with sb_client.get_queue_receiver(servicebus_queue.name) as receiver: - messages = await receiver.receive_messages(max_batch_size=20, max_wait_time=5) + receive_counter = 0 + message_1st_received_cnt = 0 + message_2nd_received_cnt = 0 + while message_1st_received_cnt < 20 or message_2nd_received_cnt < 20: + messages = await receiver.receive_messages(max_batch_size=20, max_wait_time=5) + if not messages: + break + receive_counter += 1 + for message in messages: + print_message(_logger, message) + if message.label == '1st': + message_1st_received_cnt += 1 + await message.complete() + message.label = '2nd' + await sender.send_messages(message) # resending received message + elif message.label == '2nd': + message_2nd_received_cnt += 1 + await message.complete() - assert len(messages) == 20 - for m in messages: - print_message(_logger, m) - await m.complete() + assert message_1st_received_cnt == 20 and message_2nd_received_cnt == 20 + # Network/server might be unstable making flow control ineffective in the leading rounds of connection iteration + assert receive_counter < 10 # Dynamic link credit issuing come info effect diff --git a/sdk/servicebus/azure-servicebus/tests/async_tests/test_sessions_async.py b/sdk/servicebus/azure-servicebus/tests/async_tests/test_sessions_async.py index 5645fa58e5a5..99b05b1d2e2a 100644 --- a/sdk/servicebus/azure-servicebus/tests/async_tests/test_sessions_async.py +++ b/sdk/servicebus/azure-servicebus/tests/async_tests/test_sessions_async.py @@ -255,8 +255,10 @@ async def test_async_session_by_servicebus_client_iter_messages_with_retrieve_de async for message in receiver: count += 1 print_message(_logger, message) - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' await message.complete() assert count == 10 @@ -355,8 +357,10 @@ async def test_async_session_by_servicebus_client_fetch_next_with_retrieve_deadl count = 0 async for message in session: print_message(_logger, message) - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' await message.complete() count += 1 assert count == 10 @@ -447,7 +451,7 @@ async def test_async_session_by_servicebus_client_renew_client_locks(self, servi try: for m in messages: with pytest.raises(TypeError): - expired = m.expired + expired = m._lock_expired assert m.locked_until_utc is None assert m.lock_token is not None time.sleep(5) @@ -477,6 +481,10 @@ async def test_async_session_by_conn_str_receive_handler_with_autolockrenew(self message = Message("{}".format(i), session_id=session_id) await sender.send_messages(message) + results = [] + async def lock_lost_callback(renewable, error): + results.append(renewable) + renewer = AutoLockRenew() messages = [] async with sb_client.get_queue_session_receiver(servicebus_queue.name, session_id=session_id, idle_timeout=5, mode=ReceiveSettleMode.PeekLock, prefetch=20) as session: @@ -487,9 +495,9 @@ async def test_async_session_by_conn_str_receive_handler_with_autolockrenew(self if not messages: await asyncio.sleep(45) print("First sleep {}".format(session.session.locked_until_utc - utc_now())) - assert not session.session.expired + assert not session.session._lock_expired with pytest.raises(TypeError): - message.expired + message._lock_expired assert message.locked_until_utc is None with pytest.raises(TypeError): await message.renew_lock() @@ -498,9 +506,10 @@ async def test_async_session_by_conn_str_receive_handler_with_autolockrenew(self messages.append(message) elif len(messages) == 1: + assert not results await asyncio.sleep(45) print("Second sleep {}".format(session.session.locked_until_utc - utc_now())) - assert session.session.expired + assert session.session._lock_expired assert isinstance(session.session.auto_renew_error, AutoLockRenewTimeout) try: await message.complete() @@ -509,7 +518,17 @@ async def test_async_session_by_conn_str_receive_handler_with_autolockrenew(self assert isinstance(e.inner_exception, AutoLockRenewTimeout) messages.append(message) - await renewer.shutdown() + # While we're testing autolockrenew and sessions, let's make sure we don't call the lock-lost callback when a session exits. + renewer._renew_period = 1 + session = None + + async with sb_client.get_queue_session_receiver(servicebus_queue.name, session_id=session_id, idle_timeout=5, mode=ReceiveSettleMode.PeekLock, prefetch=10) as receiver: + session = receiver.session + renewer.register(session, timeout=5, on_lock_renew_failure=lock_lost_callback) + await asyncio.sleep(max(0,(session.locked_until_utc - utc_now()).total_seconds()+1)) # If this pattern repeats make sleep_until_expired_async + assert not results + + await renewer.close() assert len(messages) == 2 @@ -559,10 +578,10 @@ async def test_async_session_message_expiry(self, servicebus_namespace_connectio print_message(_logger, messages[0]) await asyncio.sleep(60) #TODO: Was 30, but then lock isn't expired. with pytest.raises(TypeError): - messages[0].expired + messages[0]._lock_expired with pytest.raises(TypeError): await messages[0].renew_lock() - assert receiver.session.expired + assert receiver.session._lock_expired with pytest.raises(SessionLockExpired): await messages[0].complete() with pytest.raises(SessionLockExpired): @@ -572,7 +591,7 @@ async def test_async_session_message_expiry(self, servicebus_namespace_connectio messages = await receiver.receive_messages(max_wait_time=30) assert len(messages) == 1 print_message(_logger, messages[0]) - #assert messages[0].header.delivery_count # TODO confirm this with service + assert messages[0].delivery_count await messages[0].complete() @@ -591,7 +610,7 @@ async def test_async_session_schedule_message(self, servicebus_namespace_connect content = str(uuid.uuid4()) message_id = uuid.uuid4() message = Message(content, session_id=session_id) - message.properties.message_id = message_id + message.message_id = message_id message.scheduled_enqueue_time_utc = enqueue_time await sender.send_messages(message) @@ -604,13 +623,13 @@ async def test_async_session_schedule_message(self, servicebus_namespace_connect if messages: data = str(messages[0]) assert data == content - assert messages[0].properties.message_id == message_id + assert messages[0].message_id == message_id assert messages[0].scheduled_enqueue_time_utc == enqueue_time assert messages[0].scheduled_enqueue_time_utc == messages[0].enqueued_time_utc.replace(microsecond=0) assert len(messages) == 1 else: raise Exception("Failed to receive schdeduled message.") - await renewer.shutdown() + await renewer.close() @pytest.mark.liveTest @@ -629,10 +648,10 @@ async def test_async_session_schedule_multiple_messages(self, servicebus_namespa content = str(uuid.uuid4()) message_id_a = uuid.uuid4() message_a = Message(content, session_id=session_id) - message_a.properties.message_id = message_id_a + message_a.message_id = message_id_a message_id_b = uuid.uuid4() message_b = Message(content, session_id=session_id) - message_b.properties.message_id = message_id_b + message_b.message_id = message_id_b tokens = await sender.schedule_messages([message_a, message_b], enqueue_time) assert len(tokens) == 2 @@ -644,13 +663,13 @@ async def test_async_session_schedule_multiple_messages(self, servicebus_namespa if messages: data = str(messages[0]) assert data == content - assert messages[0].properties.message_id in (message_id_a, message_id_b) + assert messages[0].message_id in (message_id_a, message_id_b) assert messages[0].scheduled_enqueue_time_utc == enqueue_time assert messages[0].scheduled_enqueue_time_utc == messages[0].enqueued_time_utc.replace(microsecond=0) assert len(messages) == 2 else: raise Exception("Failed to receive schdeduled message.") - await renewer.shutdown() + await renewer.close() @pytest.mark.liveTest @@ -684,7 +703,7 @@ async def test_async_session_cancel_scheduled_messages(self, servicebus_namespac print(str(m)) await m.complete() raise - await renewer.shutdown() + await renewer.close() @pytest.mark.liveTest @@ -707,7 +726,7 @@ async def test_async_session_get_set_state_with_receiver(self, servicebus_namesp await session.session.set_session_state("first_state") count = 0 async for m in session: - assert m.properties.group_id == session_id.encode('utf-8') + assert m.session_id == session_id count += 1 await session.session.get_session_state() assert count == 3 diff --git a/sdk/servicebus/azure-servicebus/tests/async_tests/test_subscriptions_async.py b/sdk/servicebus/azure-servicebus/tests/async_tests/test_subscriptions_async.py index 70bff4a022f6..70dcb43b4e0a 100644 --- a/sdk/servicebus/azure-servicebus/tests/async_tests/test_subscriptions_async.py +++ b/sdk/servicebus/azure-servicebus/tests/async_tests/test_subscriptions_async.py @@ -148,6 +148,8 @@ async def test_topic_by_servicebus_client_receive_batch_with_deadletter(self, se async for message in dl_receiver: await message.complete() count += 1 - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' assert count == 10 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/__init__.py b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/__init__.py deleted file mode 100644 index 849489fca33c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__import__('pkg_resources').declare_namespace(__name__) diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/doctest_servicebusservicequeue.py b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/doctest_servicebusservicequeue.py deleted file mode 100644 index e79958e00c3c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/doctest_servicebusservicequeue.py +++ /dev/null @@ -1,55 +0,0 @@ -#------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -#-------------------------------------------------------------------------- - -""" -How To: Create a Queue ----------------------- ->>> from azure.servicebus._control_client import * ->>> bus_service = ServiceBusService(shared_access_key_name=key_name, shared_access_key_value=key_value, 'owner') ->>> bus_service.create_queue('taskqueue') -True - ->>> queue_options = Queue() ->>> queue_options.max_size_in_megabytes = '5120' ->>> queue_options.default_message_time_to_live = 'PT1M' ->>> bus_service.create_queue('taskqueue2', queue_options) -True - -How to Send Messages to a Queue -------------------------------- ->>> msg = Message('Test Message') ->>> bus_service.send_queue_message('taskqueue', msg) - -How to Receive Messages from a Queue ------------------------------------- ->>> msg = bus_service.receive_queue_message('taskqueue') ->>> print(msg.body) -Test Message - ->>> msg = Message('Test Message') ->>> bus_service.send_queue_message('taskqueue', msg) - ->>> msg = bus_service.receive_queue_message('taskqueue', peek_lock=True) ->>> print(msg.body) -Test Message ->>> msg.delete() - - ->>> bus_service.delete_queue('taskqueue') -True - ->>> bus_service.delete_queue('taskqueue2') -True - -""" -import servicebus_settings_real as settings # pylint: disable=import-error - -key_name = settings.SERVICEBUS_SAS_KEY_NAME -key_value = settings.SERVICEBUS_SAS_KEY_VALUE - -if __name__ == "__main__": - import doctest - doctest.testmod() diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/doctest_servicebusservicetopic.py b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/doctest_servicebusservicetopic.py deleted file mode 100644 index 2a3fb5d166ee..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/doctest_servicebusservicetopic.py +++ /dev/null @@ -1,86 +0,0 @@ -#------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -#-------------------------------------------------------------------------- - -""" -How to Create a Topic ---------------------- ->>> from azure.servicebus._control_client import * ->>> bus_service = ServiceBusService(shared_access_key_name=key_name, shared_access_key_value=key_value, 'owner') ->>> bus_service.create_topic('mytopic') -True - ->>> topic_options = Topic() ->>> topic_options.max_size_in_megabytes = '5120' ->>> topic_options.default_message_time_to_live = 'PT1M' ->>> bus_service.create_topic('mytopic2', topic_options) -True - -How to Create Subscriptions ---------------------------- ->>> bus_service.create_subscription('mytopic', 'AllMessages') -True - ->>> bus_service.create_subscription('mytopic', 'HighMessages') -True - ->>> rule = Rule() ->>> rule.filter_type = 'SqlFilter' ->>> rule.filter_expression = 'messagenumber > 3' ->>> bus_service.create_rule('mytopic', 'HighMessages', 'HighMessageFilter', rule) -True - ->>> bus_service.delete_rule('mytopic', 'HighMessages', DEFAULT_RULE_NAME) -True - ->>> bus_service.create_subscription('mytopic', 'LowMessages') -True - ->>> rule = Rule() ->>> rule.filter_type = 'SqlFilter' ->>> rule.filter_expression = 'messagenumber <= 3' ->>> bus_service.create_rule('mytopic', 'LowMessages', 'LowMessageFilter', rule) -True - ->>> bus_service.delete_rule('mytopic', 'LowMessages', DEFAULT_RULE_NAME) -True - -How to Send Messages to a Topic -------------------------------- ->>> for i in range(5): -... msg = Message('Msg ' + str(i), custom_properties={'messagenumber':i}) -... bus_service.send_topic_message('mytopic', msg) - -How to Receive Messages from a Subscription -------------------------------------------- ->>> msg = bus_service.receive_subscription_message('mytopic', 'LowMessages') ->>> print(msg.body) -Msg 0 - ->>> msg = bus_service.receive_subscription_message('mytopic', 'LowMessages', peek_lock=True) ->>> print(msg.body) -Msg 1 ->>> msg.delete() - -How to Delete Topics and Subscriptions --------------------------------------- ->>> bus_service.delete_subscription('mytopic', 'HighMessages') -True - ->>> bus_service.delete_queue('mytopic') -True - ->>> bus_service.delete_queue('mytopic2') -True - -""" -import servicebus_settings_real as settings # pylint: disable=import-error - -key_name = settings.SERVICEBUS_SAS_KEY_NAME -key_value = settings.SERVICEBUS_SAS_KEY_VALUE - -if __name__ == "__main__": - import doctest - doctest.testmod() diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_no_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_no_options.yaml deleted file mode 100644 index 9abe99ee24fe..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_no_options.yaml +++ /dev/null @@ -1,36 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDI6MDcuNjg3ODYz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['561'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthubad7a17a2?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthubad7a17a2?api-version=2014-01uthubad7a17a22015-06-30T21:42:09Z2015-06-30T21:42:28Zfakehubnamespace7Active2015-06-30T21:42:09.7872015-06-30T21:42:28.53340123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:27 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_no_options_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_no_options_fail_on_exist.yaml deleted file mode 100644 index 3257b2285d2a..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_no_options_fail_on_exist.yaml +++ /dev/null @@ -1,36 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDE6NTMuMDkxNzI2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['561'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthub22941d65?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthub22941d65?api-version=2014-01uthub22941d652015-06-30T21:41:55Z2015-06-30T21:41:56Zfakehubnamespace7Active2015-06-30T21:41:55.4972015-06-30T21:41:56.50340123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:41:55 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_with_authorization.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_with_authorization.yaml deleted file mode 100644 index 4055156eb729..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_with_authorization.yaml +++ /dev/null @@ -1,69 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDM6MDcuODMxMjI1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48QXV0aG9yaXphdGlvblJ1bGVzPjxBdXRob3JpemF0aW9uUnVsZSBpOnR5cGU9IlNo - YXJlZEFjY2Vzc0F1dGhvcml6YXRpb25SdWxlIj48Q2xhaW1UeXBlPlNoYXJlZEFjY2Vzc0tleTwv - Q2xhaW1UeXBlPjxDbGFpbVZhbHVlPk5vbmU8L0NsYWltVmFsdWU+PFJpZ2h0cz48QWNjZXNzUmln - aHRzPk1hbmFnZTwvQWNjZXNzUmlnaHRzPjxBY2Nlc3NSaWdodHM+U2VuZDwvQWNjZXNzUmlnaHRz - PjxBY2Nlc3NSaWdodHM+TGlzdGVuPC9BY2Nlc3NSaWdodHM+PC9SaWdodHM+PEtleU5hbWU+S2V5 - MTwvS2V5TmFtZT48UHJpbWFyeUtleT5XbGk0cmV3UEd1RXNMYW05NW5RRXdHUitlOGIreW5sdXBa - UTdWZmpiUW53PTwvUHJpbWFyeUtleT48U2Vjb25kYXJ5S2V5PmpTK2xFUlBCbWJCVkdKNUp6SXdW - UnRTR1lvRlVldW5Sb0FETlRqd1UzalU9PC9TZWNvbmRhcnlLZXk+PC9BdXRob3JpemF0aW9uUnVs - ZT48L0F1dGhvcml6YXRpb25SdWxlcz48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50Pjwv - ZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1032'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthub79c51b06?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthub79c51b06?api-version=2014-01uthub79c51b062015-06-30T21:43:10Z2015-06-30T21:43:10Zfakehubnamespace7SharedAccessKeyNoneManageSendListenKey1Wli4rewPGuEsLam95nQEwGR+e8b+ynlupZQ7VfjbQnw=jS+lERPBmbBVGJ5JzIwVRtSGYoFUeunRoADNTjwU3jU=Active2015-06-30T21:43:10.062015-06-30T21:43:10.8340123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:43:10 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakehubnamespace.servicebus.windows.net/uthub79c51b06 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthub79c51b06uthub79c51b062015-06-30T21:43:10Z2015-06-30T21:43:10Zfakehubnamespace7SharedAccessKeyNoneManageSendListenKey1Wli4rewPGuEsLam95nQEwGR+e8b+ynlupZQ7VfjbQnw=jS+lERPBmbBVGJ5JzIwVRtSGYoFUeunRoADNTjwU3jU=Active2015-06-30T21:43:10.062015-06-30T21:43:10.8340123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:43:10 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_with_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_with_options.yaml deleted file mode 100644 index 3efc7ee6a53e..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_create_event_hub_with_options.yaml +++ /dev/null @@ -1,61 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDE6NTcuNDc3Mzg5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48TWVzc2FnZVJldGVudGlvbkluRGF5cz41PC9NZXNzYWdlUmV0ZW50aW9uSW5EYXlz - PjxTdGF0dXM+QWN0aXZlPC9TdGF0dXM+PFVzZXJNZXRhZGF0YT5oZWxsbyB3b3JsZDwvVXNlck1l - dGFkYXRhPjxQYXJ0aXRpb25Db3VudD4zMjwvUGFydGl0aW9uQ291bnQ+PC9FdmVudEh1YkRlc2Ny - aXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['709'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthubde421881?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthubde421881?api-version=2014-01uthubde4218812015-06-30T21:41:59Z2015-06-30T21:42:01Zfakehubnamespace5Active2015-06-30T21:41:59.882015-06-30T21:42:01.353hello - world32012345678910111213141516171819202122232425262728293031'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:00 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakehubnamespace.servicebus.windows.net/uthubde421881 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthubde421881uthubde4218812015-06-30T21:41:59Z2015-06-30T21:42:01Zfakehubnamespace5Active2015-06-30T21:41:59.882015-06-30T21:42:01.353hello - world32012345678910111213141516171819202122232425262728293031'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:00 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_existing_event_hub.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_existing_event_hub.yaml deleted file mode 100644 index 3698fa96be90..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_existing_event_hub.yaml +++ /dev/null @@ -1,54 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDI6MDMuMDk2MjAy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['561'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthub6341cfe?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthub6341cfe?api-version=2014-01uthub6341cfe2015-06-30T21:42:05Z2015-06-30T21:42:06Zfakehubnamespace7Active2015-06-30T21:42:05.2872015-06-30T21:42:06.04740123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:05 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakehubnamespace.servicebus.windows.net/uthub6341cfe?api-version=2014-01 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 21:42:06 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_existing_event_hub_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_existing_event_hub_fail_not_exist.yaml deleted file mode 100644 index b5427c1955b3..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_existing_event_hub_fail_not_exist.yaml +++ /dev/null @@ -1,54 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDI6NDQuODg1OTIz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['561'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthube9a72335?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthube9a72335?api-version=2014-01uthube9a723352015-06-30T21:42:47Z2015-06-30T21:42:51Zfakehubnamespace7Active2015-06-30T21:42:47.8532015-06-30T21:42:51.92340123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:51 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakehubnamespace.servicebus.windows.net/uthube9a72335?api-version=2014-01 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 21:42:52 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_non_existing_event_hub.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_non_existing_event_hub.yaml deleted file mode 100644 index 19d8bd0d6bae..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_non_existing_event_hub.yaml +++ /dev/null @@ -1,23 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakehubnamespace.servicebus.windows.net/uthub7e381ea8?api-version=2014-01 - response: - body: {string: '404No service is hosted at the specified - address. TrackingId:fe18aa33-f108-4298-9d22-59e4d5b4bc5d_G30,TimeStamp:6/30/2015 - 9:42:31 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:31 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 404, message: Not Found} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_non_existing_event_hub_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_non_existing_event_hub_fail_not_exist.yaml deleted file mode 100644 index ecd22af0ff8b..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_delete_event_hub_with_non_existing_event_hub_fail_not_exist.yaml +++ /dev/null @@ -1,23 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakehubnamespace.servicebus.windows.net/uthub7ab024df?api-version=2014-01 - response: - body: {string: '404No service is hosted at the specified - address. TrackingId:1f11c16f-98cb-4b41-a01f-36dd97030b97_G48,TimeStamp:6/30/2015 - 9:43:04 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:43:03 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 404, message: Not Found} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_get_event_hub_with_existing_event_hub.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_get_event_hub_with_existing_event_hub.yaml deleted file mode 100644 index 3e03967a3779..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_get_event_hub_with_existing_event_hub.yaml +++ /dev/null @@ -1,58 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDE6NDYuMjIwNTM3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['561'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthubb21d1bcb?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthubb21d1bcb?api-version=2014-01uthubb21d1bcb2015-06-30T21:41:48Z2015-06-30T21:41:51Zfakehubnamespace7Active2015-06-30T21:41:48.4432015-06-30T21:41:51.81740123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:41:51 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakehubnamespace.servicebus.windows.net/uthubb21d1bcb - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthubb21d1bcbuthubb21d1bcb2015-06-30T21:41:48Z2015-06-30T21:41:51Zfakehubnamespace7Active2015-06-30T21:41:48.4432015-06-30T21:41:51.81740123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:41:51 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_get_event_hub_with_non_existing_event_hub.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_get_event_hub_with_non_existing_event_hub.yaml deleted file mode 100644 index d254a4eb37a0..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_get_event_hub_with_non_existing_event_hub.yaml +++ /dev/null @@ -1,22 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakehubnamespace.servicebus.windows.net/uthub25641d75 - response: - body: {string: 'Publicly - Listed ServicesThis is the list of publicly-listed - services currently available.uuid:ee981bc3-69c2-4be6-ac2c-d5b48d6e1e9d;id=2932015-06-30T21:43:01ZService - Bus 1.1'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:43:01 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_send_event.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_send_event.yaml deleted file mode 100644 index 3b7ff38e6e3e..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_send_event.yaml +++ /dev/null @@ -1,96 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDI6NTMuMTU2OTc5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['561'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthub55e01093?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthub55e01093?api-version=2014-01uthub55e010932015-06-30T21:42:55Z2015-06-30T21:42:56Zfakehubnamespace7Active2015-06-30T21:42:55.1872015-06-30T21:42:56.31340123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:55 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - aGVsbG8gd29ybGQ= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['11'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakehubnamespace.servicebus.windows.net/uthub55e01093/messages?api-version=2014-01 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:56 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - d2FrZSB1cCB3b3JsZA== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['13'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakehubnamespace.servicebus.windows.net/uthub55e01093/messages?api-version=2014-01 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:56 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - Z29vZGJ5ZSE= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['8'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakehubnamespace.servicebus.windows.net/uthub55e01093/messages?api-version=2014-01 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:57 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_update_event_hub.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_update_event_hub.yaml deleted file mode 100644 index 1c1248e459d8..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_update_event_hub.yaml +++ /dev/null @@ -1,71 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDI6MzguNDA1Njk4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['561'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthubc229130a?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthubc229130a?api-version=2014-01uthubc229130a2015-06-30T21:42:40Z2015-06-30T21:42:42Zfakehubnamespace7Active2015-06-30T21:42:40.892015-06-30T21:42:42.0340123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:41 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDI6NDEuMDkzMjk1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48TWVzc2FnZVJldGVudGlvbkluRGF5cz4zPC9NZXNzYWdlUmV0ZW50aW9uSW5EYXlz - PjwvRXZlbnRIdWJEZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['611'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - If-Match: ['*'] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthubc229130a?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthubc229130a?api-version=2014-01uthubc229130a2015-06-30T21:42:41Zfakehubnamespace3'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:41 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_update_event_hub_with_authorization.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_update_event_hub_with_authorization.yaml deleted file mode 100644 index 8cf78bdd8cad..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_eventhub.test_update_event_hub_with_authorization.yaml +++ /dev/null @@ -1,80 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDI6MzIuNjU4MTY5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['561'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthub7bd61b15?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthub7bd61b15?api-version=2014-01uthub7bd61b152015-06-30T21:42:35Z2015-06-30T21:42:36Zfakehubnamespace7Active2015-06-30T21:42:35.3232015-06-30T21:42:36.60740123'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:35 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjE6NDI6MzUuNjQwNDI3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PEV2ZW50SHViRGVzY3JpcHRpb24geG1sbnM6 - aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRw - Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9j - b25uZWN0Ij48QXV0aG9yaXphdGlvblJ1bGVzPjxBdXRob3JpemF0aW9uUnVsZSBpOnR5cGU9IlNo - YXJlZEFjY2Vzc0F1dGhvcml6YXRpb25SdWxlIj48Q2xhaW1UeXBlPlNoYXJlZEFjY2Vzc0tleTwv - Q2xhaW1UeXBlPjxDbGFpbVZhbHVlPk5vbmU8L0NsYWltVmFsdWU+PFJpZ2h0cz48QWNjZXNzUmln - aHRzPk1hbmFnZTwvQWNjZXNzUmlnaHRzPjxBY2Nlc3NSaWdodHM+U2VuZDwvQWNjZXNzUmlnaHRz - PjxBY2Nlc3NSaWdodHM+TGlzdGVuPC9BY2Nlc3NSaWdodHM+PC9SaWdodHM+PEtleU5hbWU+S2V5 - MTwvS2V5TmFtZT48UHJpbWFyeUtleT5XbGk0cmV3UEd1RXNMYW05NW5RRXdHUitlOGIreW5sdXBa - UTdWZmpiUW53PTwvUHJpbWFyeUtleT48U2Vjb25kYXJ5S2V5PmpTK2xFUlBCbWJCVkdKNUp6SXdW - UnRTR1lvRlVldW5Sb0FETlRqd1UzalU9PC9TZWNvbmRhcnlLZXk+PC9BdXRob3JpemF0aW9uUnVs - ZT48L0F1dGhvcml6YXRpb25SdWxlcz48L0V2ZW50SHViRGVzY3JpcHRpb24+PC9jb250ZW50Pjwv - ZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1032'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - If-Match: ['*'] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakehubnamespace.servicebus.windows.net/uthub7bd61b15?api-version=2014-01 - response: - body: {string: 'https://fakehubnamespace.servicebus.windows.net/uthub7bd61b15?api-version=2014-01uthub7bd61b152015-06-30T21:42:35ZfakehubnamespaceSharedAccessKeyNoneManageSendListenKey1Wli4rewPGuEsLam95nQEwGR+e8b+ynlupZQ7VfjbQnw=jS+lERPBmbBVGJ5JzIwVRtSGYoFUeunRoADNTjwU3jU='} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 21:42:36 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_no_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_no_options.yaml deleted file mode 100644 index b5d90b7260bd..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_no_options.yaml +++ /dev/null @@ -1,35 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MzYuMzQ5ODM2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue80d116e1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue80d116e1utqueue80d116e12015-06-30T20:53:38Z2015-06-30T20:53:39ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:53:38.8472015-06-30T20:53:39.02'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:38 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_no_options_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_no_options_fail_on_exist.yaml deleted file mode 100644 index 21f5252d7991..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_no_options_fail_on_exist.yaml +++ /dev/null @@ -1,35 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MzcuNzA0MTI3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueueeb4e1ca4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueueeb4e1ca4utqueueeb4e1ca42015-06-30T20:51:40Z2015-06-30T20:51:40ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:51:40.082015-06-30T20:51:40.223'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:39 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_already_existing_queue.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_already_existing_queue.yaml deleted file mode 100644 index 286a3c6e1392..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_already_existing_queue.yaml +++ /dev/null @@ -1,65 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MzQuMDQ4MDcx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue437a1de4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue437a1de4utqueue437a1de42015-06-30T20:56:36Z2015-06-30T20:56:36ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:56:36.4172015-06-30T20:56:36.507'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:36 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MzUuNTYzNzU2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue437a1de4 - response: - body: {string: '409SubCode=40900. Conflict. TrackingId:66cf5879-7dec-4467-b69d-23a75c7d9b87_G57,TimeStamp:6/30/2015 - 8:56:36 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:36 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 409, message: Conflict} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_already_existing_queue_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_already_existing_queue_fail_on_exist.yaml deleted file mode 100644 index bf3fe4ff89c8..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_already_existing_queue_fail_on_exist.yaml +++ /dev/null @@ -1,65 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MzIuMDYwMzk1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue103023a7 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue103023a7utqueue103023a72015-06-30T20:57:34Z2015-06-30T20:57:34ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:57:34.1972015-06-30T20:57:34.31'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:33 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MzMuMzcyOTU5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue103023a7 - response: - body: {string: '409SubCode=40900. Conflict. TrackingId:fc76434b-a479-46d5-9103-25654dbf3899_G0,TimeStamp:6/30/2015 - 8:57:34 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:34 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 409, message: Conflict} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_options.yaml deleted file mode 100644 index f21dcb76f6f6..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_queue_with_options.yaml +++ /dev/null @@ -1,66 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6NDkuNTk3NjAy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48TG9ja0R1cmF0aW9uPlBUMU08L0xvY2tEdXJhdGlvbj48TWF4U2l6ZUluTWVnYWJ5dGVz - PjUxMjA8L01heFNpemVJbk1lZ2FieXRlcz48UmVxdWlyZXNEdXBsaWNhdGVEZXRlY3Rpb24+ZmFs - c2U8L1JlcXVpcmVzRHVwbGljYXRlRGV0ZWN0aW9uPjxSZXF1aXJlc1Nlc3Npb24+ZmFsc2U8L1Jl - cXVpcmVzU2Vzc2lvbj48RGVmYXVsdE1lc3NhZ2VUaW1lVG9MaXZlPlBUMU08L0RlZmF1bHRNZXNz - YWdlVGltZVRvTGl2ZT48RGVhZExldHRlcmluZ09uTWVzc2FnZUV4cGlyYXRpb24+ZmFsc2U8L0Rl - YWRMZXR0ZXJpbmdPbk1lc3NhZ2VFeHBpcmF0aW9uPjxEdXBsaWNhdGVEZXRlY3Rpb25IaXN0b3J5 - VGltZVdpbmRvdz5QVDVNPC9EdXBsaWNhdGVEZXRlY3Rpb25IaXN0b3J5VGltZVdpbmRvdz48TWF4 - RGVsaXZlcnlDb3VudD4xNTwvTWF4RGVsaXZlcnlDb3VudD48RW5hYmxlQmF0Y2hlZE9wZXJhdGlv - bnM+ZmFsc2U8L0VuYWJsZUJhdGNoZWRPcGVyYXRpb25zPjxTaXplSW5CeXRlcz4wPC9TaXplSW5C - eXRlcz48TWVzc2FnZUNvdW50PjA8L01lc3NhZ2VDb3VudD48L1F1ZXVlRGVzY3JpcHRpb24+PC9j - b250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1098'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueueb01717c0 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueueb01717c0utqueueb01717c02015-06-30T20:50:52Z2015-06-30T20:50:52ZfakesbnamespacePT1M5120falsefalsePT1MfalsePT5M15false002015-06-30T20:50:52.0572015-06-30T20:50:52.277'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:51 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/utqueueb01717c0 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueueb01717c0utqueueb01717c02015-06-30T20:50:52Z2015-06-30T20:50:52ZfakesbnamespacePT1M5120falsefalsePT1MfalsePT5M15false00'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:51 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_no_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_no_options.yaml deleted file mode 100644 index 8a8d5b0cbf84..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_no_options.yaml +++ /dev/null @@ -1,102 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6NDEuNTEzMDY3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic69ea1674 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic69ea1674uttopic69ea16742015-06-30T20:57:43Z2015-06-30T20:57:43ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:57:43.6432015-06-30T20:57:43.753'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:43 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6NDIuODEwMDAy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic69ea1674/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic69ea1674/subscriptions/MySubscriptionMySubscription2015-06-30T20:57:43Z2015-06-30T20:57:43ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:44 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6NDMuOTM1MDIx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic69ea1674/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic69ea1674/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:57:44Z2015-06-30T20:57:44Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:44 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_no_options_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_no_options_fail_on_exist.yaml deleted file mode 100644 index 18e86824699a..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_no_options_fail_on_exist.yaml +++ /dev/null @@ -1,102 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MDcuNDUxODEw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicce711c37 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicce711c37uttopicce711c372015-06-30T20:57:09Z2015-06-30T20:57:09ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:57:09.7672015-06-30T20:57:09.953'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:08 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MDkuMDQ1NjAz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicce711c37/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicce711c37/subscriptions/MySubscriptionMySubscription2015-06-30T20:57:10Z2015-06-30T20:57:10ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:09 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MDkuNzMzMTQ2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicce711c37/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicce711c37/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:57:10Z2015-06-30T20:57:10Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:09 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_already_existing_rule.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_already_existing_rule.yaml deleted file mode 100644 index 7674620ac1c3..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_already_existing_rule.yaml +++ /dev/null @@ -1,133 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6NDQuNzkxMTE4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic7e11d0a - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic7e11d0auttopic7e11d0a2015-06-30T20:55:47Z2015-06-30T20:55:47ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:55:47.052015-06-30T20:55:47.13'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:46 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6NDYuMjA1ODcw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic7e11d0a/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic7e11d0a/subscriptions/MySubscriptionMySubscription2015-06-30T20:55:47Z2015-06-30T20:55:47ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:47 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6NDYuODY1NDE1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic7e11d0a/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic7e11d0a/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:55:48Z2015-06-30T20:55:48Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:47 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6NDcuMjY0MzQw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic7e11d0a/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: '409The messaging entity ''fakesbnamespace:Topic:uttopic7e11d0a|MySubscription|MyRule1'' - already exists. TrackingId:4e1ef869-c97f-45dc-96a8-846869cfebf6_B24, Timestamp:6/30/2015 - 8:55:49 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:49 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 409, message: Conflict} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_already_existing_rule_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_already_existing_rule_fail_on_exist.yaml deleted file mode 100644 index 3e77606eb52d..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_already_existing_rule_fail_on_exist.yaml +++ /dev/null @@ -1,133 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NTcuNjU2MDQy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicc89c22cd - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicc89c22cduttopicc89c22cd2015-06-30T20:51:59Z2015-06-30T20:51:59ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:51:59.862015-06-30T20:51:59.937'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:59 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NTkuMDMxMTA4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicc89c22cd/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicc89c22cd/subscriptions/MySubscriptionMySubscription2015-06-30T20:51:59Z2015-06-30T20:51:59ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:59 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NTkuNDIxNzQx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicc89c22cd/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicc89c22cd/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:52:00Z2015-06-30T20:52:00Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:59 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NTkuNzM0MjE4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicc89c22cd/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: '409The messaging entity ''fakesbnamespace:Topic:uttopicc89c22cd|MySubscription|MyRule1'' - already exists. TrackingId:bf405007-8fe4-4877-b0fc-ad6b7fce5068_B8, Timestamp:6/30/2015 - 8:52:00 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:00 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 409, message: Conflict} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_correlation_filter.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_correlation_filter.yaml deleted file mode 100644 index 6d9b51363aa2..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_correlation_filter.yaml +++ /dev/null @@ -1,104 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6NDcuMTcyOTI3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopica21a1f39 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopica21a1f39uttopica21a1f392015-06-30T20:54:49Z2015-06-30T20:54:49ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:54:49.382015-06-30T20:54:49.46'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:49 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6NDguNTMxNTU5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopica21a1f39/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopica21a1f39/subscriptions/MySubscriptionMySubscription2015-06-30T20:54:49Z2015-06-30T20:54:49ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:49 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6NDguOTg0Njkx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjxGaWx0ZXIgaTp0eXBlPSJDb3JyZWxhdGlvbkZpbHRlciI+PENvcnJlbGF0aW9uSWQ+bXlp - ZDwvQ29ycmVsYXRpb25JZD48L0ZpbHRlcj48L1J1bGVEZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9l - bnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['632'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopica21a1f39/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopica21a1f39/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:54:49Z2015-06-30T20:54:49Zmyid'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:50 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_empty_rule_action.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_empty_rule_action.yaml deleted file mode 100644 index e783a1a8c2d1..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_empty_rule_action.yaml +++ /dev/null @@ -1,103 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MzkuMTI2NjE5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic838f1ed5 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic838f1ed5uttopic838f1ed52015-06-30T20:52:41Z2015-06-30T20:52:41ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:41.5032015-06-30T20:52:41.703'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:40 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6NDAuNzcxNDIz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic838f1ed5/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic838f1ed5/subscriptions/MySubscriptionMySubscription2015-06-30T20:52:42Z2015-06-30T20:52:42ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:41 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6NDEuNjU1MzY3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjxBY3Rpb24gaTp0eXBlPSJFbXB0eVJ1bGVBY3Rpb24iPjwvQWN0aW9uPjwvUnVsZURlc2Ny - aXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['595'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic838f1ed5/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic838f1ed5/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:52:42Z2015-06-30T20:52:42Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:42 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_false_filter.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_false_filter.yaml deleted file mode 100644 index 6c4a2d7374a4..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_false_filter.yaml +++ /dev/null @@ -1,104 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6MTcuMDk3MzQw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicec1f1ca2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicec1f1ca2uttopicec1f1ca22015-06-30T20:50:19Z2015-06-30T20:50:19ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:50:19.2572015-06-30T20:50:19.377'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:19 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6MTguNDc2ODM5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicec1f1ca2/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicec1f1ca2/subscriptions/MySubscriptionMySubscription2015-06-30T20:50:19Z2015-06-30T20:50:19ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:19 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6MTkuMTU5NzUz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjxGaWx0ZXIgaTp0eXBlPSJGYWxzZUZpbHRlciI+PFNxbEV4cHJlc3Npb24+MT0wPC9TcWxF - eHByZXNzaW9uPjxDb21wYXRpYmlsaXR5TGV2ZWw+MjA8L0NvbXBhdGliaWxpdHlMZXZlbD48L0Zp - bHRlcj48L1J1bGVEZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['668'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicec1f1ca2/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicec1f1ca2/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:50:20Z2015-06-30T20:50:20Z1=020'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:20 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_sql_filter.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_sql_filter.yaml deleted file mode 100644 index ebc7bb2207f1..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_sql_filter.yaml +++ /dev/null @@ -1,105 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MjcuNjcwOTkz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb4341be7 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicb4341be7uttopicb4341be72015-06-30T20:54:29Z2015-06-30T20:54:29ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:54:29.8232015-06-30T20:54:29.897'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MjguOTUyMzAz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb4341be7/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicb4341be7/subscriptions/MySubscriptionMySubscription2015-06-30T20:54:30Z2015-06-30T20:54:30ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MjkuNDUyMzE2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjxGaWx0ZXIgaTp0eXBlPSJTcWxGaWx0ZXIiPjxTcWxFeHByZXNzaW9uPm51bWJlciAmZ3Q7 - IDQwPC9TcWxFeHByZXNzaW9uPjxDb21wYXRpYmlsaXR5TGV2ZWw+MjA8L0NvbXBhdGliaWxpdHlM - ZXZlbD48L0ZpbHRlcj48L1J1bGVEZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['677'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb4341be7/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicb4341be7/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:54:30Z2015-06-30T20:54:30Znumber - > 4020'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_sql_rule_action.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_sql_rule_action.yaml deleted file mode 100644 index c98380a4591b..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_sql_rule_action.yaml +++ /dev/null @@ -1,104 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MTIuNTMwNTU3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic46001df6 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic46001df6uttopic46001df62015-06-30T20:56:23Z2015-06-30T20:56:23ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:56:23.8532015-06-30T20:56:23.92'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:23 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MjMuMDAwMjgy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic46001df6/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic46001df6/subscriptions/MySubscriptionMySubscription2015-06-30T20:56:24Z2015-06-30T20:56:24ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:23 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MjMuNDUzNDI1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjxBY3Rpb24gaTp0eXBlPSJTcWxSdWxlQWN0aW9uIj48U3FsRXhwcmVzc2lvbj5TRVQgbnVt - YmVyID0gNTwvU3FsRXhwcmVzc2lvbj48Q29tcGF0aWJpbGl0eUxldmVsPjIwPC9Db21wYXRpYmls - aXR5TGV2ZWw+PC9BY3Rpb24+PC9SdWxlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['681'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic46001df6/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic46001df6/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:56:24Z2015-06-30T20:56:24Z1=120SET number = 520'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:23 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_true_filter.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_true_filter.yaml deleted file mode 100644 index ee72311d9ca7..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_rule_with_options_true_filter.yaml +++ /dev/null @@ -1,104 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MjYuNzY2Mjky - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicd0c41c57 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicd0c41c57uttopicd0c41c572015-06-30T20:57:29Z2015-06-30T20:57:29ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:57:29.6472015-06-30T20:57:29.763'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MjguODYwMTE5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicd0c41c57/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicd0c41c57/subscriptions/MySubscriptionMySubscription2015-06-30T20:57:30Z2015-06-30T20:57:30ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MjkuNDIyNjMy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjxGaWx0ZXIgaTp0eXBlPSJUcnVlRmlsdGVyIj48U3FsRXhwcmVzc2lvbj4xPTE8L1NxbEV4 - cHJlc3Npb24+PENvbXBhdGliaWxpdHlMZXZlbD4yMDwvQ29tcGF0aWJpbGl0eUxldmVsPjwvRmls - dGVyPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['667'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicd0c41c57/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicd0c41c57/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:57:30Z2015-06-30T20:57:30Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:30 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription.yaml deleted file mode 100644 index 7223fbee8f11..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription.yaml +++ /dev/null @@ -1,68 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MjguMzA1MDYz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic286f153a - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic286f153auttopic286f153a2015-06-30T20:51:30Z2015-06-30T20:51:30ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:51:30.5872015-06-30T20:51:30.7'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:30 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MjkuNzg5NTAx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic286f153a/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic286f153a/subscriptions/MySubscriptionMySubscription2015-06-30T20:51:30Z2015-06-30T20:51:30ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:30 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_fail_on_exist.yaml deleted file mode 100644 index 9f7c47508666..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_fail_on_exist.yaml +++ /dev/null @@ -1,68 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NDkuMzk3MzQz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic7bca1afd - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic7bca1afduttopic7bca1afd2015-06-30T20:56:51Z2015-06-30T20:56:52ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:56:51.9232015-06-30T20:56:52.09'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:51 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NTEuMTc4NjM4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic7bca1afd/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic7bca1afd/subscriptions/MySubscriptionMySubscription2015-06-30T20:56:52Z2015-06-30T20:56:52ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:51 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_already_existing_subscription.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_already_existing_subscription.yaml deleted file mode 100644 index 9d4a03cdaea7..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_already_existing_subscription.yaml +++ /dev/null @@ -1,99 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MTAuNDk2NTIy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic155023e4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic155023e4uttopic155023e42015-06-30T20:53:12Z2015-06-30T20:53:12ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:53:12.8172015-06-30T20:53:12.91'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:12 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MTEuOTgwODkw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic155023e4/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic155023e4/subscriptions/MySubscriptionMySubscription2015-06-30T20:53:13Z2015-06-30T20:53:13ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:13 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MTIuNjczNzEw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic155023e4/subscriptions/MySubscription - response: - body: {string: '409The messaging entity ''fakesbnamespace:Topic:uttopic155023e4|MySubscription'' - already exists. TrackingId:bff2fb91-7654-4d7b-9548-416559563c97_B8, Timestamp:6/30/2015 - 8:53:13 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:14 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 409, message: Conflict} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_already_existing_subscription_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_already_existing_subscription_fail_on_exist.yaml deleted file mode 100644 index 44cc0ad43328..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_already_existing_subscription_fail_on_exist.yaml +++ /dev/null @@ -1,99 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MDQuOTkyMjk3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic360629a7 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic360629a7uttopic360629a72015-06-30T20:53:07Z2015-06-30T20:53:07ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:53:07.042015-06-30T20:53:07.103'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:06 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MDYuMTc0MTEx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic360629a7/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic360629a7/subscriptions/MySubscriptionMySubscription2015-06-30T20:53:07Z2015-06-30T20:53:07ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:07 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MDYuNjc0MTQ3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic360629a7/subscriptions/MySubscription - response: - body: {string: '409The messaging entity ''fakesbnamespace:Topic:uttopic360629a7|MySubscription'' - already exists. TrackingId:d01dc0bc-f6fd-450b-97cc-f4e34ae47654_B16, Timestamp:6/30/2015 - 8:53:07 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:08 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 409, message: Conflict} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_options.yaml deleted file mode 100644 index fd635e99122c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_subscription_with_options.yaml +++ /dev/null @@ -1,97 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MzAuMjMwMDU4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic62af1ac0 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic62af1ac0uttopic62af1ac02015-06-30T20:52:32Z2015-06-30T20:52:32ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:32.6232015-06-30T20:52:32.693'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:32 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MzEuNzgyNTky - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PExvY2tEdXJhdGlvbj5QVDFNPC9Mb2NrRHVyYXRpb24+PFJlcXVpcmVzU2Vz - c2lvbj5mYWxzZTwvUmVxdWlyZXNTZXNzaW9uPjxEZWZhdWx0TWVzc2FnZVRpbWVUb0xpdmU+UFQx - NU08L0RlZmF1bHRNZXNzYWdlVGltZVRvTGl2ZT48RGVhZExldHRlcmluZ09uTWVzc2FnZUV4cGly - YXRpb24+ZmFsc2U8L0RlYWRMZXR0ZXJpbmdPbk1lc3NhZ2VFeHBpcmF0aW9uPjxEZWFkTGV0dGVy - aW5nT25GaWx0ZXJFdmFsdWF0aW9uRXhjZXB0aW9ucz5mYWxzZTwvRGVhZExldHRlcmluZ09uRmls - dGVyRXZhbHVhdGlvbkV4Y2VwdGlvbnM+PEVuYWJsZUJhdGNoZWRPcGVyYXRpb25zPmZhbHNlPC9F - bmFibGVCYXRjaGVkT3BlcmF0aW9ucz48TWF4RGVsaXZlcnlDb3VudD4xNTwvTWF4RGVsaXZlcnlD - b3VudD48TWVzc2FnZUNvdW50PjA8L01lc3NhZ2VDb3VudD48L1N1YnNjcmlwdGlvbkRlc2NyaXB0 - aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['991'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic62af1ac0/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic62af1ac0/subscriptions/MySubscriptionMySubscription2015-06-30T20:52:33Z2015-06-30T20:52:33ZPT1MfalsePT15Mfalsefalse010false'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:33 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic62af1ac0/subscriptions/MySubscription - response: - body: {string: 'sb://fakesbnamespace.servicebus.windows.net/uttopic62af1ac0/subscriptions/MySubscriptionMySubscription2015-06-30T20:52:32Z2015-06-30T20:52:32ZPT1MfalsePT15Mfalsefalse010false'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:33 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_no_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_no_options.yaml deleted file mode 100644 index da4edfe0b698..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_no_options.yaml +++ /dev/null @@ -1,35 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6NDAuNDgzODI2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic808d16db - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic808d16dbuttopic808d16db2015-06-30T20:53:42Z2015-06-30T20:53:42ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:53:42.7732015-06-30T20:53:42.907'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:42 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_no_options_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_no_options_fail_on_exist.yaml deleted file mode 100644 index 1073d8875837..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_no_options_fail_on_exist.yaml +++ /dev/null @@ -1,35 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MzUuMDk2ODAy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopiceab61c9e - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopiceab61c9euttopiceab61c9e2015-06-30T20:52:37Z2015-06-30T20:52:37ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:37.5672015-06-30T20:52:37.767'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:36 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_already_existing_topic.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_already_existing_topic.yaml deleted file mode 100644 index 0cfdb3179613..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_already_existing_topic.yaml +++ /dev/null @@ -1,65 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NDEuNTY3NTk4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic42ce1dd8 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic42ce1dd8uttopic42ce1dd82015-06-30T20:51:43Z2015-06-30T20:51:43ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:51:43.7872015-06-30T20:51:43.87'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:43 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NDIuOTU4NjE3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic42ce1dd8 - response: - body: {string: '409SubCode=40900. Conflict. TrackingId:b76ba070-876b-406e-8728-923e02e7a245_G48,TimeStamp:6/30/2015 - 8:51:44 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:43 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 409, message: Conflict} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_already_existing_topic_fail_on_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_already_existing_topic_fail_on_exist.yaml deleted file mode 100644 index 99fe07b08930..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_already_existing_topic_fail_on_exist.yaml +++ /dev/null @@ -1,65 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MjYuMTkxODY3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicedc239b - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicedc239buttopicedc239b2015-06-30T20:56:28Z2015-06-30T20:56:28ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:56:28.6972015-06-30T20:56:28.78'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:28 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MjcuODYzODA5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicedc239b - response: - body: {string: '409SubCode=40900. Conflict. TrackingId:9eaee979-52f1-43db-9580-bd4f3ac52fd9_G52,TimeStamp:6/30/2015 - 8:56:29 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:28 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 409, message: Conflict} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_options.yaml deleted file mode 100644 index fa6c4737362b..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_create_topic_with_options.yaml +++ /dev/null @@ -1,62 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MDkuNzY3MjM3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48RGVmYXVsdE1lc3NhZ2VUaW1lVG9MaXZlPlBUMU08L0RlZmF1bHRNZXNzYWdlVGltZVRv - TGl2ZT48TWF4U2l6ZUluTWVnYWJ5dGVzPjUxMjA8L01heFNpemVJbk1lZ2FieXRlcz48UmVxdWly - ZXNEdXBsaWNhdGVEZXRlY3Rpb24+ZmFsc2U8L1JlcXVpcmVzRHVwbGljYXRlRGV0ZWN0aW9uPjxE - dXBsaWNhdGVEZXRlY3Rpb25IaXN0b3J5VGltZVdpbmRvdz5QVDVNPC9EdXBsaWNhdGVEZXRlY3Rp - b25IaXN0b3J5VGltZVdpbmRvdz48RW5hYmxlQmF0Y2hlZE9wZXJhdGlvbnM+ZmFsc2U8L0VuYWJs - ZUJhdGNoZWRPcGVyYXRpb25zPjxTaXplSW5CeXRlcz4wPC9TaXplSW5CeXRlcz48L1RvcGljRGVz - Y3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['882'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicafc717ba - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicafc717bauttopicafc717ba2015-06-30T20:54:12Z2015-06-30T20:54:12ZfakesbnamespacePT1M5120falsePT5Mfalse02015-06-30T20:54:12.692015-06-30T20:54:12.813'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:12 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopicafc717ba - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicafc717bauttopicafc717ba2015-06-30T20:54:12Z2015-06-30T20:54:12ZfakesbnamespacePT1M5120falsePT5Mfalse0'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:12 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_existing_queue.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_existing_queue.yaml deleted file mode 100644 index 61601ed9f502..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_existing_queue.yaml +++ /dev/null @@ -1,71 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MjMuMDQ3MTI4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue616e1aa2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue616e1aa2utqueue616e1aa22015-06-30T20:54:25Z2015-06-30T20:54:25ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:54:25.4332015-06-30T20:54:25.537'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:24 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue616e1aa2 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:54:25 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/$Resources/Queues - response: - body: {string: 'Queueshttps://fakesbnamespace.servicebus.windows.net/$Resources/Queues2015-06-30T20:54:26Z'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:25 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_existing_queue_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_existing_queue_fail_not_exist.yaml deleted file mode 100644 index 2328061f6590..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_existing_queue_fail_not_exist.yaml +++ /dev/null @@ -1,71 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6NTUuNzg2MjMy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue218c20d9 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue218c20d9utqueue218c20d92015-06-30T20:54:57Z2015-06-30T20:54:58ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:54:57.9272015-06-30T20:54:58.09'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:57 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue218c20d9 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:54:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/$Resources/Queues - response: - body: {string: 'Queueshttps://fakesbnamespace.servicebus.windows.net/$Resources/Queues2015-06-30T20:54:59Z'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_non_existing_queue.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_non_existing_queue.yaml deleted file mode 100644 index 5669c53f550c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_non_existing_queue.yaml +++ /dev/null @@ -1,23 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueuecfc61c4c - response: - body: {string: '404No service is hosted at the specified - address. TrackingId:0a6794c0-9335-41fd-a9be-c2d8890c2ad9_G45,TimeStamp:6/30/2015 - 8:56:33 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:32 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 404, message: Not Found} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_non_existing_queue_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_non_existing_queue_fail_not_exist.yaml deleted file mode 100644 index f041e48b1271..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_queue_with_non_existing_queue_fail_not_exist.yaml +++ /dev/null @@ -1,23 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueuea8da2283 - response: - body: {string: '404No service is hosted at the specified - address. TrackingId:01bd5467-6f9c-452a-aa50-17ffff36672e_G44,TimeStamp:6/30/2015 - 8:53:24 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:24 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 404, message: Not Found} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_existing_rule.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_existing_rule.yaml deleted file mode 100644 index 814842496bdb..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_existing_rule.yaml +++ /dev/null @@ -1,196 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NDUuMTg0NzY3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8uttopic2c8019c82015-06-30T20:51:47Z2015-06-30T20:51:47ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:51:47.5572015-06-30T20:51:47.663'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:46 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NDYuNzQ1Njk5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscriptionMySubscription2015-06-30T20:51:47Z2015-06-30T20:51:47ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:47 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NDcuMzcwNzQx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/MyRule3 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/MyRule3MyRule32015-06-30T20:51:48Z2015-06-30T20:51:48Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:47 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NDcuOTAyMDA5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/MyRule4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/MyRule4MyRule42015-06-30T20:51:48Z2015-06-30T20:51:48Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:48 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/MyRule4 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:51:48 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/$Default - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:51:48 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/ - response: - body: {string: 'Ruleshttps://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/2015-06-30T20:51:49Zhttps://fakesbnamespace.servicebus.windows.net/uttopic2c8019c8/subscriptions/MySubscription/rules/MyRule3MyRule32015-06-30T20:51:49Z2015-06-30T20:51:49Z1=120'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:49 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_existing_rule_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_existing_rule_fail_not_exist.yaml deleted file mode 100644 index 574fbd8552fb..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_existing_rule_fail_not_exist.yaml +++ /dev/null @@ -1,196 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NTYuNDcxMzA0 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fffuttopicdfc91fff2015-06-30T20:56:59Z2015-06-30T20:56:59ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:56:59.1532015-06-30T20:56:59.53'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NTguNTk2NDIy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscriptionMySubscription2015-06-30T20:56:59Z2015-06-30T20:56:59ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:59 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NTkuMzQ2NDEy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/MyRule3 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/MyRule3MyRule32015-06-30T20:57:00Z2015-06-30T20:57:00Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:59 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NTkuNjc0NTM3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/MyRule4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/MyRule4MyRule42015-06-30T20:57:00Z2015-06-30T20:57:00Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:59 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/MyRule4 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:57:00 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/$Default - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:57:00 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/ - response: - body: {string: 'Ruleshttps://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/2015-06-30T20:57:01Zhttps://fakesbnamespace.servicebus.windows.net/uttopicdfc91fff/subscriptions/MySubscription/rules/MyRule3MyRule32015-06-30T20:57:00Z2015-06-30T20:57:00Z1=120'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:00 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_non_existing_rule.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_non_existing_rule.yaml deleted file mode 100644 index 372a1834ab06..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_non_existing_rule.yaml +++ /dev/null @@ -1,86 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MTguNjU0Nzkz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic977a1b72 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic977a1b72uttopic977a1b722015-06-30T20:52:20Z2015-06-30T20:52:21ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:20.9672015-06-30T20:52:21.153'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:20 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MjAuMjI2NTUz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic977a1b72/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic977a1b72/subscriptions/MySubscriptionMySubscription2015-06-30T20:52:21Z2015-06-30T20:52:21ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:20 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic977a1b72/subscriptions/MySubscription/rules/NonExistingRule - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:52:22 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 404, message: '40400: Endpoint not found.'} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_non_existing_rule_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_non_existing_rule_fail_not_exist.yaml deleted file mode 100644 index 1a868f04816f..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_rule_with_non_existing_rule_fail_not_exist.yaml +++ /dev/null @@ -1,86 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6MjkuMTA2MDQ5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic63c821a9 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic63c821a9uttopic63c821a92015-06-30T20:50:31Z2015-06-30T20:50:31ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:50:31.2172015-06-30T20:50:31.347'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:30 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6MzAuNDE2NjQz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic63c821a9/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic63c821a9/subscriptions/MySubscriptionMySubscription2015-06-30T20:50:31Z2015-06-30T20:50:31ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:31 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic63c821a9/subscriptions/MySubscription/rules/NonExistingRule - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:50:32 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 404, message: '40400: Endpoint not found.'} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_existing_subscription.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_existing_subscription.yaml deleted file mode 100644 index e5fc5cf7a38c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_existing_subscription.yaml +++ /dev/null @@ -1,142 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MDUuMzg3MTYw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic46f20a2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic46f20a2uttopic46f20a22015-06-30T20:55:07Z2015-06-30T20:55:07ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:55:07.8072015-06-30T20:55:07.95'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:07 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MDcuMDI0NjAz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic46f20a2/subscriptions/MySubscription4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic46f20a2/subscriptions/MySubscription4MySubscription42015-06-30T20:55:08Z2015-06-30T20:55:08ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:07 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MDcuNDUxNTM2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic46f20a2/subscriptions/MySubscription5 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic46f20a2/subscriptions/MySubscription5MySubscription52015-06-30T20:55:08Z2015-06-30T20:55:08ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:07 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic46f20a2/subscriptions/MySubscription4 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:55:08 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic46f20a2/subscriptions/ - response: - body: {string: 'Subscriptionshttps://fakesbnamespace.servicebus.windows.net/uttopic46f20a2/subscriptions/2015-06-30T20:55:09Zhttps://fakesbnamespace.servicebus.windows.net/uttopic46f20a2/subscriptions/MySubscription5MySubscription52015-06-30T20:55:08Z2015-06-30T20:55:08ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:08 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_existing_subscription_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_existing_subscription_fail_not_exist.yaml deleted file mode 100644 index de60020434e1..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_existing_subscription_fail_not_exist.yaml +++ /dev/null @@ -1,142 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MTMuOTYxNDA0 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9uttopic1e8d26d92015-06-30T20:51:16Z2015-06-30T20:51:16ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:51:16.2572015-06-30T20:51:16.367'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:15 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MTUuNDQ3ODYw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9/subscriptions/MySubscription4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9/subscriptions/MySubscription4MySubscription42015-06-30T20:51:16Z2015-06-30T20:51:16ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:17 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MTYuMTY3MTcx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9/subscriptions/MySubscription5 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9/subscriptions/MySubscription5MySubscription52015-06-30T20:51:17Z2015-06-30T20:51:17ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:17 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9/subscriptions/MySubscription4 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:51:18 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9/subscriptions/ - response: - body: {string: 'Subscriptionshttps://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9/subscriptions/2015-06-30T20:51:18Zhttps://fakesbnamespace.servicebus.windows.net/uttopic1e8d26d9/subscriptions/MySubscription5MySubscription52015-06-30T20:51:17Z2015-06-30T20:51:17ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:18 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_non_existing_subscription.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_non_existing_subscription.yaml deleted file mode 100644 index ce7e5eba302e..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_non_existing_subscription.yaml +++ /dev/null @@ -1,53 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MDAuNDExNDI1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic8a6d224c - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic8a6d224cuttopic8a6d224c2015-06-30T20:55:02Z2015-06-30T20:55:02ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:55:02.612015-06-30T20:55:02.757'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:01 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic8a6d224c/subscriptions/MySubscription - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:55:03 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 404, message: '40400: Endpoint not found.'} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_non_existing_subscription_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_non_existing_subscription_fail_not_exist.yaml deleted file mode 100644 index b07c99137c0c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_subscription_with_non_existing_subscription_fail_not_exist.yaml +++ /dev/null @@ -1,53 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MjUuMDMwMTU3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicbd812883 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicbd812883uttopicbd8128832015-06-30T20:52:27Z2015-06-30T20:52:27ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:27.5872015-06-30T20:52:27.687'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:27 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopicbd812883/subscriptions/MySubscription - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:52:28 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 404, message: '40400: Endpoint not found.'} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_existing_topic.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_existing_topic.yaml deleted file mode 100644 index d882c69529f1..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_existing_topic.yaml +++ /dev/null @@ -1,71 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MDIuODYxNTU1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic60f21a96 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic60f21a96uttopic60f21a962015-06-30T20:54:04Z2015-06-30T20:54:05ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:54:04.912015-06-30T20:54:05.027'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:04 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic60f21a96 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:54:05 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/$Resources/Topics - response: - body: {string: 'Topicshttps://fakesbnamespace.servicebus.windows.net/$Resources/Topics2015-06-30T20:54:06Z'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:05 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_existing_topic_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_existing_topic_fail_not_exist.yaml deleted file mode 100644 index 39080808cac3..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_existing_topic_fail_not_exist.yaml +++ /dev/null @@ -1,71 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MTkuNTA0NDg3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic205c20cd - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic205c20cduttopic205c20cd2015-06-30T20:57:21Z2015-06-30T20:57:21ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:57:21.8832015-06-30T20:57:21.997'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:21 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic205c20cd - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:57:22 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/$Resources/Topics - response: - body: {string: 'Topicshttps://fakesbnamespace.servicebus.windows.net/$Resources/Topics2015-06-30T20:57:23Z'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:22 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_non_existing_topic.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_non_existing_topic.yaml deleted file mode 100644 index e6dc3e87172b..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_non_existing_topic.yaml +++ /dev/null @@ -1,23 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopiccf321c40 - response: - body: {string: '404No service is hosted at the specified - address. TrackingId:ffb2e6f3-104d-44eb-941b-fd69d1eb98fb_G16,TimeStamp:6/30/2015 - 8:56:11 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:11 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 404, message: Not Found} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_non_existing_topic_fail_not_exist.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_non_existing_topic_fail_not_exist.yaml deleted file mode 100644 index 5f174c8423b9..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_delete_topic_with_non_existing_topic_fail_not_exist.yaml +++ /dev/null @@ -1,23 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopica7922277 - response: - body: {string: '404No service is hosted at the specified - address. TrackingId:b89f970d-75ea-4c17-8cab-66ba67092962_G33,TimeStamp:6/30/2015 - 8:51:27 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:27 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 404, message: Not Found} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_dead_letter_queue.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_dead_letter_queue.yaml deleted file mode 100644 index f38767fca162..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_dead_letter_queue.yaml +++ /dev/null @@ -1,47 +0,0 @@ -interactions: -- request: - body: 2016-08-11T22:21:36.782954+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue51c815e2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue51c815e2utqueue51c815e22016-08-11T22:21:39Z2016-08-11T22:21:40ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002016-08-11T22:21:39.9732016-08-11T22:21:40.093'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 22:21:39 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue51c815e2/$DeadLetterQueue/messages/head?timeout=2 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 22:21:41 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - status: {code: 204, message: No Content} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_dead_letter_subscription.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_dead_letter_subscription.yaml deleted file mode 100644 index 36e9cee32f85..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_dead_letter_subscription.yaml +++ /dev/null @@ -1,73 +0,0 @@ -interactions: -- request: - body: 2016-08-11T22:21:31.014399+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicf6e918e2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicf6e918e2uttopicf6e918e22016-08-11T22:21:32Z2016-08-11T22:21:32ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02016-08-11T22:21:32.5272016-08-11T22:21:32.623'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 22:21:31 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: 2016-08-11T22:21:32.396104+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicf6e918e2/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicf6e918e2/subscriptions/MySubscriptionMySubscription2016-08-11T22:21:32Z2016-08-11T22:21:32ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 22:21:32 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicf6e918e2/subscriptions/MySubscription/$DeadLetterQueue/messages/head?timeout=2 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 22:21:34 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - status: {code: 204, message: No Content} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_queue_with_existing_queue.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_queue_with_existing_queue.yaml deleted file mode 100644 index b5f5f0ae75c7..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_queue_with_existing_queue.yaml +++ /dev/null @@ -1,56 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MDkuOTE2MTYx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue1470196f - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue1470196futqueue1470196f2015-06-30T20:51:12Z2015-06-30T20:51:12ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:51:12.1372015-06-30T20:51:12.32'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:11 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/utqueue1470196f - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue1470196futqueue1470196f2015-06-30T20:51:12Z2015-06-30T20:51:12ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true00'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:11 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_queue_with_non_existing_queue.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_queue_with_non_existing_queue.yaml deleted file mode 100644 index cb730da3da91..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_queue_with_non_existing_queue.yaml +++ /dev/null @@ -1,22 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/utqueue7dfc1b19 - response: - body: {string: 'Publicly - Listed ServicesThis is the list of publicly-listed - services currently available.uuid:55f0ff16-4e23-4c96-b818-28d873ad9124;id=1502015-06-30T20:53:19ZService - Bus 1.1'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:19 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_existing_rule.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_existing_rule.yaml deleted file mode 100644 index fa2ab497cbd5..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_existing_rule.yaml +++ /dev/null @@ -1,90 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6NTAuNTA0Njkx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopice1d91895 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopice1d91895uttopice1d918952015-06-30T20:53:56Z2015-06-30T20:53:56ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:53:56.1332015-06-30T20:53:56.33'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:55 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6NTUuNDA4MDE1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopice1d91895/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopice1d91895/subscriptions/MySubscriptionMySubscription2015-06-30T20:53:56Z2015-06-30T20:53:56ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:55 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopice1d91895/subscriptions/MySubscription/rules/$Default - response: - body: {string: 'sb://fakesbnamespace.servicebus.windows.net/uttopice1d91895/subscriptions/MySubscription/rules/$Default$Default2015-06-30T20:53:56Z2015-06-30T20:53:56Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:56 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_existing_rule_with_options.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_existing_rule_with_options.yaml deleted file mode 100644 index f3b378ccbc38..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_existing_rule_with_options.yaml +++ /dev/null @@ -1,131 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6NDIuMTI5MTEw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic47c71e1b - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic47c71e1buttopic47c71e1b2015-06-30T20:54:44Z2015-06-30T20:54:44ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:54:44.1832015-06-30T20:54:44.327'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:43 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6NDMuNDU4MjA0 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic47c71e1b/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic47c71e1b/subscriptions/MySubscriptionMySubscription2015-06-30T20:54:44Z2015-06-30T20:54:44ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:43 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6NDMuOTUxODAx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjxGaWx0ZXIgaTp0eXBlPSJTcWxGaWx0ZXIiPjxTcWxFeHByZXNzaW9uPm51bWJlciAmZ3Q7 - IDQwPC9TcWxFeHByZXNzaW9uPjxDb21wYXRpYmlsaXR5TGV2ZWw+MjA8L0NvbXBhdGliaWxpdHlM - ZXZlbD48L0ZpbHRlcj48QWN0aW9uIGk6dHlwZT0iU3FsUnVsZUFjdGlvbiI+PFNxbEV4cHJlc3Np - b24+U0VUIG51bWJlciA9IDU8L1NxbEV4cHJlc3Npb24+PENvbXBhdGliaWxpdHlMZXZlbD4yMDwv - Q29tcGF0aWJpbGl0eUxldmVsPjwvQWN0aW9uPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48 - L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['805'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic47c71e1b/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic47c71e1b/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:54:44Z2015-06-30T20:54:44Znumber - > 4020SET number = 520'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:44 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic47c71e1b/subscriptions/MySubscription/rules/MyRule1 - response: - body: {string: 'sb://fakesbnamespace.servicebus.windows.net/uttopic47c71e1b/subscriptions/MySubscription/rules/MyRule1MyRule12015-06-30T20:54:44Z2015-06-30T20:54:44Znumber - > 4020SET number = 520'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:44 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_non_existing_rule.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_non_existing_rule.yaml deleted file mode 100644 index ea9ecd5e31f1..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_rule_with_non_existing_rule.yaml +++ /dev/null @@ -1,84 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MzUuOTExMjY4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic48161a3f - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic48161a3futtopic48161a3f2015-06-30T20:57:38Z2015-06-30T20:57:38ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:57:38.2272015-06-30T20:57:38.31'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:37 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MzcuMzgwMDYy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic48161a3f/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic48161a3f/subscriptions/MySubscriptionMySubscription2015-06-30T20:57:38Z2015-06-30T20:57:38ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:37 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic48161a3f/subscriptions/MySubscription/rules/NonExistingRule - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:57:39 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 404, message: '40400: Endpoint not found.'} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_subscription_with_existing_subscription.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_subscription_with_existing_subscription.yaml deleted file mode 100644 index 2e429ac0ecea..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_subscription_with_existing_subscription.yaml +++ /dev/null @@ -1,89 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MTMuOTgxNjQw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopica6981f6f - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopica6981f6futtopica6981f6f2015-06-30T20:52:16Z2015-06-30T20:52:16ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:16.1532015-06-30T20:52:16.343'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:15 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MTUuNDA2MDQ3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopica6981f6f/subscriptions/MySubscription3 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopica6981f6f/subscriptions/MySubscription3MySubscription32015-06-30T20:52:16Z2015-06-30T20:52:16ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:16 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopica6981f6f/subscriptions/MySubscription3 - response: - body: {string: 'sb://fakesbnamespace.servicebus.windows.net/uttopica6981f6f/subscriptions/MySubscription3MySubscription32015-06-30T20:52:16Z2015-06-30T20:52:16ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:16 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_subscription_with_non_existing_subscription.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_subscription_with_non_existing_subscription.yaml deleted file mode 100644 index 65ab265208e6..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_subscription_with_non_existing_subscription.yaml +++ /dev/null @@ -1,84 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6NTkuMDIyNjQ1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic27d92119 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic27d92119uttopic27d921192015-06-30T20:56:01Z2015-06-30T20:56:01ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:56:01.412015-06-30T20:56:01.517'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:01 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MDAuNjA2ODE4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic27d92119/subscriptions/MySubscription3 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic27d92119/subscriptions/MySubscription3MySubscription32015-06-30T20:56:01Z2015-06-30T20:56:01ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:02 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic27d92119/subscriptions/MySubscription4 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:56:03 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 404, message: '40400: Endpoint not found.'} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_topic_with_existing_topic.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_topic_with_existing_topic.yaml deleted file mode 100644 index e3e98ce00439..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_topic_with_existing_topic.yaml +++ /dev/null @@ -1,56 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MTguOTk1NjEx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic13f41963 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic13f41963uttopic13f419632015-06-30T20:54:21Z2015-06-30T20:54:21ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:54:21.4132015-06-30T20:54:21.51'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:21 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic13f41963 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic13f41963uttopic13f419632015-06-30T20:54:21Z2015-06-30T20:54:21ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue0'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:21 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_topic_with_non_existing_topic.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_topic_with_non_existing_topic.yaml deleted file mode 100644 index 5005fe3c2cf7..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_get_topic_with_non_existing_topic.yaml +++ /dev/null @@ -1,22 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic7d681b0d - response: - body: {string: 'Publicly - Listed ServicesThis is the list of publicly-listed - services currently available.uuid:5f9ba3ea-cd02-4477-82da-2ece37741e65;id=3372015-06-30T20:54:54ZService - Bus 1.1'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:54 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_queues.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_queues.yaml deleted file mode 100644 index fcf9d5735b7c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_queues.yaml +++ /dev/null @@ -1,58 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MDguNjU0MTgx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue8bad11f5 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue8bad11f5utqueue8bad11f52015-06-30T20:52:11Z2015-06-30T20:52:11ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:52:11.332015-06-30T20:52:11.473'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:10 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/$Resources/Queues - response: - body: {string: 'Queueshttps://fakesbnamespace.servicebus.windows.net/$Resources/Queues2015-06-30T20:52:11Zhttps://fakesbnamespace.servicebus.windows.net/utqueue8bad11f5utqueue8bad11f52015-06-30T20:52:11Z2015-06-30T20:52:11ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true00'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:10 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_queues_with_special_chars.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_queues_with_special_chars.yaml deleted file mode 100644 index e5af90e7cc4c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_queues_with_special_chars.yaml +++ /dev/null @@ -1,58 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MTQuMjQxOTk5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue2f2419c0txt/.-_123 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue2f2419c0txt/.-_123utqueue2f2419c0txt/.-_1232015-06-30T20:54:16Z2015-06-30T20:54:16ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:54:16.352015-06-30T20:54:16.537'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:16 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/$Resources/Queues - response: - body: {string: 'Queueshttps://fakesbnamespace.servicebus.windows.net/$Resources/Queues2015-06-30T20:54:16Zhttps://fakesbnamespace.servicebus.windows.net/utqueue2f2419c0txt/.-_123utqueue2f2419c0txt/.-_1232015-06-30T20:54:16Z2015-06-30T20:54:16ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true00'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:16 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_rules.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_rules.yaml deleted file mode 100644 index 27d49a1bb0dd..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_rules.yaml +++ /dev/null @@ -1,131 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NDIuNDQ5NDU2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic79c01188 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic79c01188uttopic79c011882015-06-30T20:56:44Z2015-06-30T20:56:44ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:56:44.6632015-06-30T20:56:44.753'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:44 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NDMuODQwMTIw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic79c01188/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic79c01188/subscriptions/MySubscriptionMySubscription2015-06-30T20:56:45Z2015-06-30T20:56:45ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:45 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6NDQuODg3MDUx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic79c01188/subscriptions/MySubscription/rules/MyRule2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic79c01188/subscriptions/MySubscription/rules/MyRule2MyRule22015-06-30T20:56:46Z2015-06-30T20:56:46Z1=120'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:46 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic79c01188/subscriptions/MySubscription/rules/ - response: - body: {string: 'Ruleshttps://fakesbnamespace.servicebus.windows.net/uttopic79c01188/subscriptions/MySubscription/rules/2015-06-30T20:56:47Zhttps://fakesbnamespace.servicebus.windows.net/uttopic79c01188/subscriptions/MySubscription/rules/$Default$Default2015-06-30T20:56:45Z2015-06-30T20:56:45Z1=120https://fakesbnamespace.servicebus.windows.net/uttopic79c01188/subscriptions/MySubscription/rules/MyRule2MyRule22015-06-30T20:56:46Z2015-06-30T20:56:46Z1=120'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:46 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_subscriptions.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_subscriptions.yaml deleted file mode 100644 index d6562ac7bd9a..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_subscriptions.yaml +++ /dev/null @@ -1,91 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MzIuNDEyNjQ5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic153d14f5 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic153d14f5uttopic153d14f52015-06-30T20:54:34Z2015-06-30T20:54:34ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:54:34.7772015-06-30T20:54:34.867'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:34 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MzMuOTQxNjc1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic153d14f5/subscriptions/MySubscription2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic153d14f5/subscriptions/MySubscription2MySubscription22015-06-30T20:54:34Z2015-06-30T20:54:34ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:34 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/uttopic153d14f5/subscriptions/ - response: - body: {string: 'Subscriptionshttps://fakesbnamespace.servicebus.windows.net/uttopic153d14f5/subscriptions/2015-06-30T20:54:35Zhttps://fakesbnamespace.servicebus.windows.net/uttopic153d14f5/subscriptions/MySubscription2MySubscription22015-06-30T20:54:35Z2015-06-30T20:54:35ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:34 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_topics.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_topics.yaml deleted file mode 100644 index 6a737e8552df..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_topics.yaml +++ /dev/null @@ -1,58 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MjYuMDI3Mjc0 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic8ba511ef - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic8ba511efuttopic8ba511ef2015-06-30T20:55:29Z2015-06-30T20:55:29ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:55:29.232015-06-30T20:55:29.357'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/$Resources/Topics - response: - body: {string: 'Topicshttps://fakesbnamespace.servicebus.windows.net/$Resources/Topics2015-06-30T20:55:30Zhttps://fakesbnamespace.servicebus.windows.net/uttopic8ba511efuttopic8ba511ef2015-06-30T20:55:29Z2015-06-30T20:55:29ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue0'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_topics_with_special_chars.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_topics_with_special_chars.yaml deleted file mode 100644 index 04adffd8eb91..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_list_topics_with_special_chars.yaml +++ /dev/null @@ -1,58 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MTAuNTQ5ODE3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic2eaa19batxt/.-_123 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic2eaa19batxt/.-_123uttopic2eaa19batxt/.-_1232015-06-30T20:55:13Z2015-06-30T20:55:13ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:55:13.0132015-06-30T20:55:13.09'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:12 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [pyazure/0.20.0] - method: GET - uri: https://fakesbnamespace.servicebus.windows.net/$Resources/Topics - response: - body: {string: 'Topicshttps://fakesbnamespace.servicebus.windows.net/$Resources/Topics2015-06-30T20:55:13Zhttps://fakesbnamespace.servicebus.windows.net/uttopic2eaa19batxt/.-_123uttopic2eaa19batxt/.-_1232015-06-30T20:55:13Z2015-06-30T20:55:13ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue0'} - headers: - Content-Type: [application/atom+xml;type=feed;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:13 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_delete.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_delete.yaml deleted file mode 100644 index c7b661207a1b..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_delete.yaml +++ /dev/null @@ -1,97 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6NTEuNjQxNDg0 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef84818bf - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueuef84818bfutqueuef84818bf2015-06-30T20:55:53Z2015-06-30T20:55:54ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:55:53.9672015-06-30T20:55:54.09'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:53 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - cGVlayBsb2NrIG1lc3NhZ2UgZGVsZXRl - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['24'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef84818bf/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:54 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef84818bf/messages/head?timeout=60 - response: - body: {string: peek lock message delete} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:55:54 GMT","LockToken":"d3c2a4ca-bebb-4ece-a213-5c6d1f048b07","LockedUntilUtc":"Tue, - 30 Jun 2015 20:56:54 GMT","MessageId":"f4349061550e4306814e6ebbface4155","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:54 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/utqueuef84818bf/messages/1/d3c2a4ca-bebb-4ece-a213-5c6d1f048b07'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef84818bf/messages/1/d3c2a4ca-bebb-4ece-a213-5c6d1f048b07 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:54 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_delete_with_slash.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_delete_with_slash.yaml deleted file mode 100644 index eeebd0f14c90..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_delete_with_slash.yaml +++ /dev/null @@ -1,97 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6MzUuMjE2Mjg1 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/ut/queue24191d54 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/ut/queue24191d54ut/queue24191d542015-06-30T20:50:37Z2015-06-30T20:50:37ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:50:37.5832015-06-30T20:50:37.667'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:36 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - cGVlayBsb2NrIG1lc3NhZ2UgZGVsZXRl - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['24'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/ut/queue24191d54/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:37 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/ut/queue24191d54/messages/head?timeout=60 - response: - body: {string: peek lock message delete} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:50:37 GMT","LockToken":"6da98c43-e1c8-40bb-ae8d-05818e07fcd7","LockedUntilUtc":"Tue, - 30 Jun 2015 20:51:37 GMT","MessageId":"70971395dc174688b207457ce095b460","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:37 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/ut/queue24191d54/messages/1/6da98c43-e1c8-40bb-ae8d-05818e07fcd7'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/ut/queue24191d54/messages/1/6da98c43-e1c8-40bb-ae8d-05818e07fcd7 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:37 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_peek_lock_mode.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_peek_lock_mode.yaml deleted file mode 100644 index 425a1f230e66..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_peek_lock_mode.yaml +++ /dev/null @@ -1,78 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTY6MzcuOTkyNzI3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueuecd0a1bfd - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueuecd0a1bfdutqueuecd0a1bfd2015-06-30T20:56:40Z2015-06-30T20:56:40ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:56:40.3372015-06-30T20:56:40.41'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:39 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - cGVlayBsb2NrIG1lc3NhZ2U= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['17'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuecd0a1bfd/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:40 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuecd0a1bfd/messages/head?timeout=60 - response: - body: {string: peek lock message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:56:40 GMT","LockToken":"5ae07ea8-5dcb-4db7-bffd-bf3fa8d6ffab","LockedUntilUtc":"Tue, - 30 Jun 2015 20:57:41 GMT","MessageId":"069209bda6e04e30a0fb8fe2135caea9","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:56:40 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/utqueuecd0a1bfd/messages/1/5ae07ea8-5dcb-4db7-bffd-bf3fa8d6ffab'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode.yaml deleted file mode 100644 index ff361aef5762..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode.yaml +++ /dev/null @@ -1,76 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6NDAuMDc0MTcy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue5871cbe - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue5871cbeutqueue5871cbe2015-06-30T20:50:42Z2015-06-30T20:50:42ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:50:42.2932015-06-30T20:50:42.457'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:42 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - cmVjZWl2ZSBtZXNzYWdl - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['15'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue5871cbe/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:42 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue5871cbe/messages/head?timeout=60 - response: - body: {string: receive message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:50:42 GMT","MessageId":"70a1a8d5fb774df89142f9e217e63860","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:42 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode_throws_on_delete.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode_throws_on_delete.yaml deleted file mode 100644 index 9104afb43f68..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode_throws_on_delete.yaml +++ /dev/null @@ -1,76 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MDQuODg4Mzk0 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue2e7123d2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue2e7123d2utqueue2e7123d22015-06-30T20:51:07Z2015-06-30T20:51:07ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:51:07.7572015-06-30T20:51:07.9'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:07 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - cmVjZWl2ZSBtZXNzYWdl - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['15'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue2e7123d2/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:08 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue2e7123d2/messages/head?timeout=60 - response: - body: {string: receive message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:51:08 GMT","MessageId":"d5710cf5064d47308f978b1df76e7fee","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:08 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode_throws_on_unlock.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode_throws_on_unlock.yaml deleted file mode 100644 index 6fb725396ede..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_read_delete_mode_throws_on_unlock.yaml +++ /dev/null @@ -1,68 +0,0 @@ -interactions: -- request: - body: 2016-08-11T23:42:06.853853+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue2f0623eb - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue2f0623ebutqueue2f0623eb2016-08-11T23:42:08Z2016-08-11T23:42:08ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002016-08-11T23:42:08.3732016-08-11T23:42:08.413'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:07 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: receive message - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['15'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue2f0623eb/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:07 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue2f0623eb/messages/head?timeout=60 - response: - body: {string: receive message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Thu, - 11 Aug 2016 23:42:07 GMT","MessageId":"caaf99e88cc44461ad07497fa5d597b6","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:08 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_unlock.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_unlock.yaml deleted file mode 100644 index 15a75f9d9806..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_unlock.yaml +++ /dev/null @@ -1,150 +0,0 @@ -interactions: -- request: - body: 2016-08-11T23:42:14.145401+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8utqueuef8dd18d82016-08-11T23:42:15Z2016-08-11T23:42:16ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002016-08-11T23:42:15.582016-08-11T23:42:16.17'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:14 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: peek lock message unlock - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['24'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:14 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8/messages/head?timeout=60 - response: - body: {string: peek lock message unlock} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Thu, - 11 Aug 2016 23:42:15 GMT","LockToken":"41f822ef-0c89-4f17-96e9-1df6c1f1a81e","LockedUntilUtc":"Thu, - 11 Aug 2016 23:43:15 GMT","MessageId":"93dedba50a09441aa3ab1491f6c8a847","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:15 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8/messages/1/41f822ef-0c89-4f17-96e9-1df6c1f1a81e'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8/messages/1/41f822ef-0c89-4f17-96e9-1df6c1f1a81e - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:15 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8/messages/1/41f822ef-0c89-4f17-96e9-1df6c1f1a81e - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:15 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8/messages/head?timeout=60 - response: - body: {string: peek lock message unlock} - headers: - BrokerProperties: ['{"DeliveryCount":2,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Thu, - 11 Aug 2016 23:42:15 GMT","LockToken":"5d053743-3928-4c52-84d5-eae0ec9144c4","LockedUntilUtc":"Thu, - 11 Aug 2016 23:43:16 GMT","MessageId":"93dedba50a09441aa3ab1491f6c8a847","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:15 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8/messages/1/5d053743-3928-4c52-84d5-eae0ec9144c4'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueuef8dd18d8/messages/1/5d053743-3928-4c52-84d5-eae0ec9144c4 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:16 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_with_broker_properties.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_with_broker_properties.yaml deleted file mode 100644 index 83d7c1ea21ab..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_with_broker_properties.yaml +++ /dev/null @@ -1,77 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6NTkuNTQwMDk5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueuebf4b1f98 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueuebf4b1f98utqueuebf4b1f982015-06-30T20:53:02Z2015-06-30T20:53:02ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:53:02.0872015-06-30T20:53:02.277'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:02 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - cmVjZWl2ZSBtZXNzYWdl - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - BrokerProperties: ['{"ForcePersistence": false, "Label": "My label" }'] - Connection: [keep-alive] - Content-Length: ['15'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuebf4b1f98/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:02 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueuebf4b1f98/messages/head?timeout=60 - response: - body: {string: receive message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:53:02 GMT","ForcePersistence":false,"Label":"My label","MessageId":"4ef2ee9c7ea64e419669f012af79fa88","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:02 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_with_broker_properties_as_a_dict.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_with_broker_properties_as_a_dict.yaml deleted file mode 100644 index 344c95693893..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_queue_message_with_broker_properties_as_a_dict.yaml +++ /dev/null @@ -1,69 +0,0 @@ -interactions: -- request: - body: 2017-01-11T22:51:03.232310+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue10cf238e - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue10cf238eutqueue10cf238e2017-01-11T22:51:05Z2017-01-11T22:51:05ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002017-01-11T22:51:05.0832017-01-11T22:51:05.113'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Wed, 11 Jan 2017 22:51:03 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: receive message - headers: - Accept-Encoding: ['gzip, deflate'] - BrokerProperties: ['{"Label": "My label", "ForcePersistence": "false"}'] - Connection: [keep-alive] - Content-Length: ['15'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue10cf238e/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Wed, 11 Jan 2017 22:51:03 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue10cf238e/messages/head?timeout=60 - response: - body: {string: receive message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Wed, - 11 Jan 2017 22:51:04 GMT","ForcePersistence":false,"Label":"My label","MessageId":"0619cba89eb848e9b0d8382fe70bdbf5","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Wed, 11 Jan 2017 22:51:03 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_delete.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_delete.yaml deleted file mode 100644 index 530bf608b1d0..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_delete.yaml +++ /dev/null @@ -1,130 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NTEuMzA0NTky - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb3e91bbf - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicb3e91bbfuttopicb3e91bbf2015-06-30T20:51:53Z2015-06-30T20:51:53ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:51:53.6172015-06-30T20:51:53.707'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:52 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6NTIuNzk4ODUy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb3e91bbf/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicb3e91bbf/subscriptions/MySubscriptionMySubscription2015-06-30T20:51:53Z2015-06-30T20:51:53ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:53 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - c3Vic2NyaXB0aW9uIG1lc3NhZ2U= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['20'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb3e91bbf/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:53 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb3e91bbf/subscriptions/MySubscription/messages/head?timeout=5 - response: - body: {string: subscription message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:51:54 GMT","LockToken":"341e80a0-b0bb-4d33-82e2-7cfb3ec3df17","LockedUntilUtc":"Tue, - 30 Jun 2015 20:52:54 GMT","MessageId":"ace384b9ebc244f3944bab122875c0a1","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:54 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/uttopicb3e91bbf/subscriptions/MySubscription/messages/1/341e80a0-b0bb-4d33-82e2-7cfb3ec3df17'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb3e91bbf/subscriptions/MySubscription/messages/1/341e80a0-b0bb-4d33-82e2-7cfb3ec3df17 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:54 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_delete_with_slash.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_delete_with_slash.yaml deleted file mode 100644 index 4731cad6d8a9..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_delete_with_slash.yaml +++ /dev/null @@ -1,130 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6NDQuMzM2MjM3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/ut/topicba2054 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/ut/topicba2054ut/topicba20542015-06-30T20:50:46Z2015-06-30T20:50:46ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:50:46.6632015-06-30T20:50:46.76'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:46 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6NDUuODc5MzI0 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/ut/topicba2054/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/ut/topicba2054/subscriptions/MySubscriptionMySubscription2015-06-30T20:50:47Z2015-06-30T20:50:47ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:46 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - c3Vic2NyaXB0aW9uIG1lc3NhZ2U= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['20'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/ut/topicba2054/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:47 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/ut/topicba2054/subscriptions/MySubscription/messages/head?timeout=5 - response: - body: {string: subscription message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:50:47 GMT","LockToken":"6b368e12-264e-437c-8235-af4e5e057d4f","LockedUntilUtc":"Tue, - 30 Jun 2015 20:51:47 GMT","MessageId":"38b1565bf93645958cc354e2916c7f48","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:47 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/ut/topicba2054/subscriptions/MySubscription/messages/1/6b368e12-264e-437c-8235-af4e5e057d4f'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/ut/topicba2054/subscriptions/MySubscription/messages/1/6b368e12-264e-437c-8235-af4e5e057d4f - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:47 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_peek_lock_mode.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_peek_lock_mode.yaml deleted file mode 100644 index 709b186d8ce6..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_peek_lock_mode.yaml +++ /dev/null @@ -1,111 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MzcuMTgxOTUy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopica0ab1efd - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopica0ab1efduttopica0ab1efd2015-06-30T20:54:39Z2015-06-30T20:54:39ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:54:39.4832015-06-30T20:54:39.563'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:38 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTQ6MzguNjUwNzY3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopica0ab1efd/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopica0ab1efd/subscriptions/MySubscriptionMySubscription2015-06-30T20:54:39Z2015-06-30T20:54:39ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:39 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - c3Vic2NyaXB0aW9uIG1lc3NhZ2U= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['20'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopica0ab1efd/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:39 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopica0ab1efd/subscriptions/MySubscription/messages/head?timeout=5 - response: - body: {string: subscription message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:54:40 GMT","LockToken":"c36207f3-8a3c-49b9-ab41-74f45e9fc707","LockedUntilUtc":"Tue, - 30 Jun 2015 20:55:40 GMT","MessageId":"eb2ec461baab4dc798b9c824687812dc","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:39 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/uttopica0ab1efd/subscriptions/MySubscription/messages/1/c36207f3-8a3c-49b9-ab41-74f45e9fc707'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode.yaml deleted file mode 100644 index cc79349aa90c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode.yaml +++ /dev/null @@ -1,109 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MzYuMTQ0MTc2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdf191fbe - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicdf191fbeuttopicdf191fbe2015-06-30T20:55:38Z2015-06-30T20:55:38ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:55:38.5272015-06-30T20:55:38.61'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:37 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MzcuNjk1MTEx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdf191fbe/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicdf191fbe/subscriptions/MySubscriptionMySubscription2015-06-30T20:55:38Z2015-06-30T20:55:38ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:38 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - c3Vic2NyaXB0aW9uIG1lc3NhZ2U= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['20'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdf191fbe/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:38 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopicdf191fbe/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: subscription message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:55:40 GMT","MessageId":"ef3b299632d843739359ce7cb23d6944","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:39 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode_throws_on_delete.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode_throws_on_delete.yaml deleted file mode 100644 index b4eb478ff078..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode_throws_on_delete.yaml +++ /dev/null @@ -1,109 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6NDkuNDQ4MzE3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic3b1226d2 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic3b1226d2uttopic3b1226d22015-06-30T20:52:51Z2015-06-30T20:52:52ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:51.9732015-06-30T20:52:52.163'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:52 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6NTEuMjU0OTYy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic3b1226d2/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic3b1226d2/subscriptions/MySubscriptionMySubscription2015-06-30T20:52:52Z2015-06-30T20:52:52ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:52 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - c3Vic2NyaXB0aW9uIG1lc3NhZ2U= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['20'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopic3b1226d2/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:53 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic3b1226d2/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: subscription message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:52:53 GMT","MessageId":"97dbd4748fd544e6b2d9c628c087afb4","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:53 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode_throws_on_unlock.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode_throws_on_unlock.yaml deleted file mode 100644 index c9b50cee4f60..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_read_delete_mode_throws_on_unlock.yaml +++ /dev/null @@ -1,94 +0,0 @@ -interactions: -- request: - body: 2016-08-11T23:42:10.212011+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic3ba726eb - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic3ba726ebuttopic3ba726eb2016-08-11T23:42:11Z2016-08-11T23:42:11ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02016-08-11T23:42:11.7472016-08-11T23:42:11.82'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:10 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: 2016-08-11T23:42:11.505004+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic3ba726eb/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic3ba726eb/subscriptions/MySubscriptionMySubscription2016-08-11T23:42:10Z2016-08-11T23:42:10ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:11 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: subscription message - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['20'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopic3ba726eb/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:11 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic3ba726eb/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: subscription message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Thu, - 11 Aug 2016 23:42:11 GMT","MessageId":"41a8c5b8447e4c7d896807d368336ac4","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:11 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_unlock.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_unlock.yaml deleted file mode 100644 index 6791dcb63133..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_receive_subscription_message_unlock.yaml +++ /dev/null @@ -1,176 +0,0 @@ -interactions: -- request: - body: 2016-08-11T23:42:19.452956+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8uttopicb47e1bd82016-08-11T23:42:20Z2016-08-11T23:42:21ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02016-08-11T23:42:20.932016-08-11T23:42:21.093'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:20 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: 2016-08-11T23:42:20.825917+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscriptionMySubscription2016-08-11T23:42:20Z2016-08-11T23:42:20ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:20 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: subscription message - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['20'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:20 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: subscription message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Thu, - 11 Aug 2016 23:42:20 GMT","LockToken":"19091a22-6715-4b21-95e0-6d54ce45c9fa","LockedUntilUtc":"Thu, - 11 Aug 2016 23:43:20 GMT","MessageId":"5095313c8cef4d8e998a98863824b2b3","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:20 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscription/messages/1/19091a22-6715-4b21-95e0-6d54ce45c9fa'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscription/messages/1/19091a22-6715-4b21-95e0-6d54ce45c9fa - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:20 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscription/messages/1/19091a22-6715-4b21-95e0-6d54ce45c9fa - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:20 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: subscription message} - headers: - BrokerProperties: ['{"DeliveryCount":2,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Thu, - 11 Aug 2016 23:42:20 GMT","LockToken":"50b362c9-cff0-4a89-bd65-ff2a98368327","LockedUntilUtc":"Thu, - 11 Aug 2016 23:43:20 GMT","MessageId":"5095313c8cef4d8e998a98863824b2b3","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:20 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscription/messages/1/50b362c9-cff0-4a89-bd65-ff2a98368327'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopicb47e1bd8/subscriptions/MySubscription/messages/1/50b362c9-cff0-4a89-bd65-ff2a98368327 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 23:42:21 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message.yaml deleted file mode 100644 index 00e3df39b759..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message.yaml +++ /dev/null @@ -1,55 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MzEuMTk1Mzgw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue138314b4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue138314b4utqueue138314b42015-06-30T20:53:34Z2015-06-30T20:53:34ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:53:34.312015-06-30T20:53:34.403'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:33 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - c2VuZCBtZXNzYWdl - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['12'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue138314b4/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:34 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_batch.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_batch.yaml deleted file mode 100644 index 02578b1c8e56..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_batch.yaml +++ /dev/null @@ -1,117 +0,0 @@ -interactions: -- request: - body: 2017-01-12T00:03:01.811134+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue97ed1715 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue97ed1715utqueue97ed17152017-01-12T00:03:03Z2017-01-12T00:03:03ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002017-01-12T00:03:03.5072017-01-12T00:03:03.553'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:03:02 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: '[{"BrokerProperties": {"Label": "M1", "TimeToLiveTimeSpan": "0.00:00:40"}, - "Body": "This is the first message"}, {"BrokerProperties": {"Label": "M2"}, - "UserProperties": {"Priority": "Low"}, "Body": "This is the second message"}, - {"BrokerProperties": {"Label": "M3"}, "UserProperties": {"Customer": "ABC", - "Priority": "Medium"}, "Body": "This is the third message"}]' - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['365'] - Content-Type: [application/vnd.microsoft.servicebus.json] - User-Agent: [pyazure/0.20.3] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue97ed1715/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:03:02 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue97ed1715/messages/head?timeout=60 - response: - body: {string: This is the first message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Thu, - 12 Jan 2017 00:03:02 GMT","Label":"M1","MessageId":"d44c5dfd06394b59bdf39d1efb17c467","SequenceNumber":1,"State":"Active","TimeToLive":40}'] - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:03:02 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue97ed1715/messages/head?timeout=60 - response: - body: {string: This is the second message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Thu, - 12 Jan 2017 00:03:02 GMT","Label":"M2","MessageId":"6754352881264e7c84f6ce45c41dbc36","SequenceNumber":2,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:03:02 GMT'] - Priority: ['"Low"'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue97ed1715/messages/head?timeout=60 - response: - body: {string: This is the third message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Thu, - 12 Jan 2017 00:03:02 GMT","Label":"M3","MessageId":"cb8203000b8c4f26a91b7f35d4326a8c","SequenceNumber":3,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/xml; charset=utf-8] - Customer: ['"ABC"'] - Date: ['Thu, 12 Jan 2017 00:03:02 GMT'] - Priority: ['"Medium"'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_unicode.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_unicode.yaml deleted file mode 100644 index 1a930e52e16b..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_unicode.yaml +++ /dev/null @@ -1,68 +0,0 @@ -interactions: -- request: - body: 2017-01-12T00:27:52.467928+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueuec7f517fa - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueuec7f517fautqueuec7f517fa2017-01-12T00:27:54Z2017-01-12T00:27:54ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002017-01-12T00:27:54.4132017-01-12T00:27:54.507'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:27:52 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: "receive message\u554A\u9F44\u4E02\u72DB\u72DC" - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['30'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuec7f517fa/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:27:52 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueuec7f517fa/messages/head?timeout=60 - response: - body: {string: "receive message\u554A\u9F44\u4E02\u72DB\u72DC"} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Thu, - 12 Jan 2017 00:27:53 GMT","MessageId":"513a6c095d30400f83915d2c0e6e5116","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:27:52 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_with_custom_message_properties.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_with_custom_message_properties.yaml deleted file mode 100644 index 26af8d0e06cf..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_with_custom_message_properties.yaml +++ /dev/null @@ -1,107 +0,0 @@ -interactions: -- request: - body: 2016-08-11T21:34:57.204182+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue652e21b9 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue652e21b9utqueue652e21b92016-08-11T21:34:58Z2016-08-11T21:34:58ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002016-08-11T21:34:58.6932016-08-11T21:34:58.757'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 21:34:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: message with properties - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['23'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - active: ['true'] - deceased: ['false'] - dob: ['"Wed, 14 Dec 2011 00:00:00 GMT"'] - double_quote_message: ['"This \"should\" work fine"'] - floating: ['3.14'] - hello: ['"world"'] - large: ['8555111000'] - number: ['42'] - quote_message: ['"This ''should'' work fine"'] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue652e21b9/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 21:34:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue652e21b9/messages/head?timeout=5 - response: - body: {string: message with properties} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Thu, - 11 Aug 2016 21:34:58 GMT","LockToken":"d4d2ca6d-7e59-4947-8c5e-4820ca342e60","LockedUntilUtc":"Thu, - 11 Aug 2016 21:35:58 GMT","MessageId":"820dba4dfd7e40758d465f7ed7eeefee","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 11 Aug 2016 21:34:58 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/utqueue652e21b9/messages/1/d4d2ca6d-7e59-4947-8c5e-4820ca342e60'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - active: ['true'] - deceased: ['false'] - dob: ['"Wed, 14 Dec 2011 00:00:00 GMT"'] - double_quote_message: ['"This \"should\" work fine"'] - floating: ['3.14'] - hello: ['"world"'] - large: ['8555111000'] - number: ['42'] - quote_message: ['"This ''should'' work fine"'] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.2] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue652e21b9/messages/1/d4d2ca6d-7e59-4947-8c5e-4820ca342e60 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 11 Aug 2016 21:34:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_with_custom_message_type.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_with_custom_message_type.yaml deleted file mode 100644 index e21a09787f72..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_queue_message_with_custom_message_type.yaml +++ /dev/null @@ -1,97 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6NTguMzcwNDk5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueuea14d1f2e - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueuea14d1f2eutqueuea14d1f2e2015-06-30T20:54:00Z2015-06-30T20:54:00ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:54:00.832015-06-30T20:54:00.933'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:00 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PHRleHQ+cGVlayBsb2NrIG1lc3NhZ2UgY3VzdG9tIG1lc3NhZ2UgdHlwZTwvdGV4dD4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['50'] - Content-Type: [text/xml] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuea14d1f2e/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:00 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueuea14d1f2e/messages/head?timeout=5 - response: - body: {string: peek lock message custom message type} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:54:01 GMT","LockToken":"ae017ce4-a847-4711-8207-9a8484e13709","LockedUntilUtc":"Tue, - 30 Jun 2015 20:55:02 GMT","MessageId":"f0cf2548ab324885b901fa830df19ef9","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [text/xml] - Date: ['Tue, 30 Jun 2015 20:54:00 GMT'] - Location: ['https://fakesbnamespace.servicebus.windows.net/utqueuea14d1f2e/messages/1/ae017ce4-a847-4711-8207-9a8484e13709'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueuea14d1f2e/messages/1/ae017ce4-a847-4711-8207-9a8484e13709 - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:54:01 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message.yaml deleted file mode 100644 index 62d792a6b761..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message.yaml +++ /dev/null @@ -1,88 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6NTQuNjkxMDQy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic135114ae - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic135114aeuttopic135114ae2015-06-30T20:52:57Z2015-06-30T20:52:57ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:57.1172015-06-30T20:52:57.497'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:57 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6NTYuNjIyMDk4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic135114ae/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic135114ae/subscriptions/MySubscriptionMySubscription2015-06-30T20:52:57Z2015-06-30T20:52:57ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:57 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - c3Vic2NyaXB0aW9uIG1lc3NhZ2U= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['20'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopic135114ae/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message_batch.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message_batch.yaml deleted file mode 100644 index 268d178ca12d..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message_batch.yaml +++ /dev/null @@ -1,143 +0,0 @@ -interactions: -- request: - body: 2017-01-12T00:11:57.418988+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic9797170f - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic9797170futtopic9797170f2017-01-12T00:11:59Z2017-01-12T00:11:59ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02017-01-12T00:11:59.1872017-01-12T00:11:59.217'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:11:57 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: 2017-01-12T00:11:58.462997+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic9797170f/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic9797170f/subscriptions/MySubscriptionMySubscription2017-01-12T00:11:58Z2017-01-12T00:11:58ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:11:57 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: '[{"BrokerProperties": {"Label": "M1", "TimeToLiveTimeSpan": "0.00:00:40"}, - "Body": "This is the first message"}, {"UserProperties": {"Priority": "Low"}, - "BrokerProperties": {"Label": "M2"}, "Body": "This is the second message"}, - {"UserProperties": {"Priority": "Medium", "Customer": "ABC"}, "BrokerProperties": - {"Label": "M3"}, "Body": "This is the third message"}]' - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['365'] - Content-Type: [application/vnd.microsoft.servicebus.json] - User-Agent: [pyazure/0.20.3] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopic9797170f/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:11:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic9797170f/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: This is the first message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Thu, - 12 Jan 2017 00:11:57 GMT","Label":"M1","MessageId":"152222cc675d4351b5a9182f7f67be38","SequenceNumber":1,"State":"Active","TimeToLive":40}'] - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:11:58 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic9797170f/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: This is the second message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":2,"EnqueuedTimeUtc":"Thu, - 12 Jan 2017 00:11:57 GMT","Label":"M2","MessageId":"c98d214ef1cd489ab26d5b4b3dc86ea7","SequenceNumber":2,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:11:58 GMT'] - Priority: ['"Low"'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic9797170f/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: This is the third message} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":3,"EnqueuedTimeUtc":"Thu, - 12 Jan 2017 00:11:57 GMT","Label":"M3","MessageId":"74ada69b2f004e36959ee6693a587bba","SequenceNumber":3,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/xml; charset=utf-8] - Customer: ['"ABC"'] - Date: ['Thu, 12 Jan 2017 00:11:58 GMT'] - Priority: ['"Medium"'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message_unicode.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message_unicode.yaml deleted file mode 100644 index 8f487b909657..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_send_topic_message_unicode.yaml +++ /dev/null @@ -1,94 +0,0 @@ -interactions: -- request: - body: 2017-01-12T00:43:40.919154+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicc79317f4 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicc79317f4uttopicc79317f42017-01-12T00:43:42Z2017-01-12T00:43:42ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02017-01-12T00:43:42.6772017-01-12T00:43:42.74'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:43:41 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: 2017-01-12T00:43:41.975527+00:00 - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopicc79317f4/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopicc79317f4/subscriptions/MySubscriptionMySubscription2017-01-12T00:43:41Z2017-01-12T00:43:41ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:43:41 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: "receive message\u554A\u9F44\u4E02\u72DB\u72DC" - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['30'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopicc79317f4/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:43:41 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.3] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopicc79317f4/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: "receive message\u554A\u9F44\u4E02\u72DB\u72DC"} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Thu, - 12 Jan 2017 00:43:40 GMT","MessageId":"a15d42347c704e56a018ba578552a068","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Thu, 12 Jan 2017 00:43:41 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_queue_unicode_name.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_queue_unicode_name.yaml deleted file mode 100644 index 2f5f16a7a4d6..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_queue_unicode_name.yaml +++ /dev/null @@ -1,32 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6NDYuNzM1MDk2 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue7a121ac6%E5%95%8A%E9%BD%84%E4%B8%82%E7%8B%9B%E7%8B%9C - response: - body: {string: '400Incorrect request Uri format. TrackingId:a27a9087-9994-4db9-aaf5-4a1146dcdbfe_G18,TimeStamp:6/30/2015 - 8:53:49 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:48 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 400, message: Bad Request} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_rule_unicode_name.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_rule_unicode_name.yaml deleted file mode 100644 index ecbdb0cd7429..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_rule_unicode_name.yaml +++ /dev/null @@ -1,101 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MTUuNjIxNzcw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic5f0b1a59 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic5f0b1a59uttopic5f0b1a592015-06-30T20:55:17Z2015-06-30T20:55:17ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:55:17.8372015-06-30T20:55:17.93'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:17 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MTcuMDA4MTIz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic5f0b1a59/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic5f0b1a59/subscriptions/MySubscriptionMySubscription2015-06-30T20:55:18Z2015-06-30T20:55:18ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:17 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTU6MTcuNjY1NTYw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFJ1bGVEZXNjcmlwdGlvbiB4bWxuczppPSJo - dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM9Imh0dHA6Ly9z - Y2hlbWFzLm1pY3Jvc29mdC5jb20vbmV0c2VydmljZXMvMjAxMC8xMC9zZXJ2aWNlYnVzL2Nvbm5l - Y3QiPjwvUnVsZURlc2NyaXB0aW9uPjwvY29udGVudD48L2VudHJ5Pg== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['553'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic5f0b1a59/subscriptions/MySubscription/rules/MyRule%E5%95%8A%E9%BD%84%E4%B8%82%E7%8B%9B%E7%8B%9C - response: - body: {string: '400''sb://fakesbnamespace.servicebus.windows.net/uttopic5f0b1a59/subscriptions/MySubscription/rules/MyRule%E5%95%8A%E9%BD%84%E4%B8%82%E7%8B%9B%E7%8B%9C'' - contains character(s) that is not allowed by Service Bus. Entity segments - can contain only letters, numbers, periods (.), hyphens (-), and underscores - (_). TrackingId:472a6105-8e72-4306-b1b8-1220d7e6ec88_G41,TimeStamp:6/30/2015 - 8:55:18 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:55:18 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 400, message: Bad Request} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_subscription_unicode_name.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_subscription_unicode_name.yaml deleted file mode 100644 index e6d4c59ce60c..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_create_subscription_unicode_name.yaml +++ /dev/null @@ -1,68 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MzIuNDg3NTk3 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic43941dc6 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic43941dc6uttopic43941dc62015-06-30T20:51:34Z2015-06-30T20:51:34ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:51:34.6872015-06-30T20:51:34.88'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:33 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTE6MzMuOTUyMzA5 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic43941dc6/subscriptions/MySubscription%E5%95%8A%E9%BD%84%E4%B8%82%E7%8B%9B%E7%8B%9C - response: - body: {string: '400''sb://fakesbnamespace.servicebus.windows.net/uttopic43941dc6/subscriptions/MySubscription%E5%95%8A%E9%BD%84%E4%B8%82%E7%8B%9B%E7%8B%9C'' - contains character(s) that is not allowed by Service Bus. Entity segments - can contain only letters, numbers, periods (.), hyphens (-), and underscores - (_). TrackingId:0f0ec032-9a77-40c1-89a3-12de818a49f5_G46,TimeStamp:6/30/2015 - 8:51:35 PM'} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:51:35 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 400, message: Bad Request} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_queue_message_binary_data.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_queue_message_binary_data.yaml deleted file mode 100644 index c1d93fd16def..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_queue_message_binary_data.yaml +++ /dev/null @@ -1,112 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MDMuMjg1MzE4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue5f9c1e10 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue5f9c1e10utqueue5f9c1e102015-06-30T20:57:05Z2015-06-30T20:57:05ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:57:05.5432015-06-30T20:57:05.643'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:05 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4 - OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3Bx - cnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmq - q6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj - 5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsc - HR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RV - VldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2O - j5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbH - yMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8A - AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5 - Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFy - c3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6Slpqeoqaqr - rK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk - 5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd - Hh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVW - V1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6P - kJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfI - ycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1024'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue5f9c1e10/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:05 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue5f9c1e10/messages/head?timeout=60 - response: - body: - string: !!binary | - AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4 - OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3Bx - cnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmq - q6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj - 5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsc - HR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RV - VldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2O - j5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbH - yMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8A - AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5 - Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFy - c3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6Slpqeoqaqr - rK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk - 5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd - Hh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVW - V1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6P - kJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfI - ycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w== - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:57:05 GMT","MessageId":"e266353222ef409984fd78047f05b1db","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:05 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_queue_message_unicode_data.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_queue_message_unicode_data.yaml deleted file mode 100644 index c187b55a85fb..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_queue_message_unicode_data.yaml +++ /dev/null @@ -1,76 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTA6NTMuOTQzOTYx - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFF1ZXVlRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1F1ZXVlRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/utqueue7e611e72 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/utqueue7e611e72utqueue7e611e722015-06-30T20:50:56Z2015-06-30T20:50:56ZfakesbnamespacePT1M1024falsefalseP10675199DT2H48M5.4775807SfalsePT10M10true002015-06-30T20:50:56.032015-06-30T20:50:56.12'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:55 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - cmVjZWl2ZSBtZXNzYWdl5ZWK6b2E5LiC54ub54uc - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['30'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/utqueue7e611e72/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:56 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/utqueue7e611e72/messages/head?timeout=60 - response: - body: {string: "receive message\u554A\u9F44\u4E02\u72DB\u72DC"} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:50:56 GMT","MessageId":"802f109effc94949850a142221828020","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:50:56 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_subscription_message_binary_data.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_subscription_message_binary_data.yaml deleted file mode 100644 index 9dcabc05a700..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_subscription_message_binary_data.yaml +++ /dev/null @@ -1,145 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MTUuMDMyMTAy - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic41272110 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic41272110uttopic412721102015-06-30T20:57:17Z2015-06-30T20:57:17ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:57:17.252015-06-30T20:57:17.49'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:17 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTc6MTYuNTc5MDIz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic41272110/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic41272110/subscriptions/MySubscriptionMySubscription2015-06-30T20:57:18Z2015-06-30T20:57:18ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:17 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4 - OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3Bx - cnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmq - q6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj - 5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsc - HR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RV - VldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2O - j5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbH - yMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8A - AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5 - Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFy - c3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6Slpqeoqaqr - rK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk - 5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd - Hh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVW - V1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6P - kJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfI - ycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w== - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1024'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopic41272110/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:17 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic41272110/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: - string: !!binary | - AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4 - OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3Bx - cnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmq - q6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj - 5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsc - HR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RV - VldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2O - j5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbH - yMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8A - AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5 - Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFy - c3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6Slpqeoqaqr - rK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk - 5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd - Hh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVW - V1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6P - kJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfI - ycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w== - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:57:18 GMT","MessageId":"5b4142d019de400f85ce1ec023cd9fb2","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:57:17 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_subscription_message_unicode_data.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_subscription_message_unicode_data.yaml deleted file mode 100644 index 583368ec3c1a..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_unicode_receive_subscription_message_unicode_data.yaml +++ /dev/null @@ -1,109 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MjUuNTg5Mjk4 - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic62ec2172 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic62ec2172uttopic62ec21722015-06-30T20:53:28Z2015-06-30T20:53:28ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:53:28.1332015-06-30T20:53:28.257'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:28 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTM6MjcuMzQ1NDcw - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uIHht - bG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0i - aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9uZXRzZXJ2aWNlcy8yMDEwLzEwL3NlcnZpY2Vi - dXMvY29ubmVjdCI+PC9TdWJzY3JpcHRpb25EZXNjcmlwdGlvbj48L2NvbnRlbnQ+PC9lbnRyeT4= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['569'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic62ec2172/subscriptions/MySubscription - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic62ec2172/subscriptions/MySubscriptionMySubscription2015-06-30T20:53:28Z2015-06-30T20:53:28ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010true'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:28 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: !!binary | - c3Vic2NyaXB0aW9uIG1lc3NhZ2XllYrpvYTkuILni5vni5w= - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['35'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: POST - uri: https://fakesbnamespace.servicebus.windows.net/uttopic62ec2172/messages - response: - body: {string: ''} - headers: - Content-Type: [application/xml; charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic62ec2172/subscriptions/MySubscription/messages/head?timeout=60 - response: - body: {string: "subscription message\u554A\u9F44\u4E02\u72DB\u72DC"} - headers: - BrokerProperties: ['{"DeliveryCount":1,"EnqueuedSequenceNumber":1,"EnqueuedTimeUtc":"Tue, - 30 Jun 2015 20:53:29 GMT","MessageId":"4998d926a6024e05ba00d5e46b101e89","SequenceNumber":1,"State":"Active","TimeToLive":922337203685.47754}'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:53:29 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_with_filter.yaml b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_with_filter.yaml deleted file mode 100644 index f5bf593b92d4..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/recordings/test_servicebus_servicebus.test_with_filter.yaml +++ /dev/null @@ -1,104 +0,0 @@ -interactions: -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MDMuMjgxNzkz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic8b6911e30 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic8b6911e30uttopic8b6911e302015-06-30T20:52:05Z2015-06-30T20:52:05ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:05.4272015-06-30T20:52:05.567'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:04 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic8b6911e30 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:52:05 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -- request: - body: !!binary | - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pjxl - bnRyeSB4bWxuczpkPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Fkby8yMDA3LzA4L2Rh - dGFzZXJ2aWNlcyIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9hZG8vMjAw - Ny8wOC9kYXRhc2VydmljZXMvbWV0YWRhdGEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1 - L0F0b20iPjx0aXRsZT48L3RpdGxlPjx1cGRhdGVkPjIwMTUtMDYtMzBUMjA6NTI6MDUuNTE1OTIz - KzAwOjAwPC91cGRhdGVkPjxhdXRob3I+PG5hbWU+PC9uYW1lPjwvYXV0aG9yPjxpZD48L2lkPjxj - b250ZW50IHR5cGU9ImFwcGxpY2F0aW9uL3htbCI+PFRvcGljRGVzY3JpcHRpb24geG1sbnM6aT0i - aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8v - c2NoZW1hcy5taWNyb3NvZnQuY29tL25ldHNlcnZpY2VzLzIwMTAvMTAvc2VydmljZWJ1cy9jb25u - ZWN0Ij48L1RvcGljRGVzY3JpcHRpb24+PC9jb250ZW50PjwvZW50cnk+ - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['555'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: PUT - uri: https://fakesbnamespace.servicebus.windows.net/uttopic8b6911e30 - response: - body: {string: 'https://fakesbnamespace.servicebus.windows.net/uttopic8b6911e30uttopic8b6911e302015-06-30T20:52:07Z2015-06-30T20:52:07ZfakesbnamespaceP10675199DT2H48M5.4775807S1024falsePT10Mtrue02015-06-30T20:52:07.0332015-06-30T20:52:07.103'} - headers: - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - Date: ['Tue, 30 Jun 2015 20:52:06 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - Transfer-Encoding: [chunked] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/atom+xml;type=entry;charset=utf-8] - User-Agent: [pyazure/0.20.0] - method: DELETE - uri: https://fakesbnamespace.servicebus.windows.net/uttopic8b6911e30 - response: - body: {string: ''} - headers: - Content-Length: ['0'] - Date: ['Tue, 30 Jun 2015 20:52:07 GMT'] - Server: [Microsoft-HTTPAPI/2.0] - status: {code: 200, message: OK} -version: 1 diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/servicebus_settings_fake.py b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/servicebus_settings_fake.py deleted file mode 100644 index 722c82faff55..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/servicebus_settings_fake.py +++ /dev/null @@ -1,22 +0,0 @@ -#------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -#-------------------------------------------------------------------------- - -# NOTE: these keys are fake, but valid base-64 data, they were generated using: -# base64.b64encode(os.urandom(32)) - -SERVICEBUS_NAME = "fakesbnamespace" -SERVICEBUS_SAS_KEY_NAME = "RootManageSharedAccessKey" -SERVICEBUS_SAS_KEY_VALUE = "WnFy94qL+8MHkWyb2vxnIIh3SomfV97F+u7sl2ULW7Q=" - -EVENTHUB_NAME = "fakehubnamespace" -EVENTHUB_SAS_KEY_NAME = "RootManageSharedAccessKey" -EVENTHUB_SAS_KEY_VALUE = "ELT4OCAZT5jgnsKts1vvHZXSevv5uXf8yACEiqEhFH4=" - -USE_PROXY = False -PROXY_HOST = "192.168.15.116" -PROXY_PORT = "8118" -PROXY_USER = "" -PROXY_PASSWORD = "" diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/servicebus_testcase.py b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/servicebus_testcase.py deleted file mode 100644 index 1be5b3453a84..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/servicebus_testcase.py +++ /dev/null @@ -1,47 +0,0 @@ -# coding: utf-8 - -#------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -#-------------------------------------------------------------------------- - -import os.path -from testutils.common_recordingtestcase import ( - RecordingTestCase, - TestMode, -) -from . import servicebus_settings_fake as fake_settings - - -class ServiceBusTestCase(RecordingTestCase): - - def setUp(self): - self.working_folder = os.path.dirname(__file__) - - super(ServiceBusTestCase, self).setUp() - - self.fake_settings = fake_settings - if TestMode.is_playback(self.test_mode): - self.settings = self.fake_settings - else: - import tests.servicebus_settings_real as real_settings # pylint: disable=import-error,no-name-in-module - self.settings = real_settings - - def _set_service_options(self, service, settings): # pylint: disable=no-self-use - if settings.USE_PROXY: - service.set_proxy( - settings.PROXY_HOST, - settings.PROXY_PORT, - settings.PROXY_USER, - settings.PROXY_PASSWORD, - ) - - def _scrub(self, val): - val = super(ServiceBusTestCase, self)._scrub(val) - real_to_fake_dict = { - self.settings.SERVICEBUS_NAME: self.fake_settings.SERVICEBUS_NAME, - self.settings.EVENTHUB_NAME: self.fake_settings.EVENTHUB_NAME, - } - val = self._scrub_using_dict(val, real_to_fake_dict) - return val diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/test_servicebus_eventhub.py b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/test_servicebus_eventhub.py deleted file mode 100644 index 9544d03ee9bf..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/test_servicebus_eventhub.py +++ /dev/null @@ -1,274 +0,0 @@ -# coding: utf-8 - -#------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -#-------------------------------------------------------------------------- - -import base64 -import os -import random -import sys -import time -import unittest - -from datetime import datetime -from requests import Session -from azure.common import ( - AzureMissingResourceHttpError, -) -from azure.servicebus._control_client import ( - AuthorizationRule, - EventHub, - ServiceBusService, - AzureServiceBusResourceNotFound, -) -from testutils.common_recordingtestcase import ( - TestMode, - record, -) -from .servicebus_testcase import ServiceBusTestCase - - -class ServiceBusEventHubTest(ServiceBusTestCase): - - def setUp(self): - super(ServiceBusEventHubTest, self).setUp() - - self.sbs = ServiceBusService( - self.settings.EVENTHUB_NAME, - shared_access_key_name=self.settings.EVENTHUB_SAS_KEY_NAME, - shared_access_key_value=self.settings.EVENTHUB_SAS_KEY_VALUE, - request_session=Session(), - ) - - self._set_service_options(self.sbs, self.settings) - - self.event_hub_name = self.get_resource_name('uthub') - - def tearDown(self): - if not self.is_playback(): - try: - self.sbs.delete_event_hub(self.event_hub_name) - except: - pass - - return super(ServiceBusEventHubTest, self).tearDown() - - #--Helpers----------------------------------------------------------------- - def _create_event_hub(self, hub_name): - self.sbs.create_event_hub(hub_name, None, True) - - #--Test cases for event hubs ---------------------------------------------- - @record - def test_create_event_hub_no_options(self): - # Arrange - - # Act - created = self.sbs.create_event_hub(self.event_hub_name) - - # Assert - self.assertTrue(created) - - @record - def test_create_event_hub_no_options_fail_on_exist(self): - # Arrange - - # Act - created = self.sbs.create_event_hub(self.event_hub_name, None, True) - - # Assert - self.assertTrue(created) - - @record - def test_create_event_hub_with_options(self): - # Arrange - - # Act - hub = EventHub() - hub.message_retention_in_days = 5 - hub.status = 'Active' - hub.user_metadata = 'hello world' - hub.partition_count = 32 - created = self.sbs.create_event_hub(self.event_hub_name, hub) - - # Assert - self.assertTrue(created) - created_hub = self.sbs.get_event_hub(self.event_hub_name) - self.assertEqual(created_hub.name, self.event_hub_name) - self.assertEqual(created_hub.message_retention_in_days, - hub.message_retention_in_days) - self.assertEqual(created_hub.status, hub.status) - self.assertEqual(created_hub.partition_count, hub.partition_count) - self.assertEqual(created_hub.user_metadata, hub.user_metadata) - self.assertEqual(len(created_hub.partition_ids), hub.partition_count) - - @record - def test_create_event_hub_with_authorization(self): - # Arrange - - # Act - hub = EventHub() - hub.authorization_rules.append( - AuthorizationRule( - claim_type='SharedAccessKey', - claim_value='None', - rights=['Manage', 'Send', 'Listen'], - key_name='Key1', - primary_key='Wli4rewPGuEsLam95nQEwGR+e8b+ynlupZQ7VfjbQnw=', - secondary_key='jS+lERPBmbBVGJ5JzIwVRtSGYoFUeunRoADNTjwU3jU=', - ) - ) - - created = self.sbs.create_event_hub(self.event_hub_name, hub) - - # Assert - self.assertTrue(created) - created_hub = self.sbs.get_event_hub(self.event_hub_name) - self.assertEqual(created_hub.name, self.event_hub_name) - self.assertEqual(len(created_hub.authorization_rules), 1) - self.assertEqual(created_hub.authorization_rules[0].claim_type, - hub.authorization_rules[0].claim_type) - self.assertEqual(created_hub.authorization_rules[0].claim_value, - hub.authorization_rules[0].claim_value) - self.assertEqual(created_hub.authorization_rules[0].key_name, - hub.authorization_rules[0].key_name) - self.assertEqual(created_hub.authorization_rules[0].primary_key, - hub.authorization_rules[0].primary_key) - self.assertEqual(created_hub.authorization_rules[0].secondary_key, - hub.authorization_rules[0].secondary_key) - - @record - def test_update_event_hub(self): - # Arrange - self._create_event_hub(self.event_hub_name) - - # Act - hub = EventHub(message_retention_in_days=3) - result = self.sbs.update_event_hub(self.event_hub_name, hub) - - # Assert - self.assertIsNotNone(result) - self.assertEqual(result.name, self.event_hub_name) - self.assertEqual(result.message_retention_in_days, - hub.message_retention_in_days) - - @record - def test_update_event_hub_with_authorization(self): - # Arrange - self._create_event_hub(self.event_hub_name) - - # Act - hub = EventHub() - hub.authorization_rules.append( - AuthorizationRule( - claim_type='SharedAccessKey', - claim_value='None', - rights=['Manage', 'Send', 'Listen'], - key_name='Key1', - primary_key='Wli4rewPGuEsLam95nQEwGR+e8b+ynlupZQ7VfjbQnw=', - secondary_key='jS+lERPBmbBVGJ5JzIwVRtSGYoFUeunRoADNTjwU3jU=', - ) - ) - result = self.sbs.update_event_hub(self.event_hub_name, hub) - - # Assert - self.assertIsNotNone(result) - self.assertEqual(result.name, self.event_hub_name) - self.assertEqual(len(result.authorization_rules), 1) - self.assertEqual(result.authorization_rules[0].claim_type, - hub.authorization_rules[0].claim_type) - self.assertEqual(result.authorization_rules[0].claim_value, - hub.authorization_rules[0].claim_value) - self.assertEqual(result.authorization_rules[0].key_name, - hub.authorization_rules[0].key_name) - self.assertEqual(result.authorization_rules[0].primary_key, - hub.authorization_rules[0].primary_key) - self.assertEqual(result.authorization_rules[0].secondary_key, - hub.authorization_rules[0].secondary_key) - - @record - def test_get_event_hub_with_existing_event_hub(self): - # Arrange - self._create_event_hub(self.event_hub_name) - - # Act - event_hub = self.sbs.get_event_hub(self.event_hub_name) - - # Assert - self.assertIsNotNone(event_hub) - self.assertEqual(event_hub.name, self.event_hub_name) - - @record - def test_get_event_hub_with_non_existing_event_hub(self): - # Arrange - - # Act - with self.assertRaises(AzureServiceBusResourceNotFound): - resp = self.sbs.get_event_hub(self.event_hub_name) - - # Assert - - @record - def test_delete_event_hub_with_existing_event_hub(self): - # Arrange - self._create_event_hub(self.event_hub_name) - - # Act - deleted = self.sbs.delete_event_hub(self.event_hub_name) - - # Assert - self.assertTrue(deleted) - - @record - def test_delete_event_hub_with_existing_event_hub_fail_not_exist(self): - # Arrange - self._create_event_hub(self.event_hub_name) - - # Act - deleted = self.sbs.delete_event_hub(self.event_hub_name, True) - - # Assert - self.assertTrue(deleted) - - @record - def test_delete_event_hub_with_non_existing_event_hub(self): - # Arrange - - # Act - deleted = self.sbs.delete_event_hub(self.event_hub_name) - - # Assert - self.assertFalse(deleted) - - @record - def test_delete_event_hub_with_non_existing_event_hub_fail_not_exist(self): - # Arrange - - # Act - with self.assertRaises(AzureMissingResourceHttpError): - self.sbs.delete_event_hub(self.event_hub_name, True) - - # Assert - - @record - def test_send_event(self): - # Arrange - self._create_event_hub(self.event_hub_name) - - # Act - result = self.sbs.send_event(self.event_hub_name, - 'hello world') - result = self.sbs.send_event(self.event_hub_name, - 'wake up world') - result = self.sbs.send_event(self.event_hub_name, - 'goodbye!') - - # Assert - self.assertIsNone(result) - - -#------------------------------------------------------------------------------ -if __name__ == '__main__': - unittest.main() diff --git a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/test_servicebus_servicebus.py b/sdk/servicebus/azure-servicebus/tests/control_plane_tests/test_servicebus_servicebus.py deleted file mode 100644 index ef3feb36ced5..000000000000 --- a/sdk/servicebus/azure-servicebus/tests/control_plane_tests/test_servicebus_servicebus.py +++ /dev/null @@ -1,1680 +0,0 @@ -# coding: utf-8 - -#------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -#-------------------------------------------------------------------------- - -import base64 -import os -import random -import sys -import time -import unittest - -from datetime import datetime -from azure.common import ( - AzureHttpError, - AzureMissingResourceHttpError, - AzureConflictHttpError, -) -from azure.servicebus._control_client._http import HTTPError -from azure.servicebus._control_client import ( - AZURE_SERVICEBUS_NAMESPACE, - AZURE_SERVICEBUS_ACCESS_KEY, - AZURE_SERVICEBUS_ISSUER, - AzureServiceBusPeekLockError, - AzureServiceBusResourceNotFound, - Message, - Queue, - Rule, - ServiceBusService, - Subscription, - Topic, -) -from testutils.common_recordingtestcase import ( - TestMode, - record, -) -from .servicebus_testcase import ServiceBusTestCase - - -class ServiceBusServiceBusTest(ServiceBusTestCase): - - def setUp(self): - super(ServiceBusServiceBusTest, self).setUp() - - self.sbs = ServiceBusService( - self.settings.SERVICEBUS_NAME, - shared_access_key_name=self.settings.SERVICEBUS_SAS_KEY_NAME, - shared_access_key_value=self.settings.SERVICEBUS_SAS_KEY_VALUE, - ) - - self._set_service_options(self.sbs, self.settings) - - self.queue_name = self.get_resource_name('utqueue') - self.topic_name = self.get_resource_name('uttopic') - - self.additional_queue_names = [] - self.additional_topic_names = [] - - def tearDown(self): - if not self.is_playback(): - try: - self.sbs.delete_queue(self.queue_name) - except: - pass - - for name in self.additional_queue_names: - try: - self.sbs.delete_queue(name) - except: - pass - - try: - self.sbs.delete_topic(self.topic_name) - except: - pass - - for name in self.additional_topic_names: - try: - self.sbs.delete_topic(name) - except: - pass - - return super(ServiceBusServiceBusTest, self).tearDown() - - #--Helpers----------------------------------------------------------------- - def _create_queue(self, queue_name): - self.sbs.create_queue(queue_name, None, True) - - def _create_queue_and_send_msg(self, queue_name, msg): - self._create_queue(queue_name) - self.sbs.send_queue_message(queue_name, msg) - - def _create_topic(self, topic_name): - self.sbs.create_topic(topic_name, None, True) - - def _create_topic_and_subscription(self, topic_name, subscription_name): - self._create_topic(topic_name) - self._create_subscription(topic_name, subscription_name) - - def _create_subscription(self, topic_name, subscription_name): - self.sbs.create_subscription(topic_name, subscription_name, None, True) - - #--Test cases for service bus service ------------------------------------- - - def test_create_service_bus_missing_arguments(self): - # Arrange - if AZURE_SERVICEBUS_NAMESPACE in os.environ: - del os.environ[AZURE_SERVICEBUS_NAMESPACE] - if AZURE_SERVICEBUS_ACCESS_KEY in os.environ: - del os.environ[AZURE_SERVICEBUS_ACCESS_KEY] - if AZURE_SERVICEBUS_ISSUER in os.environ: - del os.environ[AZURE_SERVICEBUS_ISSUER] - - # Act - with self.assertRaises(ValueError): - sbs = ServiceBusService() - - # Assert - - @unittest.skip('ACS is deprecated and this test cannot be run live anymore') - def test_create_service_bus_env_variables(self): - # Arrange - os.environ[AZURE_SERVICEBUS_NAMESPACE] = self.settings.SERVICEBUS_NAME - os.environ[AZURE_SERVICEBUS_ACCESS_KEY] = self.settings.SERVICEBUS_ACS_KEY - os.environ[AZURE_SERVICEBUS_ISSUER] = 'owner' - - # Act - sbs = ServiceBusService() - - if AZURE_SERVICEBUS_NAMESPACE in os.environ: - del os.environ[AZURE_SERVICEBUS_NAMESPACE] - if AZURE_SERVICEBUS_ACCESS_KEY in os.environ: - del os.environ[AZURE_SERVICEBUS_ACCESS_KEY] - if AZURE_SERVICEBUS_ISSUER in os.environ: - del os.environ[AZURE_SERVICEBUS_ISSUER] - - # Assert - self.assertIsNotNone(sbs) - self.assertEqual(sbs.service_namespace, self.settings.SERVICEBUS_NAME) - self.assertEqual(sbs.account_key, self.settings.SERVICEBUS_ACS_KEY) - self.assertEqual(sbs.issuer, 'owner') - - #--Test cases for queues -------------------------------------------------- - @record - def test_create_queue_no_options(self): - # Arrange - - # Act - created = self.sbs.create_queue(self.queue_name) - - # Assert - self.assertTrue(created) - - @record - def test_create_queue_no_options_fail_on_exist(self): - # Arrange - - # Act - created = self.sbs.create_queue(self.queue_name, None, True) - - # Assert - self.assertTrue(created) - - @record - def test_create_queue_with_options(self): - # Arrange - - # Act - queue_options = Queue() - queue_options.default_message_time_to_live = 'PT1M' - queue_options.duplicate_detection_history_time_window = 'PT5M' - queue_options.enable_batched_operations = False - queue_options.dead_lettering_on_message_expiration = False - queue_options.lock_duration = 'PT1M' - queue_options.max_delivery_count = 15 - queue_options.max_size_in_megabytes = 5120 - queue_options.message_count = 0 - queue_options.requires_duplicate_detection = False - queue_options.requires_session = False - queue_options.size_in_bytes = 0 - created = self.sbs.create_queue(self.queue_name, queue_options) - - # Assert - self.assertTrue(created) - queue = self.sbs.get_queue(self.queue_name) - self.assertEqual('PT1M', queue.default_message_time_to_live) - self.assertEqual('PT5M', queue.duplicate_detection_history_time_window) - self.assertEqual(False, queue.enable_batched_operations) - self.assertEqual(False, queue.dead_lettering_on_message_expiration) - self.assertEqual('PT1M', queue.lock_duration) - self.assertEqual(15, queue.max_delivery_count) - self.assertEqual(5120, queue.max_size_in_megabytes) - self.assertEqual(0, queue.message_count) - self.assertEqual(False, queue.requires_duplicate_detection) - self.assertEqual(False, queue.requires_session) - self.assertEqual(0, queue.size_in_bytes) - - @record - def test_create_queue_with_already_existing_queue(self): - # Arrange - - # Act - created1 = self.sbs.create_queue(self.queue_name) - created2 = self.sbs.create_queue(self.queue_name) - - # Assert - self.assertTrue(created1) - self.assertFalse(created2) - - @record - def test_create_queue_with_already_existing_queue_fail_on_exist(self): - # Arrange - - # Act - created = self.sbs.create_queue(self.queue_name) - with self.assertRaises(AzureConflictHttpError): - self.sbs.create_queue(self.queue_name, None, True) - - # Assert - self.assertTrue(created) - - @record - def test_get_queue_with_existing_queue(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - queue = self.sbs.get_queue(self.queue_name) - - # Assert - self.assertIsNotNone(queue) - self.assertEqual(queue.name, self.queue_name) - - @record - def test_get_queue_with_non_existing_queue(self): - # Arrange - - # Act - with self.assertRaises(AzureServiceBusResourceNotFound): - resp = self.sbs.get_queue(self.queue_name) - - # Assert - - @record - def test_list_queues(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - queues = self.sbs.list_queues() - for queue in queues: - name = queue.name - - # Assert - self.assertIsNotNone(queues) - self.assertNamedItemInContainer(queues, self.queue_name) - - @record - def test_list_queues_with_special_chars(self): - # Arrange - # Name must start and end with an alphanumeric and can only contain - # letters, numbers, periods, hyphens, forward slashes and underscores. - other_queue_name = self.queue_name + 'txt/.-_123' - self.additional_queue_names = [other_queue_name] - self._create_queue(other_queue_name) - - # Act - queues = self.sbs.list_queues() - - # Assert - self.assertIsNotNone(queues) - self.assertNamedItemInContainer(queues, other_queue_name) - - @record - def test_delete_queue_with_existing_queue(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - deleted = self.sbs.delete_queue(self.queue_name) - - # Assert - self.assertTrue(deleted) - queues = self.sbs.list_queues() - self.assertNamedItemNotInContainer(queues, self.queue_name) - - @record - def test_delete_queue_with_existing_queue_fail_not_exist(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - deleted = self.sbs.delete_queue(self.queue_name, True) - - # Assert - self.assertTrue(deleted) - queues = self.sbs.list_queues() - self.assertNamedItemNotInContainer(queues, self.queue_name) - - @record - def test_delete_queue_with_non_existing_queue(self): - # Arrange - - # Act - deleted = self.sbs.delete_queue(self.queue_name) - - # Assert - self.assertFalse(deleted) - - @record - def test_delete_queue_with_non_existing_queue_fail_not_exist(self): - # Arrange - - # Act - with self.assertRaises(AzureMissingResourceHttpError): - self.sbs.delete_queue(self.queue_name, True) - - # Assert - - @record - def test_send_queue_message(self): - # Arrange - self._create_queue(self.queue_name) - sent_msg = Message(b'send message') - - # Act - self.sbs.send_queue_message(self.queue_name, sent_msg) - - # Assert - - @record - def test_send_queue_message_batch(self): - # https://docs.microsoft.com/rest/api/servicebus/send-message-batch - - # Arrange - self._create_queue(self.queue_name) - sent_msg_1 = Message(b'This is the first message', - broker_properties={'Label': 'M1', - 'TimeToLiveTimeSpan': '0.00:00:40'} - ) - sent_msg_2 = Message(b'This is the second message', - broker_properties={'Label': 'M2'}, - custom_properties={'Priority': 'Low'} - ) - sent_msg_3 = Message(b'This is the third message', - broker_properties={'Label': 'M3'}, - custom_properties={'Priority': 'Medium', - 'Customer': 'ABC'} - ) - - # Act - self.sbs.send_queue_message_batch(self.queue_name, [sent_msg_1, sent_msg_2, sent_msg_3]) - received_msg_1 = self.sbs.receive_queue_message(self.queue_name, False) - received_msg_2 = self.sbs.receive_queue_message(self.queue_name, False) - received_msg_3 = self.sbs.receive_queue_message(self.queue_name, False) - - # Assert - self.assertEqual(sent_msg_1.body, received_msg_1.body) - self.assertEqual(sent_msg_2.body, received_msg_2.body) - self.assertEqual(sent_msg_3.body, received_msg_3.body) - - @record - def test_receive_queue_message_read_delete_mode(self): - # Assert - sent_msg = Message(b'receive message') - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, False) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_receive_queue_message_with_broker_properties(self): - # Assert - sent_msg = Message(b'receive message') - sent_msg.broker_properties = \ - '{"ForcePersistence": false, "Label": "My label" }' - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, False) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - self.assertEqual("My label", received_msg.broker_properties['Label']) - self.assertEqual(False, received_msg.broker_properties['ForcePersistence']) - - @record - def test_receive_queue_message_with_broker_properties_as_a_dict(self): - # Assert - sent_msg = Message(b'receive message') - sent_msg.broker_properties = \ - {"ForcePersistence": False, "Label": "My label"} - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, False) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - self.assertEqual("My label", received_msg.broker_properties['Label']) - self.assertEqual(False, received_msg.broker_properties['ForcePersistence']) - - @record - def test_receive_queue_message_read_delete_mode_throws_on_delete(self): - # Assert - sent_msg = Message(b'receive message') - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, False) - with self.assertRaises(AzureServiceBusPeekLockError): - received_msg.delete() - - # Assert - - @record - def test_receive_queue_message_read_delete_mode_throws_on_unlock(self): - # Assert - sent_msg = Message(b'receive message') - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, False) - with self.assertRaises(AzureServiceBusPeekLockError): - received_msg.renew_lock() - with self.assertRaises(AzureServiceBusPeekLockError): - received_msg.unlock() - - # Assert - - @record - def test_receive_queue_message_peek_lock_mode(self): - # Arrange - sent_msg = Message(b'peek lock message') - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, True) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_receive_queue_message_delete(self): - # Arrange - sent_msg = Message(b'peek lock message delete') - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, True) - received_msg.delete() - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_receive_queue_message_delete_with_slash(self): - # Arrange - self.queue_name = self.get_resource_name('ut/queue') - sent_msg = Message(b'peek lock message delete') - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, True) - received_msg.delete() - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_receive_queue_message_unlock(self): - # Arrange - sent_msg = Message(b'peek lock message unlock') - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, True) - received_msg.renew_lock() - received_msg.unlock() - - # Assert - received_again_msg = self.sbs.receive_queue_message( - self.queue_name, True) - received_again_msg.delete() - self.assertIsNotNone(received_msg) - self.assertIsNotNone(received_again_msg) - self.assertEqual(sent_msg.body, received_msg.body) - self.assertEqual(received_again_msg.body, received_msg.body) - - @record - def test_get_dead_letter_queue(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - dead_letter_name = ServiceBusService.format_dead_letter_queue_name( - self.queue_name) - try: - self.sbs.receive_queue_message(dead_letter_name, timeout=2) - except Exception: - # Assert - self.fail("Dead Letter queue not found") - - @record - def test_send_queue_message_with_custom_message_type(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - sent_msg = Message( - b'peek lock message custom message type', - type='text/xml') - self.sbs.send_queue_message(self.queue_name, sent_msg) - received_msg = self.sbs.receive_queue_message(self.queue_name, True, 5) - received_msg.delete() - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual('text/xml', received_msg.type) - - @record - def test_send_queue_message_with_custom_message_properties(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - props = {'hello': 'world', - 'number': 42, - 'active': True, - 'deceased': False, - 'large': 8555111000, - 'floating': 3.14, - 'dob': datetime(2011, 12, 14), - 'double_quote_message': 'This "should" work fine', - 'quote_message': "This 'should' work fine"} - sent_msg = Message(b'message with properties', custom_properties=props) - self.sbs.send_queue_message(self.queue_name, sent_msg) - received_msg = self.sbs.receive_queue_message(self.queue_name, True, 5) - received_msg.delete() - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(received_msg.custom_properties['hello'], 'world') - self.assertEqual(received_msg.custom_properties['number'], 42) - self.assertEqual(received_msg.custom_properties['active'], True) - self.assertEqual(received_msg.custom_properties['deceased'], False) - self.assertEqual(received_msg.custom_properties['large'], 8555111000) - self.assertEqual(received_msg.custom_properties['floating'], 3.14) - self.assertEqual( - received_msg.custom_properties['dob'], datetime(2011, 12, 14)) - self.assertEqual( - received_msg.custom_properties['double_quote_message'], 'This "should" work fine') - self.assertEqual( - received_msg.custom_properties['quote_message'], "This 'should' work fine") - - @unittest.skip('flaky') - def test_receive_queue_message_timeout_5(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - start = datetime.now() - received_msg = self.sbs.receive_queue_message(self.queue_name, True, 5) - duration = datetime.now() - start - - # Assert - self.assertGreater(duration.total_seconds(), 3) - self.assertLess(duration.total_seconds(), 10) - self.assertIsNotNone(received_msg) - self.assertIsNone(received_msg.body) - - @unittest.skip('flaky') - def test_receive_queue_message_timeout_50(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - start = datetime.now() - received_msg = self.sbs.receive_queue_message( - self.queue_name, True, 50) - duration = datetime.now() - start - - # Assert - self.assertGreater(duration.total_seconds(), 48) - self.assertLess(duration.total_seconds(), 55) - self.assertIsNotNone(received_msg) - self.assertIsNone(received_msg.body) - - @unittest.skip('flaky') - def test_receive_queue_message_timeout_50_http_timeout(self): - # Arrange - self._create_queue(self.queue_name) - - # Act - self.sbs.timeout = 10 - try: - received_msg = self.sbs.receive_queue_message( - self.queue_name, True, 50) - self.assertTrue(False, 'Failed to trigger an HTTP timeout') - except: - pass - - # Assert - - #--Test cases for topics/subscriptions ------------------------------------ - @record - def test_create_topic_no_options(self): - # Arrange - - # Act - created = self.sbs.create_topic(self.topic_name) - - # Assert - self.assertTrue(created) - - @record - def test_create_topic_no_options_fail_on_exist(self): - # Arrange - - # Act - created = self.sbs.create_topic(self.topic_name, None, True) - - # Assert - self.assertTrue(created) - - @record - def test_create_topic_with_options(self): - # Arrange - - # Act - topic_options = Topic() - topic_options.default_message_time_to_live = 'PT1M' - topic_options.duplicate_detection_history_time_window = 'PT5M' - topic_options.enable_batched_operations = False - topic_options.max_size_in_megabytes = 5120 - topic_options.requires_duplicate_detection = False - topic_options.size_in_bytes = 0 - # TODO: MaximumNumberOfSubscriptions is not supported? - created = self.sbs.create_topic(self.topic_name, topic_options) - - # Assert - self.assertTrue(created) - topic = self.sbs.get_topic(self.topic_name) - self.assertEqual('PT1M', topic.default_message_time_to_live) - self.assertEqual('PT5M', topic.duplicate_detection_history_time_window) - self.assertEqual(False, topic.enable_batched_operations) - self.assertEqual(5120, topic.max_size_in_megabytes) - self.assertEqual(False, topic.requires_duplicate_detection) - self.assertEqual(0, topic.size_in_bytes) - - @record - def test_create_topic_with_already_existing_topic(self): - # Arrange - - # Act - created1 = self.sbs.create_topic(self.topic_name) - created2 = self.sbs.create_topic(self.topic_name) - - # Assert - self.assertTrue(created1) - self.assertFalse(created2) - - @record - def test_create_topic_with_already_existing_topic_fail_on_exist(self): - # Arrange - - # Act - created = self.sbs.create_topic(self.topic_name) - with self.assertRaises(AzureConflictHttpError): - self.sbs.create_topic(self.topic_name, None, True) - - # Assert - self.assertTrue(created) - - @record - @unittest.skip('undesirable output, this is old enough, backwards compatibility can be deleted') - def test_topic_backwards_compatibility_warning(self): - # Arrange - topic_options = Topic() - topic_options.max_size_in_megabytes = 5120 - - # Act - val = topic_options.max_size_in_mega_bytes - - # Assert - self.assertEqual(val, 5120) - - # Act - topic_options.max_size_in_mega_bytes = 1024 - - # Assert - self.assertEqual(topic_options.max_size_in_megabytes, 1024) - - @record - def test_get_topic_with_existing_topic(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - topic = self.sbs.get_topic(self.topic_name) - - # Assert - self.assertIsNotNone(topic) - self.assertEqual(topic.name, self.topic_name) - - @record - def test_get_topic_with_non_existing_topic(self): - # Arrange - - # Act - with self.assertRaises(AzureServiceBusResourceNotFound): - self.sbs.get_topic(self.topic_name) - - # Assert - - @record - def test_list_topics(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - topics = self.sbs.list_topics() - for topic in topics: - name = topic.name - - # Assert - self.assertIsNotNone(topics) - self.assertNamedItemInContainer(topics, self.topic_name) - - @record - def test_list_topics_with_special_chars(self): - # Arrange - # Name must start and end with an alphanumeric and can only contain - # letters, numbers, periods, hyphens, forward slashes and underscores. - other_topic_name = self.topic_name + 'txt/.-_123' - self.additional_topic_names = [other_topic_name] - self._create_topic(other_topic_name) - - # Act - topics = self.sbs.list_topics() - - # Assert - self.assertIsNotNone(topics) - self.assertNamedItemInContainer(topics, other_topic_name) - - @record - def test_delete_topic_with_existing_topic(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - deleted = self.sbs.delete_topic(self.topic_name) - - # Assert - self.assertTrue(deleted) - topics = self.sbs.list_topics() - self.assertNamedItemNotInContainer(topics, self.topic_name) - - @record - def test_delete_topic_with_existing_topic_fail_not_exist(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - deleted = self.sbs.delete_topic(self.topic_name, True) - - # Assert - self.assertTrue(deleted) - topics = self.sbs.list_topics() - self.assertNamedItemNotInContainer(topics, self.topic_name) - - @record - def test_delete_topic_with_non_existing_topic(self): - # Arrange - - # Act - deleted = self.sbs.delete_topic(self.topic_name) - - # Assert - self.assertFalse(deleted) - - @record - def test_delete_topic_with_non_existing_topic_fail_not_exist(self): - # Arrange - - # Act - with self.assertRaises(AzureMissingResourceHttpError): - self.sbs.delete_topic(self.topic_name, True) - - # Assert - - @record - def test_create_subscription(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - created = self.sbs.create_subscription( - self.topic_name, 'MySubscription') - - # Assert - self.assertTrue(created) - - @record - def test_create_subscription_with_options(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - subscription_options = Subscription() - subscription_options.dead_lettering_on_filter_evaluation_exceptions = False - subscription_options.dead_lettering_on_message_expiration = False - subscription_options.default_message_time_to_live = 'PT15M' - subscription_options.enable_batched_operations = False - subscription_options.lock_duration = 'PT1M' - subscription_options.max_delivery_count = 15 - #message_count is read-only - subscription_options.message_count = 0 - subscription_options.requires_session = False - created = self.sbs.create_subscription( - self.topic_name, 'MySubscription', subscription_options) - - # Assert - self.assertTrue(created) - subscription = self.sbs.get_subscription( - self.topic_name, 'MySubscription') - self.assertEqual( - False, subscription.dead_lettering_on_filter_evaluation_exceptions) - self.assertEqual( - False, subscription.dead_lettering_on_message_expiration) - self.assertEqual('PT15M', subscription.default_message_time_to_live) - self.assertEqual(False, subscription.enable_batched_operations) - self.assertEqual('PT1M', subscription.lock_duration) - # self.assertEqual(15, subscription.max_delivery_count) #no idea why - # max_delivery_count is always 10 - self.assertEqual(0, subscription.message_count) - self.assertEqual(False, subscription.requires_session) - - @record - def test_create_subscription_fail_on_exist(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - created = self.sbs.create_subscription( - self.topic_name, 'MySubscription', None, True) - - # Assert - self.assertTrue(created) - - @record - def test_create_subscription_with_already_existing_subscription(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - created1 = self.sbs.create_subscription( - self.topic_name, 'MySubscription') - created2 = self.sbs.create_subscription( - self.topic_name, 'MySubscription') - - # Assert - self.assertTrue(created1) - self.assertFalse(created2) - - @record - def test_create_subscription_with_already_existing_subscription_fail_on_exist(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - created = self.sbs.create_subscription( - self.topic_name, 'MySubscription') - with self.assertRaises(AzureConflictHttpError): - self.sbs.create_subscription( - self.topic_name, 'MySubscription', None, True) - - # Assert - self.assertTrue(created) - - @record - def test_list_subscriptions(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription2') - - # Act - subscriptions = self.sbs.list_subscriptions(self.topic_name) - - # Assert - self.assertIsNotNone(subscriptions) - self.assertEqual(len(subscriptions), 1) - self.assertEqual(subscriptions[0].name, 'MySubscription2') - - @record - def test_get_subscription_with_existing_subscription(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription3') - - # Act - subscription = self.sbs.get_subscription( - self.topic_name, 'MySubscription3') - - # Assert - self.assertIsNotNone(subscription) - self.assertEqual(subscription.name, 'MySubscription3') - - @record - def test_get_subscription_with_non_existing_subscription(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription3') - - # Act - with self.assertRaises(AzureMissingResourceHttpError): - self.sbs.get_subscription(self.topic_name, 'MySubscription4') - - # Assert - - @record - def test_delete_subscription_with_existing_subscription(self): - # Arrange - self._create_topic(self.topic_name) - self._create_subscription(self.topic_name, 'MySubscription4') - self._create_subscription(self.topic_name, 'MySubscription5') - - # Act - deleted = self.sbs.delete_subscription( - self.topic_name, 'MySubscription4') - - # Assert - self.assertTrue(deleted) - subscriptions = self.sbs.list_subscriptions(self.topic_name) - self.assertIsNotNone(subscriptions) - self.assertEqual(len(subscriptions), 1) - self.assertEqual(subscriptions[0].name, 'MySubscription5') - - @record - def test_delete_subscription_with_existing_subscription_fail_not_exist(self): - # Arrange - self._create_topic(self.topic_name) - self._create_subscription(self.topic_name, 'MySubscription4') - self._create_subscription(self.topic_name, 'MySubscription5') - - # Act - deleted = self.sbs.delete_subscription( - self.topic_name, 'MySubscription4', True) - - # Assert - self.assertTrue(deleted) - subscriptions = self.sbs.list_subscriptions(self.topic_name) - self.assertIsNotNone(subscriptions) - self.assertEqual(len(subscriptions), 1) - self.assertEqual(subscriptions[0].name, 'MySubscription5') - - @record - def test_delete_subscription_with_non_existing_subscription(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - deleted = self.sbs.delete_subscription( - self.topic_name, 'MySubscription') - - # Assert - self.assertFalse(deleted) - - @record - def test_delete_subscription_with_non_existing_subscription_fail_not_exist(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - with self.assertRaises(AzureMissingResourceHttpError): - self.sbs.delete_subscription( - self.topic_name, 'MySubscription', True) - - # Assert - - @record - def test_create_rule_no_options(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1') - - # Assert - self.assertTrue(created) - - @record - def test_create_rule_no_options_fail_on_exist(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', None, True) - - # Assert - self.assertTrue(created) - - @record - def test_create_rule_with_already_existing_rule(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - created1 = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1') - created2 = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1') - - # Assert - self.assertTrue(created1) - self.assertFalse(created2) - - @record - def test_create_rule_with_already_existing_rule_fail_on_exist(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1') - with self.assertRaises(AzureConflictHttpError): - self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', None, True) - - # Assert - self.assertTrue(created) - - @record - def test_create_rule_with_options_sql_filter(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - rule1 = Rule() - rule1.filter_type = 'SqlFilter' - rule1.filter_expression = 'number > 40' - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', rule1) - - # Assert - self.assertTrue(created) - - @record - def test_create_rule_with_options_true_filter(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - rule1 = Rule() - rule1.filter_type = 'TrueFilter' - rule1.filter_expression = '1=1' - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', rule1) - - # Assert - self.assertTrue(created) - - @record - def test_create_rule_with_options_false_filter(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - rule1 = Rule() - rule1.filter_type = 'FalseFilter' - rule1.filter_expression = '1=0' - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', rule1) - - # Assert - self.assertTrue(created) - - @record - def test_create_rule_with_options_correlation_filter(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - rule1 = Rule() - rule1.filter_type = 'CorrelationFilter' - rule1.filter_expression = 'myid' - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', rule1) - - # Assert - self.assertTrue(created) - - @record - def test_create_rule_with_options_empty_rule_action(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - rule1 = Rule() - rule1.action_type = 'EmptyRuleAction' - rule1.action_expression = '' - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', rule1) - - # Assert - self.assertTrue(created) - - @record - def test_create_rule_with_options_sql_rule_action(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - rule1 = Rule() - rule1.action_type = 'SqlRuleAction' - rule1.action_expression = "SET number = 5" - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', rule1) - - # Assert - self.assertTrue(created) - - @record - def test_list_rules(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - resp = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule2') - - # Act - rules = self.sbs.list_rules(self.topic_name, 'MySubscription') - - # Assert - self.assertEqual(len(rules), 2) - - @record - def test_get_rule_with_existing_rule(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - rule = self.sbs.get_rule(self.topic_name, 'MySubscription', '$Default') - - # Assert - self.assertIsNotNone(rule) - self.assertEqual(rule.name, '$Default') - - @record - def test_get_rule_with_non_existing_rule(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - with self.assertRaises(AzureMissingResourceHttpError): - self.sbs.get_rule(self.topic_name, - 'MySubscription', 'NonExistingRule') - - # Assert - - @record - def test_get_rule_with_existing_rule_with_options(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_rule = Rule() - sent_rule.filter_type = 'SqlFilter' - sent_rule.filter_expression = 'number > 40' - sent_rule.action_type = 'SqlRuleAction' - sent_rule.action_expression = 'SET number = 5' - self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule1', sent_rule) - - # Act - received_rule = self.sbs.get_rule( - self.topic_name, 'MySubscription', 'MyRule1') - - # Assert - self.assertIsNotNone(received_rule) - self.assertEqual(received_rule.name, 'MyRule1') - self.assertEqual(received_rule.filter_type, sent_rule.filter_type) - self.assertEqual(received_rule.filter_expression, - sent_rule.filter_expression) - self.assertEqual(received_rule.action_type, sent_rule.action_type) - self.assertEqual(received_rule.action_expression, - sent_rule.action_expression) - - @record - def test_delete_rule_with_existing_rule(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - resp = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule3') - resp = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule4') - - # Act - deleted1 = self.sbs.delete_rule( - self.topic_name, 'MySubscription', 'MyRule4') - deleted2 = self.sbs.delete_rule( - self.topic_name, 'MySubscription', '$Default') - - # Assert - self.assertTrue(deleted1) - self.assertTrue(deleted2) - rules = self.sbs.list_rules(self.topic_name, 'MySubscription') - self.assertIsNotNone(rules) - self.assertEqual(len(rules), 1) - self.assertEqual(rules[0].name, 'MyRule3') - - @record - def test_delete_rule_with_existing_rule_fail_not_exist(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - resp = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule3') - resp = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule4') - - # Act - deleted1 = self.sbs.delete_rule( - self.topic_name, 'MySubscription', 'MyRule4', True) - deleted2 = self.sbs.delete_rule( - self.topic_name, 'MySubscription', '$Default', True) - - # Assert - self.assertTrue(deleted1) - self.assertTrue(deleted2) - rules = self.sbs.list_rules(self.topic_name, 'MySubscription') - self.assertIsNotNone(rules) - self.assertEqual(len(rules), 1) - self.assertEqual(rules[0].name, 'MyRule3') - - @record - def test_delete_rule_with_non_existing_rule(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - deleted = self.sbs.delete_rule( - self.topic_name, 'MySubscription', 'NonExistingRule') - - # Assert - self.assertFalse(deleted) - - @record - def test_delete_rule_with_non_existing_rule_fail_not_exist(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - with self.assertRaises(AzureMissingResourceHttpError): - self.sbs.delete_rule( - self.topic_name, 'MySubscription', 'NonExistingRule', True) - - # Assert - - @record - def test_send_topic_message(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(b'subscription message') - - # Act - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Assert - - @record - def test_send_topic_message_batch(self): - # https://docs.microsoft.com/rest/api/servicebus/send-message-batch - - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg_1 = Message(b'This is the first message', - broker_properties={'Label': 'M1', - 'TimeToLiveTimeSpan': '0.00:00:40'} - ) - sent_msg_2 = Message(b'This is the second message', - broker_properties={'Label': 'M2'}, - custom_properties={'Priority': 'Low'} - ) - sent_msg_3 = Message(b'This is the third message', - broker_properties={'Label': 'M3'}, - custom_properties={'Priority': 'Medium', - 'Customer': 'ABC'} - ) - - # Act - self.sbs.send_topic_message_batch(self.topic_name, [sent_msg_1, sent_msg_2, sent_msg_3]) - received_msg_1 = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - received_msg_2 = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - received_msg_3 = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - - # Assert - self.assertEqual(sent_msg_1.body, received_msg_1.body) - self.assertEqual(sent_msg_2.body, received_msg_2.body) - self.assertEqual(sent_msg_3.body, received_msg_3.body) - - @record - def test_receive_subscription_message_read_delete_mode(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(b'subscription message') - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_receive_subscription_message_read_delete_mode_throws_on_delete(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(b'subscription message') - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - with self.assertRaises(AzureServiceBusPeekLockError): - received_msg.delete() - - # Assert - - @record - def test_receive_subscription_message_read_delete_mode_throws_on_unlock(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(b'subscription message') - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - with self.assertRaises(AzureServiceBusPeekLockError): - received_msg.renew_lock() - with self.assertRaises(AzureServiceBusPeekLockError): - received_msg.unlock() - - # Assert - - @record - def test_receive_subscription_message_peek_lock_mode(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(b'subscription message') - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', True, 5) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_get_dead_letter_subscription(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - dead_letter_name = ServiceBusService.format_dead_letter_subscription_name( - 'MySubscription') - try: - self.sbs.receive_subscription_message( - self.topic_name, dead_letter_name, timeout=2) - except Exception: - # Assert - self.fail("Dead Letter subscription not found") - - @record - def test_receive_subscription_message_delete(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(b'subscription message') - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', True, 5) - received_msg.delete() - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_receive_subscription_message_delete_with_slash(self): - # Arrange - self.topic_name = self.get_resource_name('ut/topic') - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(b'subscription message') - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', True, 5) - received_msg.delete() - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_receive_subscription_message_unlock(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(b'subscription message') - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', True) - received_msg.renew_lock() - received_msg.unlock() - - # Assert - received_again_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', True) - received_again_msg.delete() - self.assertIsNotNone(received_msg) - self.assertIsNotNone(received_again_msg) - self.assertEqual(sent_msg.body, received_msg.body) - self.assertEqual(received_again_msg.body, received_msg.body) - - @record - def test_with_filter(self): - # Single filter - called = [] - - def my_filter(request, next): - called.append(True) - return next(request) - - sbs = self.sbs.with_filter(my_filter) - sbs.create_topic(self.topic_name + '0', None, True) - - self.assertTrue(called) - - del called[:] - - sbs.delete_topic(self.topic_name + '0') - - self.assertTrue(called) - del called[:] - - # Chained filters - def filter_a(request, next): - called.append('a') - return next(request) - - def filter_b(request, next): - called.append('b') - return next(request) - - sbs = self.sbs.with_filter(filter_a).with_filter(filter_b) - sbs.create_topic(self.topic_name + '0', None, True) - - self.assertEqual(called, ['b', 'a']) - - sbs.delete_topic(self.topic_name + '0') - - self.assertEqual(called, ['b', 'a', 'b', 'a']) - - @unittest.skip('requires extra setup') - def test_two_identities(self): - # In order to run this test, 2 service bus service identities are - # created using the sbaztool available at: - # http://code.msdn.microsoft.com/windowsazure/Authorization-SBAzTool-6fd76d93 - # - # Use the following commands to create 2 identities and grant access - # rights. - # Replace with the namespace specified in the - # test .json file - # Replace with the key specified in the test .json file - # This only needs to be executed once, after the service bus namespace - # is created. - # - # sbaztool makeid user1 NoHEoD6snlvlhZm7yek9Etxca3l0CYjfc19ICIJZoUg= -n -k - # sbaztool grant Send /path1 user1 -n -k - # sbaztool grant Listen /path1 user1 -n -k - # sbaztool grant Manage /path1 user1 -n -k - # - - # sbaztool makeid user2 Tb6K5qEgstyRBwp86JEjUezKj/a+fnkLFnibfgvxvdg= -n -k - # sbaztool grant Send /path2 user2 -n -k - # sbaztool grant Listen /path2 user2 -n -k - # sbaztool grant Manage /path2 user2 -n -k - # - - sbs1 = ServiceBusService(self.settings.SERVICEBUS_NAME, - 'NoHEoD6snlvlhZm7yek9Etxca3l0CYjfc19ICIJZoUg=', - 'user1') - sbs2 = ServiceBusService(self.settings.SERVICEBUS_NAME, - 'Tb6K5qEgstyRBwp86JEjUezKj/a+fnkLFnibfgvxvdg=', - 'user2') - - queue1_name = 'path1/queue' + str(random.randint(1, 10000000)) - queue2_name = 'path2/queue' + str(random.randint(1, 10000000)) - - try: - # Create queues, success - sbs1.create_queue(queue1_name) - sbs2.create_queue(queue2_name) - - # Receive messages, success - msg = sbs1.receive_queue_message(queue1_name, True, 1) - self.assertIsNone(msg.body) - msg = sbs1.receive_queue_message(queue1_name, True, 1) - self.assertIsNone(msg.body) - msg = sbs2.receive_queue_message(queue2_name, True, 1) - self.assertIsNone(msg.body) - msg = sbs2.receive_queue_message(queue2_name, True, 1) - self.assertIsNone(msg.body) - - # Receive messages, failure - with self.assertRaises(AzureHttpError): - msg = sbs1.receive_queue_message(queue2_name, True, 1) - with self.assertRaises(AzureHttpError): - msg = sbs2.receive_queue_message(queue1_name, True, 1) - finally: - try: - sbs1.delete_queue(queue1_name) - except: - pass - try: - sbs2.delete_queue(queue2_name) - except: - pass - - @record - def test_unicode_create_queue_unicode_name(self): - # Arrange - self.queue_name = self.queue_name + u'啊齄丂狛狜' - - # Act - with self.assertRaises(AzureHttpError): - created = self.sbs.create_queue(self.queue_name) - - # Assert - - @record - def test_send_queue_message_unicode(self): - '''Test for auto-encoding of unicode text''' - - # Arrange - data = u'receive message啊齄丂狛狜' - sent_msg = Message(data) - self._create_queue(self.queue_name) - - # Act - self.sbs.send_queue_message(self.queue_name, sent_msg) - - # Assert - received_msg = self.sbs.receive_queue_message(self.queue_name, False) - self.assertIsNotNone(received_msg) - self.assertEqual(received_msg.body, data.encode('utf-8')) - - @record - def test_unicode_receive_queue_message_unicode_data(self): - # Assert - sent_msg = Message(u'receive message啊齄丂狛狜'.encode('utf-8')) - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, False) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_unicode_receive_queue_message_binary_data(self): - # Arrange - base64_data = 'AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==' - binary_data = base64.b64decode(base64_data) - sent_msg = Message(binary_data) - self._create_queue_and_send_msg(self.queue_name, sent_msg) - - # Act - received_msg = self.sbs.receive_queue_message(self.queue_name, False) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_unicode_create_subscription_unicode_name(self): - # Arrange - self._create_topic(self.topic_name) - - # Act - with self.assertRaises(AzureHttpError): - created = self.sbs.create_subscription( - self.topic_name, u'MySubscription啊齄丂狛狜') - - # Assert - - @record - def test_unicode_create_rule_unicode_name(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - with self.assertRaises(AzureHttpError): - created = self.sbs.create_rule( - self.topic_name, 'MySubscription', 'MyRule啊齄丂狛狜') - - # Assert - - @record - def test_send_topic_message_unicode(self): - '''Test for auto-encoding of unicode text.''' - # Arrange - data = u'receive message啊齄丂狛狜' - sent_msg = Message(data) - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - - # Act - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Assert - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - self.assertIsNotNone(received_msg) - self.assertEqual(received_msg.body, data.encode('utf-8')) - - @record - def test_unicode_receive_subscription_message_unicode_data(self): - # Arrange - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(u'subscription message啊齄丂狛狜'.encode('utf-8')) - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - - @record - def test_unicode_receive_subscription_message_binary_data(self): - # Arrange - base64_data = 'AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==' - binary_data = base64.b64decode(base64_data) - self._create_topic_and_subscription(self.topic_name, 'MySubscription') - sent_msg = Message(binary_data) - self.sbs.send_topic_message(self.topic_name, sent_msg) - - # Act - received_msg = self.sbs.receive_subscription_message( - self.topic_name, 'MySubscription', False) - - # Assert - self.assertIsNotNone(received_msg) - self.assertEqual(sent_msg.body, received_msg.body) - -#------------------------------------------------------------------------------ -if __name__ == '__main__': - unittest.main() diff --git a/sdk/servicebus/azure-servicebus/tests/mgmt_tests/recordings/test_mgmt_rules.test_mgmt_rule_create.yaml b/sdk/servicebus/azure-servicebus/tests/mgmt_tests/recordings/test_mgmt_rules.test_mgmt_rule_create.yaml index 3e700ec52c06..0ddb9fb730ca 100644 --- a/sdk/servicebus/azure-servicebus/tests/mgmt_tests/recordings/test_mgmt_rules.test_mgmt_rule_create.yaml +++ b/sdk/servicebus/azure-servicebus/tests/mgmt_tests/recordings/test_mgmt_rules.test_mgmt_rule_create.yaml @@ -9,18 +9,18 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: GET uri: https://servicebustestsbname.servicebus.windows.net/$Resources/topics?$skip=0&$top=100&api-version=2017-04 response: body: - string: Topicshttps://servicebustestshi5frbomp.servicebus.windows.net/$Resources/topics?$skip=0&$top=100&api-version=2017-042020-07-02T05:58:36Z + string: Topicshttps://servicebustestzca2g5qsmq.servicebus.windows.net/$Resources/topics?$skip=0&$top=100&api-version=2017-042020-07-17T02:22:21Z headers: content-type: - application/atom+xml;type=feed;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:36 GMT + - Fri, 17 Jul 2020 02:22:20 GMT server: - Microsoft-HTTPAPI/2.0 transfer-encoding: @@ -45,21 +45,21 @@ interactions: Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf?api-version=2017-04 response: body: - string: https://servicebustestshi5frbomp.servicebus.windows.net/topic_testaddf?api-version=2017-04topic_testaddf2020-07-02T05:58:37Z2020-07-02T05:58:37Zservicebustestshi5frbomphttps://servicebustestzca2g5qsmq.servicebus.windows.net/topic_testaddf?api-version=2017-04topic_testaddf2020-07-17T02:22:21Z2020-07-17T02:22:22Zservicebustestzca2g5qsmqP10675199DT2H48M5.4775807S1024falsePT10Mtrue0falsefalseActive2020-07-02T05:58:37.417Z2020-07-02T05:58:37.447ZtrueP10675199DT2H48M5.4775807SfalseAvailablefalsefalse + xmlns:i="http://www.w3.org/2001/XMLSchema-instance">P10675199DT2H48M5.4775807S1024falsePT10Mtrue0falsefalseActive2020-07-17T02:22:21.953Z2020-07-17T02:22:22.04ZtrueP10675199DT2H48M5.4775807SfalseAvailablefalsefalse headers: content-type: - application/atom+xml;type=entry;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:37 GMT + - Fri, 17 Jul 2020 02:22:21 GMT server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -86,23 +86,23 @@ interactions: Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04 response: body: - string: https://servicebustestshi5frbomp.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04sub_testkkk2020-07-02T05:58:37Z2020-07-02T05:58:37Zhttps://servicebustestzca2g5qsmq.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04sub_testkkk2020-07-17T02:22:22Z2020-07-17T02:22:22ZPT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010trueActive2020-07-02T05:58:37.9708001Z2020-07-02T05:58:37.9708001Z0001-01-01T00:00:00P10675199DT2H48M5.4775807SAvailable + xmlns:i="http://www.w3.org/2001/XMLSchema-instance">PT1MfalseP10675199DT2H48M5.4775807Sfalsetrue010trueActive2020-07-17T02:22:22.6633698Z2020-07-17T02:22:22.6633698Z0001-01-01T00:00:00P10675199DT2H48M5.4775807SAvailable headers: content-type: - application/atom+xml;type=entry;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:37 GMT + - Fri, 17 Jul 2020 02:22:22 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -117,8 +117,15 @@ interactions: testcidSET Priority = ''low''test_rule_1' + xsi:type="CorrelationFilter">testcidkey_stringstr1key_int2key_long2147483650key_boolfalsekey_datetime2020-07-05T11:12:13key_durationP1DT2H3MSET Priority = @param20@param2020-07-05T11:12:13test_rule_1' headers: Accept: - application/xml @@ -127,28 +134,35 @@ interactions: Connection: - keep-alive Content-Length: - - '518' + - '1765' Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04 response: body: - string: https://servicebustestshi5frbomp.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04test_rule_12020-07-02T05:58:38Z2020-07-02T05:58:38Zhttps://servicebustestzca2g5qsmq.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04test_rule_12020-07-17T02:22:23Z2020-07-17T02:22:23ZtestcidSET Priority = 'low'202020-07-02T05:58:38.1426348Ztest_rule_1 + xmlns:i="http://www.w3.org/2001/XMLSchema-instance">testcidkey_stringstr1key_int2key_long2147483650key_boolfalsekey_datetime2020-07-05T11:12:13key_durationP1DT2H3MSET Priority = @param20@param2020-07-05T11:12:132020-07-17T02:22:23.0245154Ztest_rule_1 headers: content-type: - application/atom+xml;type=entry;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:38 GMT + - Fri, 17 Jul 2020 02:22:22 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -168,24 +182,31 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: GET uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?enrich=false&api-version=2017-04 response: body: - string: sb://servicebustestshi5frbomp.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?enrich=false&api-version=2017-04test_rule_12020-07-02T05:58:38Z2020-07-02T05:58:38Zsb://servicebustestzca2g5qsmq.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?enrich=false&api-version=2017-04test_rule_12020-07-17T02:22:23Z2020-07-17T02:22:23ZtestcidSET Priority = 'low'202020-07-02T05:58:38.1487771Ztest_rule_1 + xmlns:i="http://www.w3.org/2001/XMLSchema-instance">testcidkey_stringstr1key_int2key_long2147483650key_boolfalsekey_datetime2020-07-05T11:12:13key_durationP1DT2H3MSET Priority = @param20@param2020-07-05T11:12:132020-07-17T02:22:23.0289508Ztest_rule_1 headers: content-type: - application/atom+xml;type=entry;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:38 GMT + - Fri, 17 Jul 2020 02:22:22 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -200,7 +221,8 @@ interactions: Priority = ''low''Priority = @param120@param1str1test_rule_2' headers: Accept: @@ -210,29 +232,30 @@ interactions: Connection: - keep-alive Content-Length: - - '463' + - '690' Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04 response: body: - string: https://servicebustestshi5frbomp.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04test_rule_22020-07-02T05:58:38Z2020-07-02T05:58:38Zhttps://servicebustestzca2g5qsmq.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04test_rule_22020-07-17T02:22:23Z2020-07-17T02:22:23ZPriority - = 'low'202020-07-02T05:58:38.3926736Ztest_rule_2 + = @param120@param1str12020-07-17T02:22:23.2276052Ztest_rule_2 headers: content-type: - application/atom+xml;type=entry;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:38 GMT + - Fri, 17 Jul 2020 02:22:22 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -252,25 +275,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: GET uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?enrich=false&api-version=2017-04 response: body: - string: sb://servicebustestshi5frbomp.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?enrich=false&api-version=2017-04test_rule_22020-07-02T05:58:38Z2020-07-02T05:58:38Zsb://servicebustestzca2g5qsmq.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?enrich=false&api-version=2017-04test_rule_22020-07-17T02:22:23Z2020-07-17T02:22:23ZPriority - = 'low'202020-07-02T05:58:38.3837741Ztest_rule_2 + = @param120@param1str12020-07-17T02:22:23.2476778Ztest_rule_2 headers: content-type: - application/atom+xml;type=entry;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:38 GMT + - Fri, 17 Jul 2020 02:22:22 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -285,8 +309,8 @@ interactions: 1 = 1test_rule_3' + xsi:type="TrueFilter">1=120truetest_rule_3' headers: Accept: - application/xml @@ -295,28 +319,28 @@ interactions: Connection: - keep-alive Content-Length: - - '453' + - '545' Content-Type: - application/atom+xml User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: PUT uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04 response: body: - string: https://servicebustestshi5frbomp.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04test_rule_32020-07-02T05:58:38Z2020-07-02T05:58:38Zhttps://servicebustestzca2g5qsmq.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04test_rule_32020-07-17T02:22:23Z2020-07-17T02:22:23Z1=1202020-07-02T05:58:38.7832611Ztest_rule_3 + i:type="EmptyRuleAction"/>2020-07-17T02:22:23.4776391Ztest_rule_3 headers: content-type: - application/atom+xml;type=entry;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:38 GMT + - Fri, 17 Jul 2020 02:22:22 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -336,24 +360,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: GET uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?enrich=false&api-version=2017-04 response: body: - string: sb://servicebustestshi5frbomp.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?enrich=false&api-version=2017-04test_rule_32020-07-02T05:58:38Z2020-07-02T05:58:38Zsb://servicebustestzca2g5qsmq.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?enrich=false&api-version=2017-04test_rule_32020-07-17T02:22:23Z2020-07-17T02:22:23Z1=1202020-07-02T05:58:38.7744248Ztest_rule_3 + i:type="EmptyRuleAction"/>2020-07-17T02:22:23.4820344Ztest_rule_3 headers: content-type: - application/atom+xml;type=entry;charset=utf-8 date: - - Thu, 02 Jul 2020 05:58:38 GMT + - Fri, 17 Jul 2020 02:22:23 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -375,7 +399,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_1?api-version=2017-04 response: @@ -385,9 +409,9 @@ interactions: content-length: - '0' date: - - Thu, 02 Jul 2020 05:58:38 GMT + - Fri, 17 Jul 2020 02:22:23 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -407,7 +431,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_2?api-version=2017-04 response: @@ -417,9 +441,9 @@ interactions: content-length: - '0' date: - - Thu, 02 Jul 2020 05:58:38 GMT + - Fri, 17 Jul 2020 02:22:23 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -439,7 +463,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk/rules/test_rule_3?api-version=2017-04 response: @@ -449,9 +473,9 @@ interactions: content-length: - '0' date: - - Thu, 02 Jul 2020 05:58:39 GMT + - Fri, 17 Jul 2020 02:22:23 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -471,7 +495,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf/subscriptions/sub_testkkk?api-version=2017-04 response: @@ -481,9 +505,9 @@ interactions: content-length: - '0' date: - - Thu, 02 Jul 2020 05:58:39 GMT + - Fri, 17 Jul 2020 02:22:23 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -503,7 +527,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.18362-SP0) + - azsdk-python-servicebusmanagementclient/2017-04 Python/3.7.7 (Windows-10-10.0.20161-SP0) method: DELETE uri: https://servicebustestsbname.servicebus.windows.net/topic_testaddf?api-version=2017-04 response: @@ -513,9 +537,9 @@ interactions: content-length: - '0' date: - - Thu, 02 Jul 2020 05:58:39 GMT + - Fri, 17 Jul 2020 02:22:24 GMT etag: - - '637292663174470000' + - '637305493420400000' server: - Microsoft-HTTPAPI/2.0 strict-transport-security: diff --git a/sdk/servicebus/azure-servicebus/tests/mgmt_tests/test_mgmt_rules.py b/sdk/servicebus/azure-servicebus/tests/mgmt_tests/test_mgmt_rules.py index 2c982cdfa768..9acc0e3f894e 100644 --- a/sdk/servicebus/azure-servicebus/tests/mgmt_tests/test_mgmt_rules.py +++ b/sdk/servicebus/azure-servicebus/tests/mgmt_tests/test_mgmt_rules.py @@ -5,9 +5,11 @@ #-------------------------------------------------------------------------- import logging import pytest +from datetime import datetime, timedelta import msrest from azure.servicebus.management import ServiceBusManagementClient, RuleDescription, CorrelationRuleFilter, SqlRuleFilter, TrueRuleFilter, FalseRuleFilter, SqlRuleAction +from azure.servicebus.management._constants import INT32_MAX_VALUE from utilities import get_logger from azure.core.exceptions import HttpResponseError, ResourceExistsError @@ -33,11 +35,22 @@ def test_mgmt_rule_create(self, servicebus_namespace_connection_string, **kwargs rule_name_2 = 'test_rule_2' rule_name_3 = 'test_rule_3' - correlation_fitler = CorrelationRuleFilter(correlation_id='testcid') - sql_rule_action = SqlRuleAction(sql_expression="SET Priority = 'low'") + correlation_fitler = CorrelationRuleFilter(correlation_id='testcid', properties={ + "key_string": "str1", + "key_int": 2, + "key_long": INT32_MAX_VALUE + 3, + "key_bool": False, + "key_datetime": datetime(2020, 7, 5, 11, 12, 13), + "key_duration": timedelta(days=1, hours=2, minutes=3) + }) + sql_rule_action = SqlRuleAction(sql_expression="SET Priority = @param", parameters={ + "@param": datetime(2020, 7, 5, 11, 12, 13), + }) rule_1 = RuleDescription(name=rule_name_1, filter=correlation_fitler, action=sql_rule_action) - sql_filter = SqlRuleFilter("Priority = 'low'") + sql_filter = SqlRuleFilter("Priority = @param1", parameters={ + "@param1": "str1", + }) rule_2 = RuleDescription(name=rule_name_2, filter=sql_filter) bool_filter = TrueRuleFilter() @@ -49,25 +62,51 @@ def test_mgmt_rule_create(self, servicebus_namespace_connection_string, **kwargs mgmt_service.create_rule(topic_name, subscription_name, rule_1) rule_desc = mgmt_service.get_rule(topic_name, subscription_name, rule_name_1) + rule_properties = rule_desc.filter.properties assert type(rule_desc.filter) == CorrelationRuleFilter assert rule_desc.filter.correlation_id == 'testcid' - assert rule_desc.action.sql_expression == "SET Priority = 'low'" + assert rule_desc.action.sql_expression == "SET Priority = @param" + assert rule_desc.action.parameters["@param"] == datetime(2020, 7, 5, 11, 12, 13) + assert rule_properties["key_string"] == "str1" + assert rule_properties["key_int"] == 2 + assert rule_properties["key_long"] == INT32_MAX_VALUE + 3 + assert rule_properties["key_bool"] is False + assert rule_properties["key_datetime"] == datetime(2020, 7, 5, 11, 12, 13) + assert rule_properties["key_duration"] == timedelta(days=1, hours=2, minutes=3) + mgmt_service.create_rule(topic_name, subscription_name, rule_2) rule_desc = mgmt_service.get_rule(topic_name, subscription_name, rule_name_2) assert type(rule_desc.filter) == SqlRuleFilter - assert rule_desc.filter.sql_expression == "Priority = 'low'" + assert rule_desc.filter.sql_expression == "Priority = @param1" + assert rule_desc.filter.parameters["@param1"] == "str1" mgmt_service.create_rule(topic_name, subscription_name, rule_3) rule_desc = mgmt_service.get_rule(topic_name, subscription_name, rule_name_3) assert type(rule_desc.filter) == TrueRuleFilter finally: - mgmt_service.delete_rule(topic_name, subscription_name, rule_name_1) - mgmt_service.delete_rule(topic_name, subscription_name, rule_name_2) - mgmt_service.delete_rule(topic_name, subscription_name, rule_name_3) - mgmt_service.delete_subscription(topic_name, subscription_name) - mgmt_service.delete_topic(topic_name) + try: + mgmt_service.delete_rule(topic_name, subscription_name, rule_name_1) + except: + pass + try: + mgmt_service.delete_rule(topic_name, subscription_name, rule_name_2) + except: + pass + try: + mgmt_service.delete_rule(topic_name, subscription_name, rule_name_3) + except: + pass + try: + mgmt_service.delete_subscription(topic_name, subscription_name) + except: + pass + try: + mgmt_service.delete_topic(topic_name) + except: + pass + @CachedResourceGroupPreparer(name_prefix='servicebustest') @CachedServiceBusNamespacePreparer(name_prefix='servicebustest') diff --git a/sdk/servicebus/azure-servicebus/tests/mocks.py b/sdk/servicebus/azure-servicebus/tests/mocks.py new file mode 100644 index 000000000000..4bfea86dbfb6 --- /dev/null +++ b/sdk/servicebus/azure-servicebus/tests/mocks.py @@ -0,0 +1,32 @@ +from datetime import timedelta + +from azure.servicebus._common.utils import utc_now + +class MockReceiver: + def __init__(self): + self._running = True + +class MockReceivedMessage: + def __init__(self, prevent_renew_lock=False, exception_on_renew_lock=False): + self._lock_duration = 2 + + self._received_timestamp_utc = utc_now() + self.locked_until_utc = self._received_timestamp_utc + timedelta(seconds=self._lock_duration) + self._settled = False + self._receiver = MockReceiver() + + self._prevent_renew_lock = prevent_renew_lock + self._exception_on_renew_lock = exception_on_renew_lock + + + def renew_lock(self): + if self._exception_on_renew_lock: + raise Exception("Generated exception via MockReceivedMessage exception_on_renew_lock") + if not self._prevent_renew_lock: + self.locked_until_utc = self.locked_until_utc + timedelta(seconds=self._lock_duration) + + @property + def _lock_expired(self): + if self.locked_until_utc and self.locked_until_utc <= utc_now(): + return True + return False \ No newline at end of file diff --git a/sdk/servicebus/azure-servicebus/tests/stress_tests/stress_test_base.py b/sdk/servicebus/azure-servicebus/tests/stress_tests/stress_test_base.py index ec717e7ec06e..781e24248792 100644 --- a/sdk/servicebus/azure-servicebus/tests/stress_tests/stress_test_base.py +++ b/sdk/servicebus/azure-servicebus/tests/stress_tests/stress_test_base.py @@ -55,7 +55,9 @@ def __init__(self, message_size = 10, idle_timeout = 10, send_delay = .01, - receive_delay = 0): + receive_delay = 0, + should_complete_messages = True, + max_batch_size = 1): self.senders = senders self.receivers = receivers self.duration=duration @@ -65,6 +67,8 @@ def __init__(self, self.idle_timeout = idle_timeout self.send_delay = send_delay self.receive_delay = receive_delay + self.should_complete_messages = should_complete_messages + self.max_batch_size = max_batch_size # Because of pickle we need to create a state object and not just pass around ourselves. # If we ever require multiple runs of this one after another, just make Run() reset this. @@ -144,14 +148,15 @@ def _Receive(self, receiver, end_time): with receiver: while end_time > datetime.utcnow(): if self.receive_type == ReceiveType.pull: - batch = receiver.receive_messages() + batch = receiver.receive_messages(max_batch_size=self.max_batch_size) elif self.receive_type == ReceiveType.push: batch = receiver for message in batch: self.OnReceive(self._state, message) try: - message.complete() + if self.should_complete_messages: + message.complete() except MessageAlreadySettled: # It may have been settled in the plugin callback. pass self._state.total_received += 1 diff --git a/sdk/servicebus/azure-servicebus/tests/stress_tests/test_stress_queues.py b/sdk/servicebus/azure-servicebus/tests/stress_tests/test_stress_queues.py index befd1e7d89d8..54200c4773ae 100644 --- a/sdk/servicebus/azure-servicebus/tests/stress_tests/test_stress_queues.py +++ b/sdk/servicebus/azure-servicebus/tests/stress_tests/test_stress_queues.py @@ -111,6 +111,46 @@ def test_stress_queue_receive_and_delete(self, servicebus_namespace_connection_s receivers = [sb_client.get_queue_receiver(servicebus_queue.name, mode=ReceiveSettleMode.ReceiveAndDelete)], duration=timedelta(seconds=60)) + result = stress_test.Run() + assert(result.total_sent > 0) + assert(result.total_received > 0) + + + @pytest.mark.liveTest + @pytest.mark.live_test_only + @CachedResourceGroupPreparer(name_prefix='servicebustest') + @ServiceBusNamespacePreparer(name_prefix='servicebustest') + @ServiceBusQueuePreparer(name_prefix='servicebustest') + def test_stress_queue_unsettled_messages(self, servicebus_namespace_connection_string, servicebus_queue): + sb_client = ServiceBusClient.from_connection_string( + servicebus_namespace_connection_string, debug=False) + + stress_test = StressTestRunner(senders = [sb_client.get_queue_sender(servicebus_queue.name)], + receivers = [sb_client.get_queue_receiver(servicebus_queue.name)], + duration = timedelta(seconds=350), + should_complete_messages = False) + + result = stress_test.Run() + # This test is prompted by reports of an issue where enough unsettled messages saturate a service-side cache + # and prevent further receipt. + assert(result.total_sent > 2500) + assert(result.total_received > 2500) + + + @pytest.mark.liveTest + @pytest.mark.live_test_only + @CachedResourceGroupPreparer(name_prefix='servicebustest') + @ServiceBusNamespacePreparer(name_prefix='servicebustest') + @ServiceBusQueuePreparer(name_prefix='servicebustest') + def test_stress_queue_receive_large_batch_size(self, servicebus_namespace_connection_string, servicebus_queue): + sb_client = ServiceBusClient.from_connection_string( + servicebus_namespace_connection_string, debug=False) + + stress_test = StressTestRunner(senders = [sb_client.get_queue_sender(servicebus_queue.name)], + receivers = [sb_client.get_queue_receiver(servicebus_queue.name, prefetch=50)], + duration = timedelta(seconds=60), + max_batch_size = 50) + result = stress_test.Run() assert(result.total_sent > 0) assert(result.total_received > 0) \ No newline at end of file diff --git a/sdk/servicebus/azure-servicebus/tests/test_queues.py b/sdk/servicebus/azure-servicebus/tests/test_queues.py index bdcecc3ea4b2..cf610889db57 100644 --- a/sdk/servicebus/azure-servicebus/tests/test_queues.py +++ b/sdk/servicebus/azure-servicebus/tests/test_queues.py @@ -11,10 +11,18 @@ import time import uuid from datetime import datetime, timedelta +import calendar +import uamqp from azure.servicebus import ServiceBusClient, AutoLockRenew, TransportType from azure.servicebus._common.message import Message, PeekMessage, ReceivedMessage, BatchMessage -from azure.servicebus._common.constants import ReceiveSettleMode, _X_OPT_LOCK_TOKEN +from azure.servicebus._common.constants import ( + ReceiveSettleMode, + _X_OPT_LOCK_TOKEN, + _X_OPT_PARTITION_KEY, + _X_OPT_VIA_PARTITION_KEY, + _X_OPT_SCHEDULED_ENQUEUE_TIME +) from azure.servicebus._common.utils import utc_now from azure.servicebus.exceptions import ( ServiceBusConnectionError, @@ -29,6 +37,7 @@ from devtools_testutils import AzureMgmtTestCase, CachedResourceGroupPreparer from servicebus_preparer import CachedServiceBusNamespacePreparer, ServiceBusQueuePreparer, CachedServiceBusQueuePreparer from utilities import get_logger, print_message, sleep_until_expired +from mocks import MockReceivedMessage _logger = get_logger(logging.DEBUG) @@ -82,7 +91,7 @@ def test_github_issue_6178(self, servicebus_namespace_connection_string, service _logger.debug(message) _logger.debug(message.sequence_number) _logger.debug(message.enqueued_time_utc) - _logger.debug(message.expired) + _logger.debug(message._lock_expired) message.complete() time.sleep(40) @@ -99,16 +108,41 @@ def test_queue_by_queue_client_conn_str_receive_handler_peeklock(self, servicebu with sb_client.get_queue_sender(servicebus_queue.name) as sender: for i in range(10): message = Message("Handler message no. {}".format(i)) - message.enqueue_sequence_number = i + message.properties = {'key': 'value'} + message.label = 'label' + message.content_type = 'application/text' + message.correlation_id = 'cid' + message.message_id = str(i) + message.partition_key = 'pk' + message.via_partition_key = 'via_pk' + message.to = 'to' + message.reply_to = 'reply_to' sender.send_messages(message) receiver = sb_client.get_queue_receiver(servicebus_queue.name, idle_timeout=5) count = 0 for message in receiver: print_message(_logger, message) + assert message.delivery_count == 0 + assert message.properties + assert message.properties[b'key'] == b'value' + assert message.label == 'label' + assert message.content_type == 'application/text' + assert message.correlation_id == 'cid' + assert message.message_id == str(count) + assert message.partition_key == 'pk' + assert message.via_partition_key == 'via_pk' + assert message.to == 'to' + assert message.reply_to == 'reply_to' + assert message.sequence_number + assert message.enqueued_time_utc assert message.message.delivery_tag is not None assert message.lock_token == message.message.delivery_annotations.get(_X_OPT_LOCK_TOKEN) assert message.lock_token == uuid.UUID(bytes_le=message.message.delivery_tag) + assert not message.scheduled_enqueue_time_utc + assert not message.time_to_live + assert not message.session_id + assert not message.reply_to_session_id count += 1 message.complete() @@ -127,6 +161,15 @@ def test_queue_by_queue_client_send_multiple_messages(self, servicebus_namespace messages = [] for i in range(10): message = Message("Handler message no. {}".format(i)) + message.partition_key = 'pkey' + message.via_partition_key = 'vpkey' + message.time_to_live = timedelta(seconds=60) + message.scheduled_enqueue_time_utc = utc_now() + timedelta(seconds=60) + message.partition_key = None + message.via_partition_key = None + message.time_to_live = None + message.scheduled_enqueue_time_utc = None + message.session_id = None messages.append(message) sender.send_messages(messages) @@ -134,6 +177,19 @@ def test_queue_by_queue_client_send_multiple_messages(self, servicebus_namespace count = 0 for message in receiver: print_message(_logger, message) + assert message.delivery_count == 0 + assert not message.properties + assert not message.label + assert not message.content_type + assert not message.correlation_id + assert not message.partition_key + assert not message.via_partition_key + assert not message.to + assert not message.reply_to + assert not message.scheduled_enqueue_time_utc + assert not message.time_to_live + assert not message.session_id + assert not message.reply_to_session_id count += 1 message.complete() @@ -152,14 +208,25 @@ def test_queue_by_queue_client_conn_str_receive_handler_receiveanddelete(self, s with sb_client.get_queue_sender(servicebus_queue.name) as sender: for i in range(10): message = Message("Handler message no. {}".format(i)) - message.enqueue_sequence_number = i sender.send_messages(message) messages = [] with sb_client.get_queue_receiver(servicebus_queue.name, mode=ReceiveSettleMode.ReceiveAndDelete, - idle_timeout=5) as receiver: + idle_timeout=8) as receiver: for message in receiver: + assert not message.properties + assert not message.label + assert not message.content_type + assert not message.correlation_id + assert not message.partition_key + assert not message.via_partition_key + assert not message.to + assert not message.reply_to + assert not message.scheduled_enqueue_time_utc + assert not message.time_to_live + assert not message.session_id + assert not message.reply_to_session_id messages.append(message) with pytest.raises(MessageAlreadySettled): message.complete() @@ -269,11 +336,11 @@ def test_queue_by_servicebus_conn_str_client_iter_messages_with_abandon(self, se count = 0 for message in receiver: print_message(_logger, message) - if not message.header.delivery_count: + if not message.delivery_count: count += 1 message.abandon() else: - assert message.header.delivery_count == 1 + assert message.delivery_count == 1 message.complete() assert count == 10 @@ -446,8 +513,10 @@ def test_queue_by_servicebus_client_iter_messages_with_retrieve_deferred_receive for message in receiver: count += 1 print_message(_logger, message) - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' message.complete() assert count == 10 @@ -570,8 +639,10 @@ def test_queue_by_servicebus_client_receive_batch_with_deadletter(self, serviceb for message in dl_receiver: message.complete() count += 1 - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' assert count == 10 @pytest.mark.liveTest @@ -614,8 +685,10 @@ def test_queue_by_servicebus_client_receive_batch_with_retrieve_deadletter(self, count = 0 for message in dl_receiver: print_message(_logger, message) - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' message.complete() count += 1 assert count == 10 @@ -672,23 +745,65 @@ def test_queue_by_servicebus_client_browse_messages_with_receiver(self, serviceb with ServiceBusClient.from_connection_string( servicebus_namespace_connection_string, logging_enable=False) as sb_client: - - with sb_client.get_queue_receiver(servicebus_queue.name, - idle_timeout=5, - mode=ReceiveSettleMode.PeekLock) as receiver: - with sb_client.get_queue_sender(servicebus_queue.name) as sender: - for i in range(5): - message = Message("Test message no. {}".format(i)) - sender.send_messages(message) + + receiver = sb_client.get_queue_receiver(servicebus_queue.name, + idle_timeout=5, + mode=ReceiveSettleMode.PeekLock) + sender = sb_client.get_queue_sender(servicebus_queue.name) + with receiver, sender: + for i in range(5): + message = Message( + body="Test message", + properties={'key': 'value'}, + label='label', + content_type='application/text', + correlation_id='cid', + message_id='mid', + partition_key='pk', + via_partition_key='via_pk', + to='to', + reply_to='reply_to', + time_to_live=timedelta(seconds=60) + ) + sender.send_messages(message) messages = receiver.peek_messages(5) assert len(messages) > 0 assert all(isinstance(m, PeekMessage) for m in messages) for message in messages: print_message(_logger, message) + assert b''.join(message.body) == b'Test message' + assert message.properties[b'key'] == b'value' + assert message.label == 'label' + assert message.content_type == 'application/text' + assert message.correlation_id == 'cid' + assert message.message_id == 'mid' + assert message.partition_key == 'pk' + assert message.via_partition_key == 'via_pk' + assert message.to == 'to' + assert message.reply_to == 'reply_to' + assert message.time_to_live == timedelta(seconds=60) with pytest.raises(AttributeError): message.complete() - + + sender.send_messages(message) + + cnt = 0 + for message in receiver: + assert b''.join(message.body) == b'Test message' + assert message.properties[b'key'] == b'value' + assert message.label == 'label' + assert message.content_type == 'application/text' + assert message.correlation_id == 'cid' + assert message.message_id == 'mid' + assert message.partition_key == 'pk' + assert message.via_partition_key == 'via_pk' + assert message.to == 'to' + assert message.reply_to == 'reply_to' + assert message.time_to_live == timedelta(seconds=60) + message.complete() + cnt += 1 + assert cnt == 10 @pytest.mark.liveTest @pytest.mark.live_test_only @@ -757,7 +872,7 @@ def test_queue_by_servicebus_client_renew_message_locks(self, servicebus_namespa try: for m in messages: - assert not m.expired + assert not m._lock_expired time.sleep(5) initial_expiry = m.locked_until_utc m.renew_lock() @@ -794,33 +909,33 @@ def test_queue_by_queue_client_conn_str_receive_handler_with_autolockrenew(self, for message in receiver: if not messages: messages.append(message) - assert not message.expired + assert not message._lock_expired renewer.register(message, timeout=60) print("Registered lock renew thread", message.locked_until_utc, utc_now()) time.sleep(60) print("Finished first sleep", message.locked_until_utc) - assert not message.expired + assert not message._lock_expired time.sleep(15) #generate autolockrenewtimeout error by going one iteration past. sleep_until_expired(message) print("Finished second sleep", message.locked_until_utc, utc_now()) - assert message.expired + assert message._lock_expired try: message.complete() raise AssertionError("Didn't raise MessageLockExpired") except MessageLockExpired as e: assert isinstance(e.inner_exception, AutoLockRenewTimeout) else: - if message.expired: + if message._lock_expired: print("Remaining messages", message.locked_until_utc, utc_now()) - assert message.expired + assert message._lock_expired with pytest.raises(MessageLockExpired): message.complete() else: - assert message.header.delivery_count >= 1 + assert message.delivery_count >= 1 print("Remaining messages", message.locked_until_utc, utc_now()) messages.append(message) message.complete() - renewer.shutdown() + renewer.close() assert len(messages) == 11 @pytest.mark.liveTest @@ -871,7 +986,7 @@ def test_queue_message_duplicate_detection(self, servicebus_namespace_connection with sb_client.get_queue_sender(servicebus_queue.name) as sender: for i in range(5): message = Message(str(i)) - message.properties.message_id = message_id + message.message_id = message_id sender.send_messages(message) with sb_client.get_queue_receiver(servicebus_queue.name, @@ -879,7 +994,7 @@ def test_queue_message_duplicate_detection(self, servicebus_namespace_connection count = 0 for message in receiver: print_message(_logger, message) - assert message.properties.message_id == message_id + assert message.message_id == message_id message.complete() count += 1 assert count == 1 @@ -927,7 +1042,7 @@ def test_queue_message_expiry(self, servicebus_namespace_connection_string, serv messages = receiver.receive_messages(max_wait_time=10) assert len(messages) == 1 time.sleep((messages[0].locked_until_utc - utc_now()).total_seconds()+1) - assert messages[0].expired + assert messages[0]._lock_expired with pytest.raises(MessageLockExpired): messages[0].complete() with pytest.raises(MessageLockExpired): @@ -937,7 +1052,7 @@ def test_queue_message_expiry(self, servicebus_namespace_connection_string, serv messages = receiver.receive_messages(max_wait_time=30) assert len(messages) == 1 print_message(_logger, messages[0]) - assert messages[0].header.delivery_count > 0 + assert messages[0].delivery_count > 0 messages[0].complete() @@ -964,7 +1079,7 @@ def test_queue_message_lock_renew(self, servicebus_namespace_connection_string, time.sleep(15) messages[0].renew_lock() time.sleep(15) - assert not messages[0].expired + assert not messages[0]._lock_expired messages[0].complete() with sb_client.get_queue_receiver(servicebus_queue.name) as receiver: @@ -1024,9 +1139,20 @@ def test_queue_message_batch(self, servicebus_namespace_connection_string, servi def message_content(): for i in range(5): - yield Message("Message no. {}".format(i)) - - + message = Message("Message no. {}".format(i)) + message.properties = {'key': 'value'} + message.label = 'label' + message.content_type = 'application/text' + message.correlation_id = 'cid' + message.message_id = str(i) + message.partition_key = 'pk' + message.via_partition_key = 'via_pk' + message.to = 'to' + message.reply_to = 'reply_to' + message.time_to_live = timedelta(seconds=60) + + yield message + with sb_client.get_queue_sender(servicebus_queue.name) as sender: message = BatchMessage() for each in message_content(): @@ -1041,9 +1167,25 @@ def message_content(): messages.extend(recv) assert len(messages) == 5 - for m in messages: - print_message(_logger, m) - m.complete() + count = 0 + for message in messages: + assert message.delivery_count == 0 + assert message.properties + assert message.properties[b'key'] == b'value' + assert message.label == 'label' + assert message.content_type == 'application/text' + assert message.correlation_id == 'cid' + assert message.message_id == str(count) + assert message.partition_key == 'pk' + assert message.via_partition_key == 'via_pk' + assert message.to == 'to' + assert message.reply_to == 'reply_to' + assert message.sequence_number + assert message.enqueued_time_utc + assert message.expires_at_utc == (message.enqueued_time_utc + timedelta(seconds=60)) + print_message(_logger, message) + message.complete() + count += 1 @pytest.mark.liveTest @@ -1062,7 +1204,7 @@ def test_queue_schedule_message(self, servicebus_namespace_connection_string, se content = str(uuid.uuid4()) message_id = uuid.uuid4() message = Message(content) - message.properties.message_id = message_id + message.message_id = message_id message.scheduled_enqueue_time_utc = enqueue_time sender.send_messages(message) @@ -1071,7 +1213,7 @@ def test_queue_schedule_message(self, servicebus_namespace_connection_string, se try: data = str(messages[0]) assert data == content - assert messages[0].properties.message_id == message_id + assert messages[0].message_id == message_id assert messages[0].scheduled_enqueue_time_utc == enqueue_time assert messages[0].scheduled_enqueue_time_utc == messages[0].enqueued_time_utc.replace(microsecond=0) assert len(messages) == 1 @@ -1093,18 +1235,36 @@ def test_queue_schedule_multiple_messages(self, servicebus_namespace_connection_ servicebus_namespace_connection_string, logging_enable=False) as sb_client: enqueue_time = (utc_now() + timedelta(minutes=2)).replace(microsecond=0) - with sb_client.get_queue_receiver(servicebus_queue.name, - prefetch=20) as receiver: - with sb_client.get_queue_sender(servicebus_queue.name) as sender: - content = str(uuid.uuid4()) - message_id_a = uuid.uuid4() - message_a = Message(content) - message_a.properties.message_id = message_id_a - message_id_b = uuid.uuid4() - message_b = Message(content) - message_b.properties.message_id = message_id_b - tokens = sender.schedule_messages([message_a, message_b], enqueue_time) - assert len(tokens) == 2 + sender = sb_client.get_queue_sender(servicebus_queue.name) + receiver = sb_client.get_queue_receiver(servicebus_queue.name, prefetch=20) + + with sender, receiver: + content = str(uuid.uuid4()) + message_id_a = uuid.uuid4() + message_a = Message(content) + message_a.message_id = message_id_a + message_id_b = uuid.uuid4() + message_b = Message(content) + message_b.message_id = message_id_b + message_arry = [message_a, message_b] + for message in message_arry: + message.properties = {'key': 'value'} + message.label = 'label' + message.content_type = 'application/text' + message.correlation_id = 'cid' + message.partition_key = 'pk' + message.via_partition_key = 'via_pk' + message.to = 'to' + message.reply_to = 'reply_to' + + sender.send_messages(message_arry) + + received_messages = receiver.receive_messages(max_batch_size=2, max_wait_time=5) + for message in received_messages: + message.complete() + + tokens = sender.schedule_messages(received_messages, enqueue_time) + assert len(tokens) == 2 messages = receiver.receive_messages(max_wait_time=120) messages.extend(receiver.receive_messages(max_wait_time=5)) @@ -1112,9 +1272,22 @@ def test_queue_schedule_multiple_messages(self, servicebus_namespace_connection_ try: data = str(messages[0]) assert data == content - assert messages[0].properties.message_id in (message_id_a, message_id_b) + assert messages[0].message_id in (message_id_a, message_id_b) assert messages[0].scheduled_enqueue_time_utc == enqueue_time assert messages[0].scheduled_enqueue_time_utc == messages[0].enqueued_time_utc.replace(microsecond=0) + assert messages[0].delivery_count == 0 + assert messages[0].properties + assert messages[0].properties[b'key'] == b'value' + assert messages[0].label == 'label' + assert messages[0].content_type == 'application/text' + assert messages[0].correlation_id == 'cid' + assert messages[0].partition_key == 'pk' + assert messages[0].via_partition_key == 'via_pk' + assert messages[0].to == 'to' + assert messages[0].reply_to == 'reply_to' + assert messages[0].sequence_number + assert messages[0].enqueued_time_utc + assert messages[0].message.delivery_tag is not None assert len(messages) == 2 finally: for m in messages: @@ -1215,19 +1388,88 @@ def test_queue_message_settle_through_mgmt_link_due_to_broken_receiver_link(self assert len(messages) == 1 messages[0].complete() - def test_queue_mock_no_reusing_auto_lock_renew(self): - class MockReceivedMessage: - def __init__(self): - self.received_timestamp_utc = utc_now() - self.locked_until_utc = self.received_timestamp_utc + timedelta(seconds=10) - def renew_lock(self): - self.locked_until_utc = self.locked_until_utc + timedelta(seconds=10) + def test_queue_mock_auto_lock_renew_callback(self): + results = [] + errors = [] + def callback_mock(renewable, error): + results.append(renewable) + if error: + errors.append(error) auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 # So we can run the test fast. + with auto_lock_renew: # Check that it is called when the object expires for any reason (silent renew failure) + message = MockReceivedMessage(prevent_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + time.sleep(3) + assert len(results) == 1 and results[-1]._lock_expired == True + assert not errors + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + with auto_lock_renew: # Check that in normal operation it does not get called + auto_lock_renew.register(renewable=MockReceivedMessage(), on_lock_renew_failure=callback_mock) + time.sleep(3) + assert not results + assert not errors + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + with auto_lock_renew: # Check that when a message is settled, it will not get called even after expiry + message = MockReceivedMessage(prevent_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + message._settled = True + time.sleep(3) + assert not results + assert not errors + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + with auto_lock_renew: # Check that it is called when there is an overt renew failure + message = MockReceivedMessage(exception_on_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + time.sleep(3) + assert len(results) == 1 and results[-1]._lock_expired == True + assert errors[-1] + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + with auto_lock_renew: # Check that it is not called when the renewer is shutdown + message = MockReceivedMessage(prevent_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + auto_lock_renew.close() + time.sleep(3) + assert not results + assert not errors + + del results[:] + del errors[:] + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 + with auto_lock_renew: # Check that it is not called when the receiver is shutdown + message = MockReceivedMessage(prevent_renew_lock=True) + auto_lock_renew.register(renewable=message, on_lock_renew_failure=callback_mock) + message._receiver._running = False + time.sleep(3) + assert not results + assert not errors + + + def test_queue_mock_no_reusing_auto_lock_renew(self): + auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 # So we can run the test fast. with auto_lock_renew: auto_lock_renew.register(renewable=MockReceivedMessage()) - time.sleep(12) + time.sleep(3) with pytest.raises(ServiceBusError): with auto_lock_renew: @@ -1237,12 +1479,13 @@ def renew_lock(self): auto_lock_renew.register(renewable=MockReceivedMessage()) auto_lock_renew = AutoLockRenew() + auto_lock_renew._renew_period = 1 with auto_lock_renew: auto_lock_renew.register(renewable=MockReceivedMessage()) - time.sleep(12) + time.sleep(3) - auto_lock_renew.shutdown() + auto_lock_renew.close() with pytest.raises(ServiceBusError): with auto_lock_renew: @@ -1251,6 +1494,91 @@ def renew_lock(self): with pytest.raises(ServiceBusError): auto_lock_renew.register(renewable=MockReceivedMessage()) + def test_queue_message_properties(self): + scheduled_enqueue_time = (utc_now() + timedelta(seconds=20)).replace(microsecond=0) + message = Message( + body='data', + properties={'key': 'value'}, + session_id='sid', + label='label', + content_type='application/text', + correlation_id='cid', + message_id='mid', + partition_key='pk', + via_partition_key='via_pk', + to='to', + reply_to='reply_to', + reply_to_session_id='reply_to_sid', + scheduled_enqueue_time_utc=scheduled_enqueue_time + ) + + assert message.properties + assert message.properties['key'] == 'value' + assert message.label == 'label' + assert message.content_type == 'application/text' + assert message.correlation_id == 'cid' + assert message.message_id == 'mid' + assert message.partition_key == 'pk' + assert message.via_partition_key == 'via_pk' + assert message.to == 'to' + assert message.reply_to == 'reply_to' + assert message.session_id == 'sid' + assert message.reply_to_session_id == 'reply_to_sid' + assert message.scheduled_enqueue_time_utc == scheduled_enqueue_time + + message.partition_key = 'updated' + message.via_partition_key = 'updated' + new_scheduled_time = (utc_now() + timedelta(hours=5)).replace(microsecond=0) + message.scheduled_enqueue_time_utc = new_scheduled_time + assert message.partition_key == 'updated' + assert message.via_partition_key == 'updated' + assert message.scheduled_enqueue_time_utc == new_scheduled_time + + message.partition_key = None + message.via_partition_key = None + message.scheduled_enqueue_time_utc = None + + assert message.partition_key is None + assert message.via_partition_key is None + assert message.scheduled_enqueue_time_utc is None + + try: + timestamp = new_scheduled_time.timestamp() * 1000 + except AttributeError: + timestamp = calendar.timegm(new_scheduled_time.timetuple()) * 1000 + + uamqp_received_message = uamqp.message.Message( + body=b'data', + annotations={ + _X_OPT_PARTITION_KEY: b'r_key', + _X_OPT_VIA_PARTITION_KEY: b'r_via_key', + _X_OPT_SCHEDULED_ENQUEUE_TIME: timestamp, + }, + properties=uamqp.message.MessageProperties() + ) + received_message = ReceivedMessage(uamqp_received_message) + assert received_message.partition_key == 'r_key' + assert received_message.via_partition_key == 'r_via_key' + assert received_message.scheduled_enqueue_time_utc == new_scheduled_time + + new_scheduled_time = utc_now() + timedelta(hours=1, minutes=49, seconds=32) + + received_message.partition_key = 'new_r_key' + received_message.via_partition_key = 'new_r_via_key' + received_message.scheduled_enqueue_time_utc = new_scheduled_time + + assert received_message.partition_key == 'new_r_key' + assert received_message.via_partition_key == 'new_r_via_key' + assert received_message.scheduled_enqueue_time_utc == new_scheduled_time + + received_message.partition_key = None + received_message.via_partition_key = None + received_message.scheduled_enqueue_time_utc = None + + assert message.partition_key is None + assert message.via_partition_key is None + assert message.scheduled_enqueue_time_utc is None + @pytest.mark.liveTest @pytest.mark.live_test_only @CachedResourceGroupPreparer(name_prefix='servicebustest') @@ -1262,18 +1590,59 @@ def test_queue_receive_batch_without_setting_prefetch(self, servicebus_namespace def message_content(): for i in range(20): - yield Message("Message no. {}".format(i)) - - with sb_client.get_queue_sender(servicebus_queue.name) as sender: + yield Message( + body="Test message", + properties={'key': 'value'}, + label='1st', + content_type='application/text', + correlation_id='cid', + message_id='mid', + partition_key='pk', + via_partition_key='via_pk', + to='to', + reply_to='reply_to', + time_to_live=timedelta(seconds=60) + ) + + sender = sb_client.get_queue_sender(servicebus_queue.name) + receiver = sb_client.get_queue_receiver(servicebus_queue.name) + + with sender, receiver: message = BatchMessage() for each in message_content(): message.add(each) sender.send_messages(message) - with sb_client.get_queue_receiver(servicebus_queue.name) as receiver: - messages = receiver.receive_messages(max_batch_size=20, max_wait_time=5) + receive_counter = 0 + message_1st_received_cnt = 0 + message_2nd_received_cnt = 0 + while message_1st_received_cnt < 20 or message_2nd_received_cnt < 20: + messages = receiver.receive_messages(max_batch_size=20, max_wait_time=5) + if not messages: + break + receive_counter += 1 + for message in messages: + print_message(_logger, message) + assert b''.join(message.body) == b'Test message' + assert message.properties[b'key'] == b'value' + assert message.content_type == 'application/text' + assert message.correlation_id == 'cid' + assert message.message_id == 'mid' + assert message.partition_key == 'pk' + assert message.via_partition_key == 'via_pk' + assert message.to == 'to' + assert message.reply_to == 'reply_to' + assert message.time_to_live == timedelta(seconds=60) + + if message.label == '1st': + message_1st_received_cnt += 1 + message.complete() + message.label = '2nd' + sender.send_messages(message) # resending received message + elif message.label == '2nd': + message_2nd_received_cnt += 1 + message.complete() - assert len(messages) == 20 - for m in messages: - print_message(_logger, m) - m.complete() + assert message_1st_received_cnt == 20 and message_2nd_received_cnt == 20 + # Network/server might be unstable making flow control ineffective in the leading rounds of connection iteration + assert receive_counter < 10 # Dynamic link credit issuing come info effect diff --git a/sdk/servicebus/azure-servicebus/tests/test_sb_client.py b/sdk/servicebus/azure-servicebus/tests/test_sb_client.py index b2b958543ec7..22ff1a910036 100644 --- a/sdk/servicebus/azure-servicebus/tests/test_sb_client.py +++ b/sdk/servicebus/azure-servicebus/tests/test_sb_client.py @@ -125,4 +125,4 @@ def test_sb_client_incorrect_queue_conn_str(self, servicebus_queue_authorization with client: with pytest.raises(ServiceBusError): with client.get_queue_sender(wrong_queue.name) as sender: - sender.send_messages(Message("test")) \ No newline at end of file + sender.send_messages(Message("test")) diff --git a/sdk/servicebus/azure-servicebus/tests/test_sessions.py b/sdk/servicebus/azure-servicebus/tests/test_sessions.py index dba7fcb8165a..b8985b991738 100644 --- a/sdk/servicebus/azure-servicebus/tests/test_sessions.py +++ b/sdk/servicebus/azure-servicebus/tests/test_sessions.py @@ -51,23 +51,56 @@ def test_session_by_session_client_conn_str_receive_handler_peeklock(self, servi servicebus_namespace_connection_string, logging_enable=False) as sb_client: session_id = str(uuid.uuid4()) - with sb_client.get_queue_sender(servicebus_queue.name) as sender: + sender = sb_client.get_queue_sender(servicebus_queue.name) + session = sb_client.get_queue_session_receiver(servicebus_queue.name, session_id=session_id, idle_timeout=5) + + with sender, session: for i in range(3): - message = Message("Handler message no. {}".format(i), session_id=session_id) + message = Message("Handler message no. {}".format(i)) + message.session_id = session_id + message.properties = {'key': 'value'} + message.label = 'label' + message.content_type = 'application/text' + message.correlation_id = 'cid' + message.message_id = str(i) + message.partition_key = 'pk' + message.via_partition_key = 'via_pk' + message.to = 'to' + message.reply_to = 'reply_to' + message.reply_to_session_id = 'reply_to_session_id' sender.send_messages(message) - with pytest.raises(ServiceBusConnectionError): - session = sb_client.get_queue_receiver(servicebus_queue.name, idle_timeout=5)._open_with_retry() + with pytest.raises(ServiceBusConnectionError): + session = sb_client.get_queue_receiver(servicebus_queue.name, idle_timeout=5)._open_with_retry() - with sb_client.get_queue_session_receiver(servicebus_queue.name, session_id=session_id, idle_timeout=5) as session: count = 0 + received_cnt_dic = {} for message in session: print_message(_logger, message) + assert message.delivery_count == 0 + assert message.properties + assert message.properties[b'key'] == b'value' + assert message.label == 'label' + assert message.content_type == 'application/text' + assert message.correlation_id == 'cid' + assert message.partition_key == 'pk' + assert message.via_partition_key == 'via_pk' + assert message.to == 'to' + assert message.reply_to == 'reply_to' + assert message.sequence_number + assert message.enqueued_time_utc assert message.session_id == session_id + assert message.reply_to_session_id == 'reply_to_session_id' count += 1 message.complete() + if message.message_id not in received_cnt_dic: + received_cnt_dic[message.message_id] = 1 + sender.send_messages(message) + else: + received_cnt_dic[message.message_id] += 1 - assert count == 3 + assert received_cnt_dic['0'] == 2 and received_cnt_dic['1'] == 2 and received_cnt_dic['2'] == 2 + assert count == 6 @pytest.mark.liveTest @pytest.mark.live_test_only @@ -303,8 +336,10 @@ def test_session_by_servicebus_client_iter_messages_with_retrieve_deferred_recei for message in receiver: count += 1 print_message(_logger, message) - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' message.complete() assert count == 10 @@ -415,8 +450,10 @@ def test_session_by_servicebus_client_receive_with_retrieve_deadletter(self, ser for message in session: print_message(_logger, message) message.complete() - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' count += 1 assert count == 10 @@ -510,7 +547,7 @@ def test_session_by_servicebus_client_renew_client_locks(self, servicebus_namesp try: for m in messages: with pytest.raises(TypeError): - expired = m.expired + expired = m._lock_expired assert m.locked_until_utc is None assert m.lock_token is not None time.sleep(5) @@ -546,10 +583,14 @@ def test_session_by_conn_str_receive_handler_with_autolockrenew(self, servicebus message = Message("{}".format(i), session_id=session_id) sender.send_messages(message) + results = [] + def lock_lost_callback(renewable, error): + results.append(renewable) + renewer = AutoLockRenew() messages = [] with sb_client.get_queue_session_receiver(servicebus_queue.name, session_id=session_id, idle_timeout=5, mode=ReceiveSettleMode.PeekLock, prefetch=10) as receiver: - renewer.register(receiver.session, timeout=60) + renewer.register(receiver.session, timeout=60, on_lock_renew_failure = lock_lost_callback) print("Registered lock renew thread", receiver.session._locked_until_utc, utc_now()) with pytest.raises(SessionLockExpired): for message in receiver: @@ -557,9 +598,9 @@ def test_session_by_conn_str_receive_handler_with_autolockrenew(self, servicebus print("Starting first sleep") time.sleep(40) print("First sleep {}".format(receiver.session._locked_until_utc - utc_now())) - assert not receiver.session.expired + assert not receiver.session._lock_expired with pytest.raises(TypeError): - message.expired + message._lock_expired assert message.locked_until_utc is None with pytest.raises(TypeError): message.renew_lock() @@ -571,8 +612,9 @@ def test_session_by_conn_str_receive_handler_with_autolockrenew(self, servicebus print("Starting second sleep") time.sleep(40) # ensure renewer expires print("Second sleep {}".format(receiver.session._locked_until_utc - utc_now())) + assert not results sleep_until_expired(receiver.session) # and then ensure it didn't slip a renew under the wire. - assert receiver.session.expired + assert receiver.session._lock_expired assert isinstance(receiver.session.auto_renew_error, AutoLockRenewTimeout) try: message.complete() @@ -581,7 +623,17 @@ def test_session_by_conn_str_receive_handler_with_autolockrenew(self, servicebus assert isinstance(e.inner_exception, AutoLockRenewTimeout) messages.append(message) - renewer.shutdown() + # While we're testing autolockrenew and sessions, let's make sure we don't call the lock-lost callback when a session exits. + renewer._renew_period = 1 + session = None + + with sb_client.get_queue_session_receiver(servicebus_queue.name, session_id=session_id, idle_timeout=5, mode=ReceiveSettleMode.PeekLock, prefetch=10) as receiver: + session = receiver.session + renewer.register(session, timeout=5, on_lock_renew_failure=lock_lost_callback) + sleep_until_expired(receiver.session) + assert not results + + renewer.close() assert len(messages) == 2 @@ -632,11 +684,11 @@ def test_session_message_expiry(self, servicebus_namespace_connection_string, se print_message(_logger, messages[0]) time.sleep(60) with pytest.raises(TypeError): - messages[0].expired + messages[0]._lock_expired with pytest.raises(TypeError): messages[0].renew_lock() #TODO: Bug: Why was this 30s sleep before? compare with T1. - assert receiver.session.expired + assert receiver.session._lock_expired with pytest.raises(SessionLockExpired): messages[0].complete() with pytest.raises(SessionLockExpired): @@ -646,7 +698,7 @@ def test_session_message_expiry(self, servicebus_namespace_connection_string, se messages = receiver.receive_messages(max_wait_time=30) assert len(messages) == 1 print_message(_logger, messages[0]) - #assert messages[0].header.delivery_count # TODO confirm this with service + assert messages[0].delivery_count messages[0].complete() @@ -667,7 +719,7 @@ def test_session_schedule_message(self, servicebus_namespace_connection_string, content = str(uuid.uuid4()) message_id = uuid.uuid4() message = Message(content, session_id=session_id) - message.properties.message_id = message_id + message.message_id = message_id message.scheduled_enqueue_time_utc = enqueue_time sender.send_messages(message) @@ -680,7 +732,7 @@ def test_session_schedule_message(self, servicebus_namespace_connection_string, data = str(messages[0]) assert data == content - assert messages[0].properties.message_id == message_id + assert messages[0].message_id == message_id assert messages[0].scheduled_enqueue_time_utc == enqueue_time assert messages[0].scheduled_enqueue_time_utc == messages[0].enqueued_time_utc.replace(microsecond=0) assert len(messages) == 1 @@ -704,10 +756,10 @@ def test_session_schedule_multiple_messages(self, servicebus_namespace_connectio content = str(uuid.uuid4()) message_id_a = uuid.uuid4() message_a = Message(content, session_id=session_id) - message_a.properties.message_id = message_id_a + message_a.message_id = message_id_a message_id_b = uuid.uuid4() message_b = Message(content, session_id=session_id) - message_b.properties.message_id = message_id_b + message_b.message_id = message_id_b tokens = sender.schedule_messages([message_a, message_b], enqueue_time) assert len(tokens) == 2 @@ -721,7 +773,7 @@ def test_session_schedule_multiple_messages(self, servicebus_namespace_connectio data = str(messages[0]) assert data == content - assert messages[0].properties.message_id in (message_id_a, message_id_b) + assert messages[0].message_id in (message_id_a, message_id_b) assert messages[0].scheduled_enqueue_time_utc == enqueue_time assert messages[0].scheduled_enqueue_time_utc == messages[0].enqueued_time_utc.replace(microsecond=0) assert len(messages) == 2 @@ -778,7 +830,7 @@ def test_session_get_set_state_with_receiver(self, servicebus_namespace_connecti session.session.set_session_state("first_state") count = 0 for m in session: - assert m.properties.group_id == session_id.encode('utf-8') + assert m.session_id == session_id count += 1 session.session.get_session_state() assert count == 3 diff --git a/sdk/servicebus/azure-servicebus/tests/test_subscriptions.py b/sdk/servicebus/azure-servicebus/tests/test_subscriptions.py index 980e813b890a..a58aff4422cd 100644 --- a/sdk/servicebus/azure-servicebus/tests/test_subscriptions.py +++ b/sdk/servicebus/azure-servicebus/tests/test_subscriptions.py @@ -168,6 +168,8 @@ def test_subscription_by_servicebus_client_receive_batch_with_deadletter(self, s for message in dl_receiver: message.complete() count += 1 - assert message.user_properties[b'DeadLetterReason'] == b'Testing reason' - assert message.user_properties[b'DeadLetterErrorDescription'] == b'Testing description' + assert message.dead_letter_reason == 'Testing reason' + assert message.dead_letter_error_description == 'Testing description' + assert message.properties[b'DeadLetterReason'] == b'Testing reason' + assert message.properties[b'DeadLetterErrorDescription'] == b'Testing description' assert count == 10 diff --git a/sdk/servicebus/azure-servicebus/tests/utilities.py b/sdk/servicebus/azure-servicebus/tests/utilities.py index b22b4c4249ca..2d46b00daa29 100644 --- a/sdk/servicebus/azure-servicebus/tests/utilities.py +++ b/sdk/servicebus/azure-servicebus/tests/utilities.py @@ -28,12 +28,10 @@ def print_message(_logger, message): _logger.info("Receiving: {}".format(message)) _logger.debug("Time to live: {}".format(message.time_to_live)) _logger.debug("Sequence number: {}".format(message.sequence_number)) - _logger.debug("Enqueue Sequence numger: {}".format(message.enqueue_sequence_number)) - _logger.debug("Partition ID: {}".format(message.partition_id)) + _logger.debug("Enqueue Sequence numger: {}".format(message.enqueued_sequence_number)) _logger.debug("Partition Key: {}".format(message.partition_key)) - _logger.debug("User Properties: {}".format(message.user_properties)) - _logger.debug("Annotations: {}".format(message.annotations)) - _logger.debug("Delivery count: {}".format(message.header.delivery_count)) + _logger.debug("Properties: {}".format(message.properties)) + _logger.debug("Delivery count: {}".format(message.delivery_count)) try: _logger.debug("Locked until: {}".format(message.locked_until_utc)) _logger.debug("Lock Token: {}".format(message.lock_token)) diff --git a/sdk/servicebus/ci.yml b/sdk/servicebus/ci.yml index 61c369a0270c..29f5e55ae4ef 100644 --- a/sdk/servicebus/ci.yml +++ b/sdk/servicebus/ci.yml @@ -33,3 +33,5 @@ extends: safeName: azuremgmtservicebus - name: azure_servicebus safeName: azureservicebus + SkipPythonVersion: 'pypy3' + diff --git a/sdk/servicefabric/azure-mgmt-servicefabric/README.md b/sdk/servicefabric/azure-mgmt-servicefabric/README.md index 486971896332..d524b19105de 100644 --- a/sdk/servicefabric/azure-mgmt-servicefabric/README.md +++ b/sdk/servicefabric/azure-mgmt-servicefabric/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/servicefabric/azure-servicefabric/README.md b/sdk/servicefabric/azure-servicefabric/README.md index e10ba3dc30fa..96ffb5e228d8 100644 --- a/sdk/servicefabric/azure-servicefabric/README.md +++ b/sdk/servicefabric/azure-servicefabric/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Service Fabric Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/signalr/azure-mgmt-signalr/README.md b/sdk/signalr/azure-mgmt-signalr/README.md index 8dc4f14cf656..523cc1afd255 100644 --- a/sdk/signalr/azure-mgmt-signalr/README.md +++ b/sdk/signalr/azure-mgmt-signalr/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure SignalR Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/sql/azure-mgmt-sql/README.md b/sdk/sql/azure-mgmt-sql/README.md index 03c4a0f0625f..eb04f1378d74 100644 --- a/sdk/sql/azure-mgmt-sql/README.md +++ b/sdk/sql/azure-mgmt-sql/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure SQL Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/sql/azure-mgmt-sqlvirtualmachine/README.md b/sdk/sql/azure-mgmt-sqlvirtualmachine/README.md index 24e180e43cc8..379efa4e6847 100644 --- a/sdk/sql/azure-mgmt-sqlvirtualmachine/README.md +++ b/sdk/sql/azure-mgmt-sqlvirtualmachine/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure SQL Virtual Machine Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/storage/azure-mgmt-storage/README.md b/sdk/storage/azure-mgmt-storage/README.md index 3d433d30c1e3..ecec808eb217 100644 --- a/sdk/storage/azure-mgmt-storage/README.md +++ b/sdk/storage/azure-mgmt-storage/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Storage Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/storage/azure-mgmt-storagecache/README.md b/sdk/storage/azure-mgmt-storagecache/README.md index bac224225474..2d48151bb376 100644 --- a/sdk/storage/azure-mgmt-storagecache/README.md +++ b/sdk/storage/azure-mgmt-storagecache/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure MyService Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/storage/azure-mgmt-storageimportexport/README.md b/sdk/storage/azure-mgmt-storageimportexport/README.md index 9aaf05fd5746..3e016825864f 100644 --- a/sdk/storage/azure-mgmt-storageimportexport/README.md +++ b/sdk/storage/azure-mgmt-storageimportexport/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure StorageImportExport Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/storage/azure-mgmt-storagesync/README.md b/sdk/storage/azure-mgmt-storagesync/README.md index d166b740b08f..b86160a7124b 100644 --- a/sdk/storage/azure-mgmt-storagesync/README.md +++ b/sdk/storage/azure-mgmt-storagesync/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/storage/azure-storage-blob-changefeed/README.md b/sdk/storage/azure-storage-blob-changefeed/README.md index 1c2e4474fd9f..4c5f65da0c8c 100644 --- a/sdk/storage/azure-storage-blob-changefeed/README.md +++ b/sdk/storage/azure-storage-blob-changefeed/README.md @@ -3,7 +3,7 @@ This preview package for Python enables users to get blob change feed events. These events can be lazily generated, iterated by page, retrieved for a specific time interval, or iterated from a specific continuation token. -[Source code](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/storage/azure-storage-blob-changefeed/azure/storage/blobchangefeed) | [Package (PyPi)](https://pypi.org/project/azure-storage-blob-changefeed/) | [API reference documentation](https://aka.ms/azsdk-python-storage-blob-changefeed-ref) | [Product documentation](https://docs.microsoft.com/azure/storage/) | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/storage/azure-storage-blob-changefeed/samples) +[Source code](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/storage/azure-storage-blob-changefeed/azure/storage/blob/changefeed) | [Package (PyPi)](https://pypi.org/project/azure-storage-blob-changefeed/) | [API reference documentation](https://aka.ms/azsdk-python-storage-blob-changefeed-ref) | [Product documentation](https://docs.microsoft.com/azure/storage/) | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/storage/azure-storage-blob-changefeed/samples) ## Getting started diff --git a/sdk/storage/azure-storage-blob-changefeed/azure/storage/blob/changefeed/_models.py b/sdk/storage/azure-storage-blob-changefeed/azure/storage/blob/changefeed/_models.py index b904f751363e..a5d8aef59b32 100644 --- a/sdk/storage/azure-storage-blob-changefeed/azure/storage/blob/changefeed/_models.py +++ b/sdk/storage/azure-storage-blob-changefeed/azure/storage/blob/changefeed/_models.py @@ -384,11 +384,13 @@ def __iter__(self): def seekable(): return True - def next(self): + def __next__(self): next_chunk = next(self._iterator) self._download_offset += len(next_chunk) return next_chunk + next = __next__ # Python 2 compatibility. + def tell(self): return self._point @@ -406,7 +408,7 @@ def read(self, size): try: # keep downloading file content until the buffer has enough bytes to read while self._point + size > self._download_offset: - next_data_chunk = self.next() + next_data_chunk = self.__next__() self._buf += next_data_chunk except StopIteration: pass diff --git a/sdk/storage/azure-storage-blob/CHANGELOG.md b/sdk/storage/azure-storage-blob/CHANGELOG.md index a5f769f9e74d..576d0303cd4c 100644 --- a/sdk/storage/azure-storage-blob/CHANGELOG.md +++ b/sdk/storage/azure-storage-blob/CHANGELOG.md @@ -213,7 +213,7 @@ https://aka.ms/azure-sdk-preview1-python. - `LeaseClient`: Handles all lease operations for both containers and blobs. These clients can be accessed by navigating down the client hierarchy, or instantiated directly using URLs to the resource (account, container or blob). - For full details on the new API, please see the [reference documentation](http://azure.github.io/azure-sdk-for-python/ref/azure.storage.blob.html). + For full details on the new API, please see the [reference documentation](https://azure.github.io/azure-sdk-for-python/ref/Storage.html#azure-storage-blob). - Copy blob operations now return a polling object that can be used to check the status of the operation, as well as abort the operation. - New module level operations for simple upload and download using a blob URL. - Download operations now return a streaming object that can download data in multiple ways: diff --git a/sdk/storage/azure-storage-blob/README.md b/sdk/storage/azure-storage-blob/README.md index 2b83fc10f0c7..2ebf05ab1b0d 100644 --- a/sdk/storage/azure-storage-blob/README.md +++ b/sdk/storage/azure-storage-blob/README.md @@ -188,6 +188,7 @@ Once you've initialized a Client, you can choose from the different types of blo ## Examples The following sections provide several code snippets covering some of the most common Storage Blob tasks, including: +* [Create a container](#create-a-container "Create a container") * [Uploading a blob](#uploading-a-blob "Uploading a blob") * [Downloading a blob](#downloading-a-blob "Downloading a blob") * [Enumerating blobs](#enumerating-blobs "Enumerating blobs") diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_download.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_download.py index 478ed3c2804a..e11023c0f9c7 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_download.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_download.py @@ -258,7 +258,7 @@ class StorageStreamDownloader(object): # pylint: disable=too-many-instance-attr The properties of the blob being downloaded. If only a range of the data is being downloaded, this will be reflected in the properties. :ivar int size: - The size of the total data in the stream. This will be the byte range if speficied, + The size of the total data in the stream. This will be the byte range if specified, otherwise the total size of the blob. """ diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py index ab69dd7ae835..afad9a1727ff 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py @@ -148,11 +148,13 @@ def __iter__(self): def seekable(): return True - def next(self): + def __next__(self): next_part = next(self.iterator) self._download_offset += len(next_part) return next_part + next = __next__ # Python 2 compatibility. + def tell(self): return self._point @@ -170,7 +172,7 @@ def read(self, size): try: # keep reading from the generator until the buffer of this stream has enough data to read while self._point + size > self._download_offset: - self._buf += self.next() + self._buf += self.__next__() except StopIteration: self.file_length = self._download_offset diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/authentication.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/authentication.py index a8db96d4a051..b11dc5757808 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/authentication.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/authentication.py @@ -64,27 +64,30 @@ def __init__(self, account_name, account_key): self.account_key = account_key super(SharedKeyCredentialPolicy, self).__init__() - def _get_headers(self, request, headers_to_sign): + @staticmethod + def _get_headers(request, headers_to_sign): headers = dict((name.lower(), value) for name, value in request.http_request.headers.items() if value) if 'content-length' in headers and headers['content-length'] == '0': del headers['content-length'] return '\n'.join(headers.get(x, '') for x in headers_to_sign) + '\n' - def _get_verb(self, request): + @staticmethod + def _get_verb(request): return request.http_request.method + '\n' def _get_canonicalized_resource(self, request): uri_path = urlparse(request.http_request.url).path try: if isinstance(request.context.transport, AioHttpTransport) or \ - isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): + isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): uri_path = URL(uri_path) return '/' + self.account_name + str(uri_path) except TypeError: pass return '/' + self.account_name + uri_path - def _get_canonicalized_headers(self, request): + @staticmethod + def _get_canonicalized_headers(request): string_to_sign = '' x_ms_headers = [] for name, value in request.http_request.headers.items(): @@ -96,8 +99,9 @@ def _get_canonicalized_headers(self, request): string_to_sign += ''.join([name, ':', value, '\n']) return string_to_sign - def _get_canonicalized_resource_query(self, request): - sorted_queries = [(name, value) for name, value in request.http_request.query.items()] + @staticmethod + def _get_canonicalized_resource_query(request): + sorted_queries = list(request.http_request.query.items()) sorted_queries.sort() string_to_sign = '' diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/avro/schema.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/avro/schema.py index 6832ab4fd2d5..ffe28530167f 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/avro/schema.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/avro/schema.py @@ -393,7 +393,7 @@ class NamedSchema(Schema): def __init__( self, data_type, - name, + name=None, namespace=None, names=None, other_props=None, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/policies_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/policies_async.py index c0a44767b177..e0926b81dbc5 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/policies_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/policies_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method import asyncio import random diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/uploads.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/uploads.py index 623fa16182ea..abf3fb2ce007 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/uploads.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/uploads.py @@ -520,9 +520,11 @@ def __iter__(self): def seekable(self): return False - def next(self): + def __next__(self): return next(self.iterator) + next = __next__ # Python 2 compatibility. + def tell(self, *args, **kwargs): raise UnsupportedOperation("Data generator does not support tell.") @@ -534,7 +536,7 @@ def read(self, size): count = len(self.leftover) try: while count < size: - chunk = self.next() + chunk = self.__next__() if isinstance(chunk, six.text_type): chunk = chunk.encode(self.encoding) data += chunk diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py index 82a5c627f050..28f333fc21e9 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines, invalid-overridden-method from typing import ( # pylint: disable=unused-import Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py index 14944c510eb7..ab2e8a0defc7 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- - +# pylint: disable=invalid-overridden-method import functools from typing import ( # pylint: disable=unused-import Union, Optional, Any, Iterable, Dict, List, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_container_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_container_client_async.py index 8a777cb5daa2..ee31e3c9e7de 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_container_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_container_client_async.py @@ -4,7 +4,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- - +# pylint: disable=invalid-overridden-method import functools from typing import ( # pylint: disable=unused-import Union, Optional, Any, Iterable, AnyStr, Dict, List, IO, AsyncIterator, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py index ea83862e4ae5..c698cb40a40a 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method import asyncio import sys diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_lease_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_lease_async.py index ecd9076bc8cd..53ab5ae3ff75 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_lease_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_lease_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method from typing import ( # pylint: disable=unused-import Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, diff --git a/sdk/storage/azure-storage-blob/samples/blob_samples_common.py b/sdk/storage/azure-storage-blob/samples/blob_samples_common.py index 121f0d6905ea..aa1640479f91 100644 --- a/sdk/storage/azure-storage-blob/samples/blob_samples_common.py +++ b/sdk/storage/azure-storage-blob/samples/blob_samples_common.py @@ -140,7 +140,7 @@ def delete_multiple_blobs(self): # [END delete_multiple_blobs] # Delete container - blob_service_client.delete_container("containerforbatchblobdeletesasync") + blob_service_client.delete_container("containerforbatchblobdelete") def acquire_lease_on_blob(self): diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/authentication.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/authentication.py index a8db96d4a051..b11dc5757808 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/authentication.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/authentication.py @@ -64,27 +64,30 @@ def __init__(self, account_name, account_key): self.account_key = account_key super(SharedKeyCredentialPolicy, self).__init__() - def _get_headers(self, request, headers_to_sign): + @staticmethod + def _get_headers(request, headers_to_sign): headers = dict((name.lower(), value) for name, value in request.http_request.headers.items() if value) if 'content-length' in headers and headers['content-length'] == '0': del headers['content-length'] return '\n'.join(headers.get(x, '') for x in headers_to_sign) + '\n' - def _get_verb(self, request): + @staticmethod + def _get_verb(request): return request.http_request.method + '\n' def _get_canonicalized_resource(self, request): uri_path = urlparse(request.http_request.url).path try: if isinstance(request.context.transport, AioHttpTransport) or \ - isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): + isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): uri_path = URL(uri_path) return '/' + self.account_name + str(uri_path) except TypeError: pass return '/' + self.account_name + uri_path - def _get_canonicalized_headers(self, request): + @staticmethod + def _get_canonicalized_headers(request): string_to_sign = '' x_ms_headers = [] for name, value in request.http_request.headers.items(): @@ -96,8 +99,9 @@ def _get_canonicalized_headers(self, request): string_to_sign += ''.join([name, ':', value, '\n']) return string_to_sign - def _get_canonicalized_resource_query(self, request): - sorted_queries = [(name, value) for name, value in request.http_request.query.items()] + @staticmethod + def _get_canonicalized_resource_query(request): + sorted_queries = list(request.http_request.query.items()) sorted_queries.sort() string_to_sign = '' diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/policies_async.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/policies_async.py index c0a44767b177..e0926b81dbc5 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/policies_async.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/policies_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method import asyncio import random diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/uploads.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/uploads.py index 68c6c72d03d0..29949d57a293 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/uploads.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/uploads.py @@ -538,9 +538,11 @@ def __iter__(self): def seekable(self): return False - def next(self): + def __next__(self): return next(self.iterator) + next = __next__ # Python 2 compatibility. + def tell(self, *args, **kwargs): raise UnsupportedOperation("Data generator does not support tell.") @@ -552,7 +554,7 @@ def read(self, size): count = len(self.leftover) try: while count < size: - chunk = self.next() + chunk = self.__next__() if isinstance(chunk, six.text_type): chunk = chunk.encode(self.encoding) data += chunk diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_directory_client_async.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_directory_client_async.py index f655adc0f791..8d4eb3ebbe83 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_directory_client_async.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_directory_client_async.py @@ -3,6 +3,8 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method + from ._data_lake_file_client_async import DataLakeFileClient from .._data_lake_directory_client import DataLakeDirectoryClient as DataLakeDirectoryClientBase from .._models import DirectoryProperties diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_file_client_async.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_file_client_async.py index 12f0ff86aaa7..e74cc13442ad 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_file_client_async.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_file_client_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method from ._download_async import StorageStreamDownloader from ._path_client_async import PathClient diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_lease_async.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_lease_async.py index cadf7bc0c396..10205f9b551a 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_lease_async.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_lease_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method from typing import ( # pylint: disable=unused-import Union, Optional, Any, diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_service_client_async.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_service_client_async.py index 205a4ec4f6b5..18935c8d5e35 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_service_client_async.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_data_lake_service_client_async.py @@ -3,6 +3,8 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method + from azure.core.paging import ItemPaged from azure.storage.blob.aio import BlobServiceClient diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_file_system_client_async.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_file_system_client_async.py index a39bfb2fee7f..6b1be52d7137 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_file_system_client_async.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_file_system_client_async.py @@ -4,6 +4,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method import functools from typing import ( # pylint: disable=unused-import diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_path_client_async.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_path_client_async.py index 6f9693090422..688f2d4c3ffd 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_path_client_async.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_path_client_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method from azure.storage.blob.aio import BlobClient from .._shared.base_client_async import AsyncStorageAccountHostsMixin from .._path_client import PathClient as PathClientBase diff --git a/sdk/storage/azure-storage-file-share/CHANGELOG.md b/sdk/storage/azure-storage-file-share/CHANGELOG.md index 635714eaf330..01d6ae2abed4 100644 --- a/sdk/storage/azure-storage-file-share/CHANGELOG.md +++ b/sdk/storage/azure-storage-file-share/CHANGELOG.md @@ -173,7 +173,7 @@ https://aka.ms/azure-sdk-preview1-python. - `FileClient`: The client handles operations for a particular file. This includes creating or deleting that file, as well as upload and download data and managing properties. These clients can be accessed by navigating down the client hierarchy, or instantiated directly using URLs to the resource (account, share, directory or file). - For full details on the new API, please see the [reference documentation](http://azure.github.io/azure-sdk-for-python/ref/azure.storage.file.html). + For full details on the new API, please see the [reference documentation](https://azure.github.io/azure-sdk-for-python/ref/Storage.html#azure-storage-file-share). - The copy file operation now returns a polling object that can be used to check the status of the operation, as well as abort the operation. - The `close_handles` operation now return a polling object that can be used to check the status of the operation. - Download operations now return a streaming object that can download data in multiple ways: diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/authentication.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/authentication.py index a8db96d4a051..b11dc5757808 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/authentication.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/authentication.py @@ -64,27 +64,30 @@ def __init__(self, account_name, account_key): self.account_key = account_key super(SharedKeyCredentialPolicy, self).__init__() - def _get_headers(self, request, headers_to_sign): + @staticmethod + def _get_headers(request, headers_to_sign): headers = dict((name.lower(), value) for name, value in request.http_request.headers.items() if value) if 'content-length' in headers and headers['content-length'] == '0': del headers['content-length'] return '\n'.join(headers.get(x, '') for x in headers_to_sign) + '\n' - def _get_verb(self, request): + @staticmethod + def _get_verb(request): return request.http_request.method + '\n' def _get_canonicalized_resource(self, request): uri_path = urlparse(request.http_request.url).path try: if isinstance(request.context.transport, AioHttpTransport) or \ - isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): + isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): uri_path = URL(uri_path) return '/' + self.account_name + str(uri_path) except TypeError: pass return '/' + self.account_name + uri_path - def _get_canonicalized_headers(self, request): + @staticmethod + def _get_canonicalized_headers(request): string_to_sign = '' x_ms_headers = [] for name, value in request.http_request.headers.items(): @@ -96,8 +99,9 @@ def _get_canonicalized_headers(self, request): string_to_sign += ''.join([name, ':', value, '\n']) return string_to_sign - def _get_canonicalized_resource_query(self, request): - sorted_queries = [(name, value) for name, value in request.http_request.query.items()] + @staticmethod + def _get_canonicalized_resource_query(request): + sorted_queries = list(request.http_request.query.items()) sorted_queries.sort() string_to_sign = '' diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/policies_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/policies_async.py index c0a44767b177..e0926b81dbc5 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/policies_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/policies_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method import asyncio import random diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/uploads.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/uploads.py index 623fa16182ea..abf3fb2ce007 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/uploads.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/uploads.py @@ -520,9 +520,11 @@ def __iter__(self): def seekable(self): return False - def next(self): + def __next__(self): return next(self.iterator) + next = __next__ # Python 2 compatibility. + def tell(self, *args, **kwargs): raise UnsupportedOperation("Data generator does not support tell.") @@ -534,7 +536,7 @@ def read(self, size): count = len(self.leftover) try: while count < size: - chunk = self.next() + chunk = self.__next__() if isinstance(chunk, six.text_type): chunk = chunk.encode(self.encoding) data += chunk diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py index 260c9a08c907..29b63969fbfe 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- - +# pylint: disable=invalid-overridden-method import functools import time from typing import ( # pylint: disable=unused-import diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_download_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_download_async.py index 7636190e8b8e..c0db16d6f7a2 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_download_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_download_async.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- - +# pylint: disable=invalid-overridden-method import asyncio import sys from io import BytesIO diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py index de63720f53cb..3d48fdc0d882 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines, invalid-overridden-method import functools import time from io import BytesIO diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_lease_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_lease_async.py index bdd06d72be1b..0a04484638f3 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_lease_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_lease_async.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- - +# pylint: disable=invalid-overridden-method from typing import ( # pylint: disable=unused-import Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, TypeVar, TYPE_CHECKING diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py index 2a795f683f6c..b6fb243067e9 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- - +# pylint: disable=invalid-overridden-method from typing import ( # pylint: disable=unused-import Optional, Union, Dict, Any, Iterable, TYPE_CHECKING ) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py index 9b5e3f2a7310..2ee8390932f4 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- - +# pylint: disable=invalid-overridden-method import functools from typing import ( # pylint: disable=unused-import Union, Optional, Any, Iterable, Dict, List, diff --git a/sdk/storage/azure-storage-nspkg/README.md b/sdk/storage/azure-storage-nspkg/README.md index a3de7a6555a8..4e9b2deaed39 100644 --- a/sdk/storage/azure-storage-nspkg/README.md +++ b/sdk/storage/azure-storage-nspkg/README.md @@ -8,4 +8,4 @@ It provides the necessary files for other packages to extend the azure.storage namespace. If you are looking to install the Azure Storage libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). diff --git a/sdk/storage/azure-storage-queue/CHANGELOG.md b/sdk/storage/azure-storage-queue/CHANGELOG.md index dbc94801dcf6..ad8c31afc5ca 100644 --- a/sdk/storage/azure-storage-queue/CHANGELOG.md +++ b/sdk/storage/azure-storage-queue/CHANGELOG.md @@ -116,7 +116,7 @@ https://aka.ms/azure-sdk-preview1-python. - `QueueClient`: The client handles operations within a particular queue. This includes creating or deleting that queue, as well as enqueueing and dequeueing messages. These clients can be accessed by navigating down the client hierarchy, or instantiated directly using URLs to the resource (account or queue). - For full details on the new API, please see the [reference documentation](http://azure.github.io/azure-sdk-for-python/ref/azure.storage.queue.html). + For full details on the new API, please see the [reference documentation](https://azure.github.io/azure-sdk-for-python/ref/Storage.html#azure-storage-queue). - New message iterator, for receiving messages from a queue in a continuous stream. - New underlying REST pipeline implementation, based on the new `azure-core` library. - Client and pipeline configuration is now available via keyword arguments at both the client level, and per-operation. See reference documentation for a full list of optional configuration arguments. diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/authentication.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/authentication.py index a8db96d4a051..b11dc5757808 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/authentication.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/authentication.py @@ -64,27 +64,30 @@ def __init__(self, account_name, account_key): self.account_key = account_key super(SharedKeyCredentialPolicy, self).__init__() - def _get_headers(self, request, headers_to_sign): + @staticmethod + def _get_headers(request, headers_to_sign): headers = dict((name.lower(), value) for name, value in request.http_request.headers.items() if value) if 'content-length' in headers and headers['content-length'] == '0': del headers['content-length'] return '\n'.join(headers.get(x, '') for x in headers_to_sign) + '\n' - def _get_verb(self, request): + @staticmethod + def _get_verb(request): return request.http_request.method + '\n' def _get_canonicalized_resource(self, request): uri_path = urlparse(request.http_request.url).path try: if isinstance(request.context.transport, AioHttpTransport) or \ - isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): + isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): uri_path = URL(uri_path) return '/' + self.account_name + str(uri_path) except TypeError: pass return '/' + self.account_name + uri_path - def _get_canonicalized_headers(self, request): + @staticmethod + def _get_canonicalized_headers(request): string_to_sign = '' x_ms_headers = [] for name, value in request.http_request.headers.items(): @@ -96,8 +99,9 @@ def _get_canonicalized_headers(self, request): string_to_sign += ''.join([name, ':', value, '\n']) return string_to_sign - def _get_canonicalized_resource_query(self, request): - sorted_queries = [(name, value) for name, value in request.http_request.query.items()] + @staticmethod + def _get_canonicalized_resource_query(request): + sorted_queries = list(request.http_request.query.items()) sorted_queries.sort() string_to_sign = '' diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/policies_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/policies_async.py index c0a44767b177..e0926b81dbc5 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/policies_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/policies_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method import asyncio import random diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/uploads.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/uploads.py index 623fa16182ea..abf3fb2ce007 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/uploads.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/uploads.py @@ -520,9 +520,11 @@ def __iter__(self): def seekable(self): return False - def next(self): + def __next__(self): return next(self.iterator) + next = __next__ # Python 2 compatibility. + def tell(self, *args, **kwargs): raise UnsupportedOperation("Data generator does not support tell.") @@ -534,7 +536,7 @@ def read(self, size): count = len(self.leftover) try: while count < size: - chunk = self.next() + chunk = self.__next__() if isinstance(chunk, six.text_type): chunk = chunk.encode(self.encoding) data += chunk diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py index cc5851ec9412..21e710554e2a 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method import functools from typing import ( # pylint: disable=unused-import diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py index 4d32d1f8b0d8..42d0d45f4583 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method import functools from typing import ( # pylint: disable=unused-import diff --git a/sdk/subscription/azure-mgmt-subscription/README.md b/sdk/subscription/azure-mgmt-subscription/README.md index 518e5dbb45d5..df35c72d26b9 100644 --- a/sdk/subscription/azure-mgmt-subscription/README.md +++ b/sdk/subscription/azure-mgmt-subscription/README.md @@ -12,7 +12,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Usage diff --git a/sdk/support/azure-mgmt-support/README.md b/sdk/support/azure-mgmt-support/README.md index fd5542bc09d5..e059902abbee 100644 --- a/sdk/support/azure-mgmt-support/README.md +++ b/sdk/support/azure-mgmt-support/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Support Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/synapse/azure-mgmt-synapse/README.md b/sdk/synapse/azure-mgmt-synapse/README.md index 15493a2e844a..b842c7ac1bce 100644 --- a/sdk/synapse/azure-mgmt-synapse/README.md +++ b/sdk/synapse/azure-mgmt-synapse/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Synapse Management Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/sdk) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all) # Usage diff --git a/sdk/synapse/azure-synapse-accesscontrol/README.md b/sdk/synapse/azure-synapse-accesscontrol/README.md index 55088be5b513..2cd8af699332 100644 --- a/sdk/synapse/azure-synapse-accesscontrol/README.md +++ b/sdk/synapse/azure-synapse-accesscontrol/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Synapse AccessControl Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/synapse/azure-synapse-artifacts/README.md b/sdk/synapse/azure-synapse-artifacts/README.md index 84f2f8d8670c..c449e72fdb4b 100644 --- a/sdk/synapse/azure-synapse-artifacts/README.md +++ b/sdk/synapse/azure-synapse-artifacts/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Synapse Artifacts Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/synapse/azure-synapse-spark/README.md b/sdk/synapse/azure-synapse-spark/README.md index 011e87593a04..bc0e56420efb 100644 --- a/sdk/synapse/azure-synapse-spark/README.md +++ b/sdk/synapse/azure-synapse-spark/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Synapse Spark Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage diff --git a/sdk/synapse/azure-synapse/README.md b/sdk/synapse/azure-synapse/README.md index a45427594d12..896214ff69cb 100644 --- a/sdk/synapse/azure-synapse/README.md +++ b/sdk/synapse/azure-synapse/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure Synapse Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/sdk) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all) # Usage diff --git a/sdk/template/azure-template/CHANGELOG.md b/sdk/template/azure-template/CHANGELOG.md index 39cbf1f691c6..c85f69aeddd9 100644 --- a/sdk/template/azure-template/CHANGELOG.md +++ b/sdk/template/azure-template/CHANGELOG.md @@ -1,5 +1,8 @@ # Release History +## 0.0.12 (Unreleased) +- Test a successful Release + ## 0.0.7 (2020-07-02) - Test a successful Release diff --git a/sdk/template/azure-template/README.md b/sdk/template/azure-template/README.md index 7bb29f01a285..92c7ca73c592 100644 --- a/sdk/template/azure-template/README.md +++ b/sdk/template/azure-template/README.md @@ -10,7 +10,7 @@ For a more complete set of Azure libraries, see https://aka.ms/azsdk/python/all # Getting started -For a rich example of a well formatted readme, please check [here.](https://github.com/Azure/azure-sdk/blob/master/docs/README-TEMPLATE.md) In addition, this is an [example readme](https://github.com/Azure/azure-sdk/blob/master/docs/README-EXAMPLE.md) that should be emulated. Note that the top-level sections in this template align with that of the [template.](https://github.com/Azure/azure-sdk/blob/master/docs/README-TEMPLATE.md) +For a rich example of a well formatted readme, please check [here.](https://github.com/Azure/azure-sdk/blob/master/docs/policies/README-TEMPLATE.md) In addition, this is an [example readme](https://github.com/Azure/azure-sdk/blob/master/docs/policies/README-EXAMPLE.md) that should be emulated. Note that the top-level sections in this template align with that of the [template.](https://github.com/Azure/azure-sdk/blob/master/docs/policies/README-TEMPLATE.md) # Key concepts diff --git a/sdk/template/azure-template/azure/template/_version.py b/sdk/template/azure-template/azure/template/_version.py index 61dc99b21913..8fb7d48af3e3 100644 --- a/sdk/template/azure-template/azure/template/_version.py +++ b/sdk/template/azure-template/azure/template/_version.py @@ -1,2 +1,2 @@ # matches SEMVER -VERSION = "0.0.7" \ No newline at end of file +VERSION = "0.0.12" \ No newline at end of file diff --git a/sdk/template/azure-template/sdk_packaging.toml b/sdk/template/azure-template/sdk_packaging.toml index 0d4f9aa5f7d1..901bc8ccbfa6 100644 --- a/sdk/template/azure-template/sdk_packaging.toml +++ b/sdk/template/azure-template/sdk_packaging.toml @@ -1,9 +1,2 @@ [packaging] auto_update = false -package_name = "azure-template" -package_pprint_name = "Template Package" -is_stable = false -is_arm = false - -# Package owners should uncomment and set this doc id. -# package_doc_id = "" diff --git a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md index 6bff5df4c231..aba4ba35e2c9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md +++ b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md @@ -1,13 +1,18 @@ # Release History -## 1.0.1 (Unreleased) +## 5.0.1 (Unreleased) **New features** - -- Adding support for the service's v3.1-preview.1 API. The default API version is v3.0, but pass in "v3.1-preview.1" as the value for `api_version` when creating your client. +- We are now targeting the service's v3.1-preview.1 API as the default. If you would like to still use version v3.0 of the service, +pass in `v3.0` to the kwarg `api_version` when creating your TextAnalyticsClient +- We have added an API `recognize_pii_entities` which returns entities containing personal information for a batch of documents. Only available for API version v3.1-preview.1 and up. - We now have added support for opinion mining. To use this feature, you need to make sure you are using the service's v3.1-preview.1 API. To get this support pass `mine_opinions` as True when calling the `analyze_sentiment` endpoint +## 5.0.0 (2020-07-27) + +- Re-release of GA version 1.0.0 with an updated version + ## 1.0.0 (2020-06-09) - First stable release of the azure-ai-textanalytics package. Targets the service's v3.0 API. diff --git a/sdk/textanalytics/azure-ai-textanalytics/README.md b/sdk/textanalytics/azure-ai-textanalytics/README.md index caf4dc27f711..135d48dca39c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/README.md @@ -4,6 +4,7 @@ Text Analytics is a cloud-based service that provides advanced natural language * Sentiment Analysis * Named Entity Recognition * Linked Entity Recognition +* Personally Identifiable Information (PII) Entity Recognition * Language Detection * Key Phrase Extraction @@ -184,6 +185,7 @@ The following section provides several code snippets covering some of the most c * [Analyze Sentiment](#analyze-sentiment "Analyze sentiment") * [Recognize Entities](#recognize-entities "Recognize entities") * [Recognize Linked Entities](#recognize-linked-entities "Recognize linked entities") +* [Recognize PII Entities](#recognize-pii-entities "Recognize pii entities") * [Extract Key Phrases](#extract-key-phrases "Extract key phrases") * [Detect Language](#detect-language "Detect language") @@ -290,6 +292,35 @@ The returned response is a heterogeneous list of result and error objects: list[ Please refer to the service documentation for a conceptual discussion of [entity linking][linked_entity_recognition] and [supported types][linked_entities_categories]. +### Recognize PII entities +[recognize_pii_entities][recognize_pii_entities] recognizes and categorizes Personally Identifiable Information (PII) entities in its input text, such as +Social Security Numbers, bank account information, credit card numbers, and more. This endpoint is only available for v3.1-preview.1 and up. + +```python +from azure.core.credentials import AzureKeyCredential +from azure.ai.textanalytics import TextAnalyticsClient, ApiVersion + +credential = AzureKeyCredential("") +endpoint="https://.api.cognitive.microsoft.com/" + +text_analytics_client = TextAnalyticsClient(endpoint, credential) + +documents = [ + "The employee's SSN is 859-98-0987.", + "The employee's phone number is 555-555-5555." +] +response = text_analytics_client.recognize_pii_entities(documents, language="en") +result = [doc for doc in response if not doc.is_error] +for doc in result: + for entity in doc.entities: + print("Entity: \t", entity.text, "\tCategory: \t", entity.category, + "\tConfidence Score: \t", entity.confidence_score) +``` + +The returned response is a heterogeneous list of result and error objects: list[[RecognizePiiEntitiesResult][recognize_pii_entities_result], [DocumentError][document_error]] + +Please refer to the service documentation for [supported PII entity types][pii_entity_categories]. + ### Extract key phrases [extract_key_phrases][extract_key_phrases] determines the main talking points in its input text. For example, for the input text "The food was delicious and there were wonderful staff", the API returns: "food" and "wonderful staff". @@ -412,6 +443,7 @@ Authenticate the client with a Cognitive Services/Text Analytics API key or a to In a batch of documents: * Analyze sentiment: [sample_analyze_sentiment.py][analyze_sentiment_sample] ([async version][analyze_sentiment_sample_async]) * Recognize entities: [sample_recognize_entities.py][recognize_entities_sample] ([async version][recognize_entities_sample_async]) +* Recognize personally identifiable information: [sample_recognize_pii_entities.py](`https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/textanalytics/azure-ai-textanalytics/samples/sample_recognize_pii_entities.py`)([async version](`https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_recognize_pii_entities_async.py`)) * Recognize linked entities: [sample_recognize_linked_entities.py][recognize_linked_entities_sample] ([async version][recognize_linked_entities_sample_async]) * Extract key phrases: [sample_extract_key_phrases.py][extract_key_phrases_sample] ([async version][extract_key_phrases_sample_async]) * Detect language: [sample_detect_language.py][detect_language_sample] ([async version][detect_language_sample_async]) @@ -458,6 +490,7 @@ This project has adopted the [Microsoft Open Source Code of Conduct][code_of_con [document_error]: https://aka.ms/azsdk-python-textanalytics-documenterror [detect_language_result]: https://aka.ms/azsdk-python-textanalytics-detectlanguageresult [recognize_entities_result]: https://aka.ms/azsdk-python-textanalytics-recognizeentitiesresult +[recognize_pii_entities_result]: https://aka.ms/azsdk-python-textanalytics-recognizepiientitiesresult [recognize_linked_entities_result]: https://aka.ms/azsdk-python-textanalytics-recognizelinkedentitiesresult [analyze_sentiment_result]: https://aka.ms/azsdk-python-textanalytics-analyzesentimentresult [extract_key_phrases_result]: https://aka.ms/azsdk-python-textanalytics-extractkeyphrasesresult @@ -467,6 +500,7 @@ This project has adopted the [Microsoft Open Source Code of Conduct][code_of_con [analyze_sentiment]: https://aka.ms/azsdk-python-textanalytics-analyzesentiment [recognize_entities]: https://aka.ms/azsdk-python-textanalytics-recognizeentities +[recognize_pii_entities]: https://aka.ms/azsdk-python-textanalytics-recognizepiientities [recognize_linked_entities]: https://aka.ms/azsdk-python-textanalytics-recognizelinkedentities [extract_key_phrases]: https://aka.ms/azsdk-python-textanalytics-extractkeyphrases [detect_language]: https://aka.ms/azsdk-python-textanalytics-detectlanguage @@ -477,6 +511,7 @@ This project has adopted the [Microsoft Open Source Code of Conduct][code_of_con [key_phrase_extraction]: https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-keyword-extraction [linked_entities_categories]: https://docs.microsoft.com/azure/cognitive-services/text-analytics/named-entity-types?tabs=general [linked_entity_recognition]: https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-entity-linking +[pii_entity_categories]: https://docs.microsoft.com/azure/cognitive-services/text-analytics/named-entity-types?tabs=personal [named_entity_recognition]: https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-entity-linking [named_entity_categories]: https://docs.microsoft.com/azure/cognitive-services/text-analytics/named-entity-types?tabs=general diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py index ae973a7f15d2..bde288eb0cf6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py @@ -6,7 +6,7 @@ from ._text_analytics_client import TextAnalyticsClient from ._version import VERSION -from ._multiapi import ApiVersion +from ._base_client import ApiVersion from ._models import ( DetectLanguageInput, TextDocumentInput, @@ -29,6 +29,8 @@ MinedOpinion, AspectSentiment, OpinionSentiment, + RecognizePiiEntitiesResult, + PiiEntity, ) __all__ = [ @@ -55,6 +57,8 @@ 'MinedOpinion', 'AspectSentiment', 'OpinionSentiment', + 'RecognizePiiEntitiesResult', + 'PiiEntity', ] __version__ = VERSION diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_base_client.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_base_client.py index 98d93e3785e2..7f12d85dac71 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_base_client.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_base_client.py @@ -3,12 +3,19 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ - +from enum import Enum from azure.core.pipeline.policies import AzureKeyCredentialPolicy from azure.core.credentials import AzureKeyCredential +from ._generated import TextAnalyticsClient as _TextAnalyticsClient from ._policies import TextAnalyticsResponseHookPolicy from ._user_agent import USER_AGENT -from ._multiapi import load_generated_api, ApiVersion + +class ApiVersion(str, Enum): + """Text Analytics API versions supported by this package""" + + #: this is the default version + V3_1_PREVIEW_1 = "v3.1-preview.1" + V3_0 = "v3.0" def _authentication_policy(credential): authentication_policy = None @@ -26,11 +33,10 @@ def _authentication_policy(credential): class TextAnalyticsClientBase(object): def __init__(self, endpoint, credential, **kwargs): - self._api_version = kwargs.pop("api_version", ApiVersion.V3_0) - _TextAnalyticsClient = load_generated_api(self._api_version) self._client = _TextAnalyticsClient( endpoint=endpoint, credential=credential, + api_version=kwargs.pop("api_version", ApiVersion.V3_1_PREVIEW_1), sdk_moniker=USER_AGENT, authentication_policy=_authentication_policy(credential), custom_hook_policy=TextAnalyticsResponseHookPolicy(**kwargs), diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/__init__.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/__init__.py index 8066e1dcc2fd..ca973ce68900 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/__init__.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/__init__.py @@ -1,5 +1,16 @@ # coding=utf-8 -# ------------------------------------ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -# ------------------------------------ \ No newline at end of file +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._text_analytics_client import TextAnalyticsClient +__all__ = ['TextAnalyticsClient'] + +try: + from ._patch import patch_sdk # type: ignore + patch_sdk() +except ImportError: + pass diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_configuration.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_configuration.py new file mode 100644 index 000000000000..9d8c2be5eb49 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_configuration.py @@ -0,0 +1,66 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +from typing import Any + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +from ._version import VERSION + + +class TextAnalyticsClientConfiguration(Configuration): + """Configuration for TextAnalyticsClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param endpoint: Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com). + :type endpoint: str + """ + + def __init__( + self, + credential, # type: "TokenCredential" + endpoint, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if endpoint is None: + raise ValueError("Parameter 'endpoint' must not be None.") + super(TextAnalyticsClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.endpoint = endpoint + self.credential_scopes = ['https://cognitiveservices.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'azure-ai-textanalytics/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_operations_mixin.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_operations_mixin.py new file mode 100644 index 000000000000..b54f150a56d9 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_operations_mixin.py @@ -0,0 +1,270 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +from msrest import Serializer, Deserializer +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, List, Optional, TypeVar + + +class TextAnalyticsClientOperationsMixin(object): + + def entities_linking( + self, + documents, # type: List["models.MultiLanguageInput"] + model_version=None, # type: Optional[str] + show_stats=None, # type: Optional[bool] + **kwargs # type: Any + ): + """Linked entities from a well-known knowledge base. + + The API returns a list of recognized entities with links to a well-known knowledge base. See + the :code:`Supported languages in Text Analytics API` for + the list of enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EntityLinkingResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.EntityLinkingResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('entities_linking') + if api_version == 'v3.0': + from .v3_0.operations import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from .v3_1_preview_1.operations import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return mixin_instance.entities_linking(documents, model_version, show_stats, **kwargs) + + def entities_recognition_general( + self, + documents, # type: List["models.MultiLanguageInput"] + model_version=None, # type: Optional[str] + show_stats=None, # type: Optional[bool] + **kwargs # type: Any + ): + """Named Entity Recognition. + + The API returns a list of general named entities in a given document. For the list of supported + entity types, check :code:`Supported Entity Types in Text + Analytics API`. See the :code:`Supported languages in Text + Analytics API` for the list of enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EntitiesResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.EntitiesResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('entities_recognition_general') + if api_version == 'v3.0': + from .v3_0.operations import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from .v3_1_preview_1.operations import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return mixin_instance.entities_recognition_general(documents, model_version, show_stats, **kwargs) + + def entities_recognition_pii( + self, + documents, # type: List["models.MultiLanguageInput"] + model_version=None, # type: Optional[str] + show_stats=None, # type: Optional[bool] + domain=None, # type: Optional[str] + **kwargs # type: Any + ): + """Entities containing personal information. + + The API returns a list of entities with personal information (\"SSN\", \"Bank Account\" etc) in + the document. For the list of supported entity types, check :code:`Supported Entity Types in Text Analytics API`. See the + :code:`Supported languages in Text Analytics API` for the + list of enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :param domain: (Optional) if set to 'PHI', response will contain only PHI entities. + :type domain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EntitiesResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.EntitiesResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('entities_recognition_pii') + if api_version == 'v3.1-preview.1': + from .v3_1_preview_1.operations import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return mixin_instance.entities_recognition_pii(documents, model_version, show_stats, domain, **kwargs) + + def key_phrases( + self, + documents, # type: List["models.MultiLanguageInput"] + model_version=None, # type: Optional[str] + show_stats=None, # type: Optional[bool] + **kwargs # type: Any + ): + """Key Phrases. + + The API returns a list of strings denoting the key phrases in the input text. See the :code:`Supported languages in Text Analytics API` for the list of + enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyPhraseResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.KeyPhraseResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('key_phrases') + if api_version == 'v3.0': + from .v3_0.operations import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from .v3_1_preview_1.operations import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return mixin_instance.key_phrases(documents, model_version, show_stats, **kwargs) + + def languages( + self, + documents, # type: List["models.LanguageInput"] + model_version=None, # type: Optional[str] + show_stats=None, # type: Optional[bool] + **kwargs # type: Any + ): + """Detect Language. + + The API returns the detected language and a numeric score between 0 and 1. Scores close to 1 + indicate 100% certainty that the identified language is true. See the :code:`Supported languages in Text Analytics API` for the list of + enabled languages. + + :param documents: + :type documents: list[~azure.ai.textanalytics.v3_0.models.LanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: LanguageResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.LanguageResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('languages') + if api_version == 'v3.0': + from .v3_0.operations import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from .v3_1_preview_1.operations import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return mixin_instance.languages(documents, model_version, show_stats, **kwargs) + + def sentiment( + self, + documents, # type: List["models.MultiLanguageInput"] + model_version=None, # type: Optional[str] + show_stats=None, # type: Optional[bool] + **kwargs # type: Any + ): + """Sentiment. + + The API returns a sentiment prediction, as well as sentiment scores for each sentiment class + (Positive, Negative, and Neutral) for the document and each sentence within it. See the + :code:`Supported languages in Text Analytics API` for the + list of enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SentimentResponse, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.SentimentResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('sentiment') + if api_version == 'v3.0': + from .v3_0.operations import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from .v3_1_preview_1.operations import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return mixin_instance.sentiment(documents, model_version, show_stats, **kwargs) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_text_analytics_client.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_text_analytics_client.py new file mode 100644 index 000000000000..3f15dad24caf --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_text_analytics_client.py @@ -0,0 +1,103 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core import PipelineClient +from msrest import Serializer, Deserializer + +from azure.profiles import KnownProfiles, ProfileDefinition +from azure.profiles.multiapiclient import MultiApiClientMixin +from ._configuration import TextAnalyticsClientConfiguration +from ._operations_mixin import TextAnalyticsClientOperationsMixin +class _SDKClient(object): + def __init__(self, *args, **kwargs): + """This is a fake class to support current implemetation of MultiApiClientMixin." + Will be removed in final version of multiapi azure-core based client + """ + pass + +class TextAnalyticsClient(TextAnalyticsClientOperationsMixin, MultiApiClientMixin, _SDKClient): + """The Text Analytics API is a suite of text analytics web services built with best-in-class Microsoft machine learning algorithms. The API can be used to analyze unstructured text for tasks such as sentiment analysis, key phrase extraction and language detection. No training data is needed to use this API; just bring your text data. This API uses advanced natural language processing techniques to deliver best in class predictions. Further documentation can be found in https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview. + + This ready contains multiple API versions, to help you deal with all of the Azure clouds + (Azure Stack, Azure Government, Azure China, etc.). + By default, it uses the latest API version available on public Azure. + For production, you should stick to a particular api-version and/or profile. + The profile sets a mapping between an operation group and its API version. + The api-version parameter sets the default API version if the operation + group is not described in the profile. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param endpoint: Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com). + :type endpoint: str + :param str api_version: API version to use if no profile is provided, or if + missing in profile. + :param profile: A profile definition, from KnownProfiles to dict. + :type profile: azure.profiles.KnownProfiles + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + DEFAULT_API_VERSION = 'v3.0' + _PROFILE_TAG = "azure.ai.textanalytics.TextAnalyticsClient" + LATEST_PROFILE = ProfileDefinition({ + _PROFILE_TAG: { + None: DEFAULT_API_VERSION, + }}, + _PROFILE_TAG + " latest" + ) + + def __init__( + self, + credential, # type: "TokenCredential" + endpoint, # type: str + api_version=None, + profile=KnownProfiles.default, + **kwargs # type: Any + ): + if api_version == 'v3.0': + base_url = '{Endpoint}/text/analytics/v3.0' + elif api_version == 'v3.1-preview.1': + base_url = '{Endpoint}/text/analytics/v3.1-preview.1' + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + self._config = TextAnalyticsClientConfiguration(credential, endpoint, **kwargs) + self._client = PipelineClient(base_url=base_url, config=self._config, **kwargs) + super(TextAnalyticsClient, self).__init__( + api_version=api_version, + profile=profile + ) + + @classmethod + def _models_dict(cls, api_version): + return {k: v for k, v in cls.models(api_version).__dict__.items() if isinstance(v, type)} + + @classmethod + def models(cls, api_version=DEFAULT_API_VERSION): + """Module depends on the API version: + + * v3.0: :mod:`v3_0.models` + * v3.1-preview.1: :mod:`v3_1_preview_1.models` + """ + if api_version == 'v3.0': + from .v3_0 import models + return models + elif api_version == 'v3.1-preview.1': + from .v3_1_preview_1 import models + return models + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + + def close(self): + self._client.close() + def __enter__(self): + self._client.__enter__() + return self + def __exit__(self, *exc_details): + self._client.__exit__(*exc_details) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_version.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_version.py new file mode 100644 index 000000000000..a30a458f8b5b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/_version.py @@ -0,0 +1,8 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +VERSION = "0.1.0" \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/__init__.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/__init__.py new file mode 100644 index 000000000000..ffe1820f1f27 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._text_analytics_client_async import TextAnalyticsClient +__all__ = ['TextAnalyticsClient'] diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_configuration_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_configuration_async.py new file mode 100644 index 000000000000..bb11db12b46f --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_configuration_async.py @@ -0,0 +1,64 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +from typing import Any + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +from .._version import VERSION + + +class TextAnalyticsClientConfiguration(Configuration): + """Configuration for TextAnalyticsClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param endpoint: Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com). + :type endpoint: str + """ + + def __init__( + self, + credential, # type: "AsyncTokenCredential" + endpoint, # type: str + **kwargs # type: Any + ) -> None: + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if endpoint is None: + raise ValueError("Parameter 'endpoint' must not be None.") + super(TextAnalyticsClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.endpoint = endpoint + self.credential_scopes = ['https://cognitiveservices.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'azure-ai-textanalytics/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_operations_mixin_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_operations_mixin_async.py new file mode 100644 index 000000000000..f0c0104f1145 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_operations_mixin_async.py @@ -0,0 +1,266 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +from msrest import Serializer, Deserializer +from typing import Any, Callable, Dict, Generic, List, Optional, TypeVar +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest + + +class TextAnalyticsClientOperationsMixin(object): + + async def entities_linking( + self, + documents: List["models.MultiLanguageInput"], + model_version: Optional[str] = None, + show_stats: Optional[bool] = None, + **kwargs + ) -> "models.EntityLinkingResult": + """Linked entities from a well-known knowledge base. + + The API returns a list of recognized entities with links to a well-known knowledge base. See + the :code:`Supported languages in Text Analytics API` for + the list of enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EntityLinkingResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.EntityLinkingResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('entities_linking') + if api_version == 'v3.0': + from ..v3_0.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from ..v3_1_preview_1.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return await mixin_instance.entities_linking(documents, model_version, show_stats, **kwargs) + + async def entities_recognition_general( + self, + documents: List["models.MultiLanguageInput"], + model_version: Optional[str] = None, + show_stats: Optional[bool] = None, + **kwargs + ) -> "models.EntitiesResult": + """Named Entity Recognition. + + The API returns a list of general named entities in a given document. For the list of supported + entity types, check :code:`Supported Entity Types in Text + Analytics API`. See the :code:`Supported languages in Text + Analytics API` for the list of enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EntitiesResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.EntitiesResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('entities_recognition_general') + if api_version == 'v3.0': + from ..v3_0.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from ..v3_1_preview_1.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return await mixin_instance.entities_recognition_general(documents, model_version, show_stats, **kwargs) + + async def entities_recognition_pii( + self, + documents: List["models.MultiLanguageInput"], + model_version: Optional[str] = None, + show_stats: Optional[bool] = None, + domain: Optional[str] = None, + **kwargs + ) -> "models.EntitiesResult": + """Entities containing personal information. + + The API returns a list of entities with personal information (\"SSN\", \"Bank Account\" etc) in + the document. For the list of supported entity types, check :code:`Supported Entity Types in Text Analytics API`. See the + :code:`Supported languages in Text Analytics API` for the + list of enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :param domain: (Optional) if set to 'PHI', response will contain only PHI entities. + :type domain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EntitiesResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.EntitiesResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('entities_recognition_pii') + if api_version == 'v3.1-preview.1': + from ..v3_1_preview_1.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return await mixin_instance.entities_recognition_pii(documents, model_version, show_stats, domain, **kwargs) + + async def key_phrases( + self, + documents: List["models.MultiLanguageInput"], + model_version: Optional[str] = None, + show_stats: Optional[bool] = None, + **kwargs + ) -> "models.KeyPhraseResult": + """Key Phrases. + + The API returns a list of strings denoting the key phrases in the input text. See the :code:`Supported languages in Text Analytics API` for the list of + enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyPhraseResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.KeyPhraseResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('key_phrases') + if api_version == 'v3.0': + from ..v3_0.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from ..v3_1_preview_1.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return await mixin_instance.key_phrases(documents, model_version, show_stats, **kwargs) + + async def languages( + self, + documents: List["models.LanguageInput"], + model_version: Optional[str] = None, + show_stats: Optional[bool] = None, + **kwargs + ) -> "models.LanguageResult": + """Detect Language. + + The API returns the detected language and a numeric score between 0 and 1. Scores close to 1 + indicate 100% certainty that the identified language is true. See the :code:`Supported languages in Text Analytics API` for the list of + enabled languages. + + :param documents: + :type documents: list[~azure.ai.textanalytics.v3_0.models.LanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: LanguageResult, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.LanguageResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('languages') + if api_version == 'v3.0': + from ..v3_0.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from ..v3_1_preview_1.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return await mixin_instance.languages(documents, model_version, show_stats, **kwargs) + + async def sentiment( + self, + documents: List["models.MultiLanguageInput"], + model_version: Optional[str] = None, + show_stats: Optional[bool] = None, + **kwargs + ) -> "models.SentimentResponse": + """Sentiment. + + The API returns a sentiment prediction, as well as sentiment scores for each sentiment class + (Positive, Negative, and Neutral) for the document and each sentence within it. See the + :code:`Supported languages in Text Analytics API` for the + list of enabled languages. + + :param documents: The set of documents to process as part of this batch. + :type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput] + :param model_version: (Optional) This value indicates which model will be used for scoring. If + a model-version is not specified, the API should default to the latest, non-preview version. + :type model_version: str + :param show_stats: (Optional) if set to true, response will contain input and document level + statistics. + :type show_stats: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SentimentResponse, or the result of cls(response) + :rtype: ~azure.ai.textanalytics.v3_0.models.SentimentResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + api_version = self._get_api_version('sentiment') + if api_version == 'v3.0': + from ..v3_0.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + elif api_version == 'v3.1-preview.1': + from ..v3_1_preview_1.aio.operations_async import TextAnalyticsClientOperationsMixin as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + mixin_instance = OperationClass() + mixin_instance._client = self._client + mixin_instance._config = self._config + mixin_instance._serialize = Serializer(self._models_dict(api_version)) + mixin_instance._deserialize = Deserializer(self._models_dict(api_version)) + return await mixin_instance.sentiment(documents, model_version, show_stats, **kwargs) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_text_analytics_client_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_text_analytics_client_async.py new file mode 100644 index 000000000000..6637fb76e151 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/aio/_text_analytics_client_async.py @@ -0,0 +1,103 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core import AsyncPipelineClient +from msrest import Serializer, Deserializer + +from azure.profiles import KnownProfiles, ProfileDefinition +from azure.profiles.multiapiclient import MultiApiClientMixin +from ._configuration_async import TextAnalyticsClientConfiguration +from ._operations_mixin_async import TextAnalyticsClientOperationsMixin +class _SDKClient(object): + def __init__(self, *args, **kwargs): + """This is a fake class to support current implemetation of MultiApiClientMixin." + Will be removed in final version of multiapi azure-core based client + """ + pass + +class TextAnalyticsClient(TextAnalyticsClientOperationsMixin, MultiApiClientMixin, _SDKClient): + """The Text Analytics API is a suite of text analytics web services built with best-in-class Microsoft machine learning algorithms. The API can be used to analyze unstructured text for tasks such as sentiment analysis, key phrase extraction and language detection. No training data is needed to use this API; just bring your text data. This API uses advanced natural language processing techniques to deliver best in class predictions. Further documentation can be found in https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview. + + This ready contains multiple API versions, to help you deal with all of the Azure clouds + (Azure Stack, Azure Government, Azure China, etc.). + By default, it uses the latest API version available on public Azure. + For production, you should stick to a particular api-version and/or profile. + The profile sets a mapping between an operation group and its API version. + The api-version parameter sets the default API version if the operation + group is not described in the profile. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param endpoint: Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com). + :type endpoint: str + :param str api_version: API version to use if no profile is provided, or if + missing in profile. + :param profile: A profile definition, from KnownProfiles to dict. + :type profile: azure.profiles.KnownProfiles + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + DEFAULT_API_VERSION = 'v3.0' + _PROFILE_TAG = "azure.ai.textanalytics.TextAnalyticsClient" + LATEST_PROFILE = ProfileDefinition({ + _PROFILE_TAG: { + None: DEFAULT_API_VERSION, + }}, + _PROFILE_TAG + " latest" + ) + + def __init__( + self, + credential, # type: "AsyncTokenCredential" + endpoint, # type: str + api_version=None, + profile=KnownProfiles.default, + **kwargs # type: Any + ) -> None: + if api_version == 'v3.0': + base_url = '{Endpoint}/text/analytics/v3.0' + elif api_version == 'v3.1-preview.1': + base_url = '{Endpoint}/text/analytics/v3.1-preview.1' + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + self._config = TextAnalyticsClientConfiguration(credential, endpoint, **kwargs) + self._client = AsyncPipelineClient(base_url=base_url, config=self._config, **kwargs) + super(TextAnalyticsClient, self).__init__( + api_version=api_version, + profile=profile + ) + + @classmethod + def _models_dict(cls, api_version): + return {k: v for k, v in cls.models(api_version).__dict__.items() if isinstance(v, type)} + + @classmethod + def models(cls, api_version=DEFAULT_API_VERSION): + """Module depends on the API version: + + * v3.0: :mod:`v3_0.models` + * v3.1-preview.1: :mod:`v3_1_preview_1.models` + """ + if api_version == 'v3.0': + from ..v3_0 import models + return models + elif api_version == 'v3.1-preview.1': + from ..v3_1_preview_1 import models + return models + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + + async def close(self): + await self._client.close() + async def __aenter__(self): + await self._client.__aenter__() + return self + async def __aexit__(self, *exc_details): + await self._client.__aexit__(*exc_details) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/models.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/models.py new file mode 100644 index 000000000000..2a2491bad85a --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/models.py @@ -0,0 +1,7 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from .v3_0.models import * diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/py.typed b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/py.typed new file mode 100644 index 000000000000..e5aff4f83af8 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/_metadata.json b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/_metadata.json new file mode 100644 index 000000000000..c3506558ce44 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/_metadata.json @@ -0,0 +1,117 @@ +{ + "chosen_version": "v3.0", + "total_api_version_list": ["v3.0"], + "client": { + "name": "TextAnalyticsClient", + "filename": "_text_analytics_client", + "description": "The Text Analytics API is a suite of text analytics web services built with best-in-class Microsoft machine learning algorithms. The API can be used to analyze unstructured text for tasks such as sentiment analysis, key phrase extraction and language detection. No training data is needed to use this API; just bring your text data. This API uses advanced natural language processing techniques to deliver best in class predictions. Further documentation can be found in https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview.", + "base_url": null, + "custom_base_url": "\u0027{Endpoint}/text/analytics/v3.0\u0027", + "azure_arm": false + }, + "global_parameters": { + "sync_method": { + "credential": { + "method_signature": "credential, # type: \"TokenCredential\"", + "description": "Credential needed for the client to connect to Azure.", + "docstring_type": "~azure.core.credentials.TokenCredential", + "required": true + }, + "endpoint": { + "method_signature": "endpoint, # type: str", + "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com).", + "docstring_type": "str", + "required": true + } + }, + "async_method": { + "credential": { + "method_signature": "credential, # type: \"AsyncTokenCredential\"", + "description": "Credential needed for the client to connect to Azure.", + "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", + "required": true + }, + "endpoint": { + "method_signature": "endpoint, # type: str", + "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com).", + "docstring_type": "str", + "required": true + } + }, + "constant": { + }, + "call": "credential, endpoint" + }, + "config": { + "credential": true, + "credential_scopes": ["https://cognitiveservices.azure.com/.default"], + "credential_default_policy_type": "BearerTokenCredentialPolicy", + "credential_default_policy_type_has_async_version": true + }, + "operation_groups": { + }, + "operation_mixins": { + "entities_recognition_general" : { + "sync": { + "signature": "def entities_recognition_general(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Named Entity Recognition.\n\nThe API returns a list of general named entities in a given document. For the list of supported\nentity types, check :code:`\u003ca href=\"https://aka.ms/taner\"\u003eSupported Entity Types in Text\nAnalytics API\u003c/a\u003e`. See the :code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text\nAnalytics API\u003c/a\u003e` for the list of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntitiesResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.EntitiesResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def entities_recognition_general(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.EntitiesResult\":\n", + "doc": "\"\"\"Named Entity Recognition.\n\nThe API returns a list of general named entities in a given document. For the list of supported\nentity types, check :code:`\u003ca href=\"https://aka.ms/taner\"\u003eSupported Entity Types in Text\nAnalytics API\u003c/a\u003e`. See the :code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text\nAnalytics API\u003c/a\u003e` for the list of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntitiesResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.EntitiesResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + }, + "entities_linking" : { + "sync": { + "signature": "def entities_linking(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Linked entities from a well-known knowledge base.\n\nThe API returns a list of recognized entities with links to a well-known knowledge base. See\nthe :code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for\nthe list of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntityLinkingResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.EntityLinkingResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def entities_linking(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.EntityLinkingResult\":\n", + "doc": "\"\"\"Linked entities from a well-known knowledge base.\n\nThe API returns a list of recognized entities with links to a well-known knowledge base. See\nthe :code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for\nthe list of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntityLinkingResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.EntityLinkingResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + }, + "key_phrases" : { + "sync": { + "signature": "def key_phrases(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Key Phrases.\n\nThe API returns a list of strings denoting the key phrases in the input text. See the :code:`\u003ca\nhref=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the list of\nenabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: KeyPhraseResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.KeyPhraseResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def key_phrases(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.KeyPhraseResult\":\n", + "doc": "\"\"\"Key Phrases.\n\nThe API returns a list of strings denoting the key phrases in the input text. See the :code:`\u003ca\nhref=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the list of\nenabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: KeyPhraseResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.KeyPhraseResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + }, + "languages" : { + "sync": { + "signature": "def languages(\n self,\n documents, # type: List[\"models.LanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Detect Language.\n\nThe API returns the detected language and a numeric score between 0 and 1. Scores close to 1\nindicate 100% certainty that the identified language is true. See the :code:`\u003ca\nhref=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the list of\nenabled languages.\n\n:param documents:\n:type documents: list[~azure.ai.textanalytics.v3_0.models.LanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: LanguageResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.LanguageResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def languages(\n self,\n documents: List[\"models.LanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.LanguageResult\":\n", + "doc": "\"\"\"Detect Language.\n\nThe API returns the detected language and a numeric score between 0 and 1. Scores close to 1\nindicate 100% certainty that the identified language is true. See the :code:`\u003ca\nhref=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the list of\nenabled languages.\n\n:param documents:\n:type documents: list[~azure.ai.textanalytics.v3_0.models.LanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: LanguageResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.LanguageResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + }, + "sentiment" : { + "sync": { + "signature": "def sentiment(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Sentiment.\n\nThe API returns a sentiment prediction, as well as sentiment scores for each sentiment class\n(Positive, Negative, and Neutral) for the document and each sentence within it. See the\n:code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the\nlist of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SentimentResponse, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.SentimentResponse\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def sentiment(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.SentimentResponse\":\n", + "doc": "\"\"\"Sentiment.\n\nThe API returns a sentiment prediction, as well as sentiment scores for each sentiment class\n(Positive, Negative, and Neutral) for the document and each sentence within it. See the\n:code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the\nlist of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_0.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SentimentResponse, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_0.models.SentimentResponse\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + } + }, + "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"List\", \"Optional\", \"TypeVar\"]}}}", + "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"List\", \"Optional\", \"TypeVar\"]}}}" +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/models/_models.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/models/_models.py index fb1572c0fca8..8ff54b7760c3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/models/_models.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/models/_models.py @@ -832,7 +832,7 @@ class SentenceSentiment(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param text: The sentence text. + :param text: Required. The sentence text. :type text: str :param sentiment: Required. The predicted Sentiment for the sentence. Possible values include: "positive", "neutral", "negative". @@ -847,6 +847,7 @@ class SentenceSentiment(msrest.serialization.Model): """ _validation = { + 'text': {'required': True}, 'sentiment': {'required': True}, 'confidence_scores': {'required': True}, 'offset': {'required': True}, @@ -866,7 +867,7 @@ def __init__( **kwargs ): super(SentenceSentiment, self).__init__(**kwargs) - self.text = kwargs.get('text', None) + self.text = kwargs['text'] self.sentiment = kwargs['sentiment'] self.confidence_scores = kwargs['confidence_scores'] self.offset = kwargs['offset'] diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/models/_models_py3.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/models/_models_py3.py index e00be3e2a7e8..80c27057d5b6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/models/_models_py3.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_0/models/_models_py3.py @@ -935,7 +935,7 @@ class SentenceSentiment(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param text: The sentence text. + :param text: Required. The sentence text. :type text: str :param sentiment: Required. The predicted Sentiment for the sentence. Possible values include: "positive", "neutral", "negative". @@ -950,6 +950,7 @@ class SentenceSentiment(msrest.serialization.Model): """ _validation = { + 'text': {'required': True}, 'sentiment': {'required': True}, 'confidence_scores': {'required': True}, 'offset': {'required': True}, @@ -967,11 +968,11 @@ class SentenceSentiment(msrest.serialization.Model): def __init__( self, *, + text: str, sentiment: Union[str, "SentenceSentimentValue"], confidence_scores: "SentimentConfidenceScorePerLabel", offset: int, length: int, - text: Optional[str] = None, **kwargs ): super(SentenceSentiment, self).__init__(**kwargs) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/_metadata.json b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/_metadata.json new file mode 100644 index 000000000000..f4ef29b8cd43 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/_metadata.json @@ -0,0 +1,129 @@ +{ + "chosen_version": "v3.1-preview.1", + "total_api_version_list": ["v3.1-preview.1"], + "client": { + "name": "TextAnalyticsClient", + "filename": "_text_analytics_client", + "description": "The Text Analytics API is a suite of text analytics web services built with best-in-class Microsoft machine learning algorithms. The API can be used to analyze unstructured text for tasks such as sentiment analysis, key phrase extraction and language detection. No training data is needed to use this API; just bring your text data. This API uses advanced natural language processing techniques to deliver best in class predictions. Further documentation can be found in https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview.", + "base_url": null, + "custom_base_url": "\u0027{Endpoint}/text/analytics/v3.1-preview.1\u0027", + "azure_arm": false + }, + "global_parameters": { + "sync_method": { + "credential": { + "method_signature": "credential, # type: \"TokenCredential\"", + "description": "Credential needed for the client to connect to Azure.", + "docstring_type": "~azure.core.credentials.TokenCredential", + "required": true + }, + "endpoint": { + "method_signature": "endpoint, # type: str", + "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com).", + "docstring_type": "str", + "required": true + } + }, + "async_method": { + "credential": { + "method_signature": "credential, # type: \"AsyncTokenCredential\"", + "description": "Credential needed for the client to connect to Azure.", + "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", + "required": true + }, + "endpoint": { + "method_signature": "endpoint, # type: str", + "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com).", + "docstring_type": "str", + "required": true + } + }, + "constant": { + }, + "call": "credential, endpoint" + }, + "config": { + "credential": true, + "credential_scopes": ["https://cognitiveservices.azure.com/.default"], + "credential_default_policy_type": "BearerTokenCredentialPolicy", + "credential_default_policy_type_has_async_version": true + }, + "operation_groups": { + }, + "operation_mixins": { + "entities_recognition_general" : { + "sync": { + "signature": "def entities_recognition_general(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Named Entity Recognition.\n\nThe API returns a list of general named entities in a given document. For the list of supported\nentity types, check :code:`\u003ca href=\"https://aka.ms/taner\"\u003eSupported Entity Types in Text\nAnalytics API\u003c/a\u003e`. See the :code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text\nAnalytics API\u003c/a\u003e` for the list of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntitiesResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.EntitiesResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def entities_recognition_general(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.EntitiesResult\":\n", + "doc": "\"\"\"Named Entity Recognition.\n\nThe API returns a list of general named entities in a given document. For the list of supported\nentity types, check :code:`\u003ca href=\"https://aka.ms/taner\"\u003eSupported Entity Types in Text\nAnalytics API\u003c/a\u003e`. See the :code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text\nAnalytics API\u003c/a\u003e` for the list of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntitiesResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.EntitiesResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + }, + "entities_recognition_pii" : { + "sync": { + "signature": "def entities_recognition_pii(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n domain=None, # type: Optional[str]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Entities containing personal information.\n\nThe API returns a list of entities with personal information (\\\"SSN\\\", \\\"Bank Account\\\" etc) in\nthe document. For the list of supported entity types, check :code:`\u003ca\nhref=\"https://aka.ms/tanerpii\"\u003eSupported Entity Types in Text Analytics API\u003c/a\u003e`. See the\n:code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the\nlist of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:param domain: (Optional) if set to \u0027PHI\u0027, response will contain only PHI entities.\n:type domain: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntitiesResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.EntitiesResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def entities_recognition_pii(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n domain: Optional[str] = None,\n **kwargs\n) -\u003e \"models.EntitiesResult\":\n", + "doc": "\"\"\"Entities containing personal information.\n\nThe API returns a list of entities with personal information (\\\"SSN\\\", \\\"Bank Account\\\" etc) in\nthe document. For the list of supported entity types, check :code:`\u003ca\nhref=\"https://aka.ms/tanerpii\"\u003eSupported Entity Types in Text Analytics API\u003c/a\u003e`. See the\n:code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the\nlist of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:param domain: (Optional) if set to \u0027PHI\u0027, response will contain only PHI entities.\n:type domain: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntitiesResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.EntitiesResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats, domain" + }, + "entities_linking" : { + "sync": { + "signature": "def entities_linking(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Linked entities from a well-known knowledge base.\n\nThe API returns a list of recognized entities with links to a well-known knowledge base. See\nthe :code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for\nthe list of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntityLinkingResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.EntityLinkingResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def entities_linking(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.EntityLinkingResult\":\n", + "doc": "\"\"\"Linked entities from a well-known knowledge base.\n\nThe API returns a list of recognized entities with links to a well-known knowledge base. See\nthe :code:`\u003ca href=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for\nthe list of enabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: EntityLinkingResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.EntityLinkingResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + }, + "key_phrases" : { + "sync": { + "signature": "def key_phrases(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Key Phrases.\n\nThe API returns a list of strings denoting the key phrases in the input text. See the :code:`\u003ca\nhref=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the list of\nenabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: KeyPhraseResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.KeyPhraseResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def key_phrases(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.KeyPhraseResult\":\n", + "doc": "\"\"\"Key Phrases.\n\nThe API returns a list of strings denoting the key phrases in the input text. See the :code:`\u003ca\nhref=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the list of\nenabled languages.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: KeyPhraseResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.KeyPhraseResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + }, + "languages" : { + "sync": { + "signature": "def languages(\n self,\n documents, # type: List[\"models.LanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Detect Language.\n\nThe API returns the detected language and a numeric score between 0 and 1. Scores close to 1\nindicate 100% certainty that the identified language is true. See the :code:`\u003ca\nhref=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the list of\nenabled languages.\n\n:param documents:\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.LanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: LanguageResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.LanguageResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def languages(\n self,\n documents: List[\"models.LanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.LanguageResult\":\n", + "doc": "\"\"\"Detect Language.\n\nThe API returns the detected language and a numeric score between 0 and 1. Scores close to 1\nindicate 100% certainty that the identified language is true. See the :code:`\u003ca\nhref=\"https://aka.ms/talangs\"\u003eSupported languages in Text Analytics API\u003c/a\u003e` for the list of\nenabled languages.\n\n:param documents:\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.LanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: LanguageResult, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.LanguageResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats" + }, + "sentiment" : { + "sync": { + "signature": "def sentiment(\n self,\n documents, # type: List[\"models.MultiLanguageInput\"]\n model_version=None, # type: Optional[str]\n show_stats=None, # type: Optional[bool]\n opinion_mining=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Sentiment.\n\nThe API returns a detailed sentiment analysis for the input text. The analysis is done in\nmultiple levels of granularity, start from the a document level, down to sentence and key terms\n(aspects) and opinions.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:param opinion_mining: (Optional) if set to true, response will contain input and document\n level statistics including aspect-based sentiment analysis results.\n:type opinion_mining: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SentimentResponse, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.SentimentResponse\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def sentiment(\n self,\n documents: List[\"models.MultiLanguageInput\"],\n model_version: Optional[str] = None,\n show_stats: Optional[bool] = None,\n opinion_mining: Optional[bool] = None,\n **kwargs\n) -\u003e \"models.SentimentResponse\":\n", + "doc": "\"\"\"Sentiment.\n\nThe API returns a detailed sentiment analysis for the input text. The analysis is done in\nmultiple levels of granularity, start from the a document level, down to sentence and key terms\n(aspects) and opinions.\n\n:param documents: The set of documents to process as part of this batch.\n:type documents: list[~azure.ai.textanalytics.v3_1_preview_1.models.MultiLanguageInput]\n:param model_version: (Optional) This value indicates which model will be used for scoring. If\n a model-version is not specified, the API should default to the latest, non-preview version.\n:type model_version: str\n:param show_stats: (Optional) if set to true, response will contain input and document level\n statistics.\n:type show_stats: bool\n:param opinion_mining: (Optional) if set to true, response will contain input and document\n level statistics including aspect-based sentiment analysis results.\n:type opinion_mining: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SentimentResponse, or the result of cls(response)\n:rtype: ~azure.ai.textanalytics.v3_1_preview_1.models.SentimentResponse\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "documents, model_version, show_stats, opinion_mining" + } + }, + "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"List\", \"Optional\", \"TypeVar\"]}}}", + "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"List\", \"Optional\", \"TypeVar\"]}}}" +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/models/_models.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/models/_models.py index 30ba7a3aca58..b410706fa998 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/models/_models.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/models/_models.py @@ -226,8 +226,8 @@ class DocumentLanguage(msrest.serialization.Model): :param id: Required. Unique, non-empty document identifier. :type id: str - :param detected_languages: Required. A list of extracted languages. - :type detected_languages: list[~azure.ai.textanalytics.v3_1_preview_1.models.DetectedLanguage] + :param detected_language: Required. Detected Language. + :type detected_language: ~azure.ai.textanalytics.v3_1_preview_1.models.DetectedLanguage :param warnings: Required. Warnings encountered while processing document. :type warnings: list[~azure.ai.textanalytics.v3_1_preview_1.models.TextAnalyticsWarning] :param statistics: if showStats=true was specified in the request this field will contain @@ -237,13 +237,13 @@ class DocumentLanguage(msrest.serialization.Model): _validation = { 'id': {'required': True}, - 'detected_languages': {'required': True}, + 'detected_language': {'required': True}, 'warnings': {'required': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, - 'detected_languages': {'key': 'detectedLanguages', 'type': '[DetectedLanguage]'}, + 'detected_language': {'key': 'detectedLanguage', 'type': 'DetectedLanguage'}, 'warnings': {'key': 'warnings', 'type': '[TextAnalyticsWarning]'}, 'statistics': {'key': 'statistics', 'type': 'DocumentStatistics'}, } @@ -254,7 +254,7 @@ def __init__( ): super(DocumentLanguage, self).__init__(**kwargs) self.id = kwargs['id'] - self.detected_languages = kwargs['detected_languages'] + self.detected_language = kwargs['detected_language'] self.warnings = kwargs['warnings'] self.statistics = kwargs.get('statistics', None) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/models/_models_py3.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/models/_models_py3.py index 26b402385095..34603e0aa18e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/models/_models_py3.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_generated/v3_1_preview_1/models/_models_py3.py @@ -253,8 +253,8 @@ class DocumentLanguage(msrest.serialization.Model): :param id: Required. Unique, non-empty document identifier. :type id: str - :param detected_languages: Required. A list of extracted languages. - :type detected_languages: list[~azure.ai.textanalytics.v3_1_preview_1.models.DetectedLanguage] + :param detected_language: Required. Detected Language. + :type detected_language: ~azure.ai.textanalytics.v3_1_preview_1.models.DetectedLanguage :param warnings: Required. Warnings encountered while processing document. :type warnings: list[~azure.ai.textanalytics.v3_1_preview_1.models.TextAnalyticsWarning] :param statistics: if showStats=true was specified in the request this field will contain @@ -264,13 +264,13 @@ class DocumentLanguage(msrest.serialization.Model): _validation = { 'id': {'required': True}, - 'detected_languages': {'required': True}, + 'detected_language': {'required': True}, 'warnings': {'required': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, - 'detected_languages': {'key': 'detectedLanguages', 'type': '[DetectedLanguage]'}, + 'detected_language': {'key': 'detectedLanguage', 'type': 'DetectedLanguage'}, 'warnings': {'key': 'warnings', 'type': '[TextAnalyticsWarning]'}, 'statistics': {'key': 'statistics', 'type': 'DocumentStatistics'}, } @@ -279,14 +279,14 @@ def __init__( self, *, id: str, - detected_languages: List["DetectedLanguage"], + detected_language: "DetectedLanguage", warnings: List["TextAnalyticsWarning"], statistics: Optional["DocumentStatistics"] = None, **kwargs ): super(DocumentLanguage, self).__init__(**kwargs) self.id = id - self.detected_languages = detected_languages + self.detected_language = detected_language self.warnings = warnings self.statistics = statistics diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py index 39f4f983c289..4790229c9266 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py @@ -106,7 +106,7 @@ class RecognizeEntitiesResult(DictMixin): :vartype entities: list[~azure.ai.textanalytics.CategorizedEntity] :ivar warnings: Warnings encountered while processing document. Results will still be returned - if there are warnings, but they may not be fully accurate. + if there are warnings, but they may not be fully accurate. :vartype warnings: list[~azure.ai.textanalytics.TextAnalyticsWarning] :ivar statistics: If show_stats=true was specified in the request this field will contain information about the document payload. @@ -128,6 +128,40 @@ def __repr__(self): .format(self.id, repr(self.entities), repr(self.warnings), repr(self.statistics), self.is_error)[:1024] +class RecognizePiiEntitiesResult(DictMixin): + """RecognizePiiEntitiesResult is a result object which contains + the recognized Personally Identifiable Information (PII) entities + from a particular document. + + :ivar str id: Unique, non-empty document identifier that matches the + document id that was passed in with the request. If not specified + in the request, an id is assigned for the document. + :ivar entities: Recognized PII entities in the document. + :vartype entities: + list[~azure.ai.textanalytics.PiiEntity] + :ivar warnings: Warnings encountered while processing document. Results will still be returned + if there are warnings, but they may not be fully accurate. + :vartype warnings: list[~azure.ai.textanalytics.TextAnalyticsWarning] + :ivar statistics: If show_stats=true was specified in the request this + field will contain information about the document payload. + :vartype statistics: + ~azure.ai.textanalytics.TextDocumentStatistics + :ivar bool is_error: Boolean check for error item when iterating over list of + results. Always False for an instance of a RecognizePiiEntitiesResult. + """ + + def __init__(self, **kwargs): + self.id = kwargs.get("id", None) + self.entities = kwargs.get("entities", None) + self.warnings = kwargs.get("warnings", []) + self.statistics = kwargs.get("statistics", None) + self.is_error = False + + def __repr__(self): + return "RecognizePiiEntitiesResult(id={}, entities={}, warnings={}, statistics={}, is_error={})" \ + .format(self.id, repr(self.entities), repr(self.warnings), repr(self.statistics), self.is_error)[:1024] + + class DetectLanguageResult(DictMixin): """DetectLanguageResult is a result object which contains the detected language of a particular document. @@ -139,7 +173,7 @@ class DetectLanguageResult(DictMixin): :ivar primary_language: The primary language detected in the document. :vartype primary_language: ~azure.ai.textanalytics.DetectedLanguage :ivar warnings: Warnings encountered while processing document. Results will still be returned - if there are warnings, but they may not be fully accurate. + if there are warnings, but they may not be fully accurate. :vartype warnings: list[~azure.ai.textanalytics.TextAnalyticsWarning] :ivar statistics: If show_stats=true was specified in the request this field will contain information about the document payload. @@ -197,6 +231,39 @@ def __repr__(self): self.text, self.category, self.subcategory, self.confidence_score )[:1024] +class PiiEntity(DictMixin): + """PiiEntity contains information about a Personally Identifiable + Information (PII) entity found in text. + + :ivar str text: Entity text as appears in the request. + :ivar str category: Entity category, such as Financial Account + Identification/Social Security Number/Phone Number, etc. + :ivar str subcategory: Entity subcategory, such as Credit Card/EU + Phone number/ABA Routing Numbers, etc. + :ivar float confidence_score: Confidence score between 0 and 1 of the extracted + entity. + """ + + def __init__(self, **kwargs): + self.text = kwargs.get('text', None) + self.category = kwargs.get('category', None) + self.subcategory = kwargs.get('subcategory', None) + self.confidence_score = kwargs.get('confidence_score', None) + + @classmethod + def _from_generated(cls, entity): + return cls( + text=entity.text, + category=entity.category, + subcategory=entity.subcategory, + confidence_score=entity.confidence_score, + ) + + def __repr__(self): + return "PiiEntity(text={}, category={}, subcategory={}, confidence_score={})".format( + self.text, self.category, self.subcategory, self.confidence_score + )[:1024] + class TextAnalyticsError(DictMixin): """TextAnalyticsError contains the error code, message, and @@ -278,7 +345,7 @@ class ExtractKeyPhrasesResult(DictMixin): in the input document. :vartype key_phrases: list[str] :ivar warnings: Warnings encountered while processing document. Results will still be returned - if there are warnings, but they may not be fully accurate. + if there are warnings, but they may not be fully accurate. :vartype warnings: list[~azure.ai.textanalytics.TextAnalyticsWarning] :ivar statistics: If show_stats=true was specified in the request this field will contain information about the document payload. @@ -312,7 +379,7 @@ class RecognizeLinkedEntitiesResult(DictMixin): :vartype entities: list[~azure.ai.textanalytics.LinkedEntity] :ivar warnings: Warnings encountered while processing document. Results will still be returned - if there are warnings, but they may not be fully accurate. + if there are warnings, but they may not be fully accurate. :vartype warnings: list[~azure.ai.textanalytics.TextAnalyticsWarning] :ivar statistics: If show_stats=true was specified in the request this field will contain information about the document payload. @@ -348,7 +415,7 @@ class AnalyzeSentimentResult(DictMixin): 'neutral', 'negative', 'mixed' :vartype sentiment: str :ivar warnings: Warnings encountered while processing document. Results will still be returned - if there are warnings, but they may not be fully accurate. + if there are warnings, but they may not be fully accurate. :vartype warnings: list[~azure.ai.textanalytics.TextAnalyticsWarning] :ivar statistics: If show_stats=true was specified in the request this field will contain information about the document payload. @@ -433,7 +500,7 @@ def __init__(self, **kwargs): def __getattr__(self, attr): result_set = set() result_set.update( - RecognizeEntitiesResult().keys() + RecognizeEntitiesResult().keys() + RecognizePiiEntitiesResult().keys() + DetectLanguageResult().keys() + RecognizeLinkedEntitiesResult().keys() + AnalyzeSentimentResult().keys() + ExtractKeyPhrasesResult().keys() ) @@ -661,7 +728,7 @@ def _from_generated(cls, sentence, results): confidence_scores=SentimentConfidenceScores._from_generated(sentence.confidence_scores), # pylint: disable=protected-access mined_opinions=( [MinedOpinion._from_generated(aspect, results) for aspect in sentence.aspects] # pylint: disable=protected-access - if hasattr(sentence, "aspects") else None + if (hasattr(sentence, "aspects") and sentence.aspects) else None ) ) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_response_handlers.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_response_handlers.py index 9ecef39554e6..94b4593dd769 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_response_handlers.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_response_handlers.py @@ -24,7 +24,9 @@ DocumentError, SentimentConfidenceScores, TextAnalyticsError, - TextAnalyticsWarning + TextAnalyticsWarning, + RecognizePiiEntitiesResult, + PiiEntity, ) def _get_too_many_documents_error(obj): @@ -162,3 +164,12 @@ def sentiment_result(sentiment, results): confidence_scores=SentimentConfidenceScores._from_generated(sentiment.confidence_scores), # pylint: disable=protected-access sentences=[SentenceSentiment._from_generated(s, results) for s in sentiment.sentences], # pylint: disable=protected-access ) + +@prepare_result +def pii_entities_result(entity, results): # pylint: disable=unused-argument + return RecognizePiiEntitiesResult( + id=entity.id, + entities=[PiiEntity._from_generated(e) for e in entity.entities], # pylint: disable=protected-access + warnings=[TextAnalyticsWarning._from_generated(w) for w in entity.warnings], # pylint: disable=protected-access + statistics=TextDocumentStatistics._from_generated(entity.statistics), # pylint: disable=protected-access + ) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py index 08ae69282b1f..37b124440074 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py @@ -22,7 +22,8 @@ linked_entities_result, key_phrases_result, sentiment_result, - language_result + language_result, + pii_entities_result ) if TYPE_CHECKING: @@ -36,6 +37,7 @@ ExtractKeyPhrasesResult, AnalyzeSentimentResult, DocumentError, + RecognizePiiEntitiesResult, ) @@ -222,6 +224,77 @@ def recognize_entities( # type: ignore except HttpResponseError as error: process_batch_error(error) + @distributed_trace + def recognize_pii_entities( # type: ignore + self, + documents, # type: Union[List[str], List[TextDocumentInput], List[Dict[str, str]]] + **kwargs # type: Any + ): + # type: (...) -> List[Union[RecognizePiiEntitiesResult, DocumentError]] + """Recognize entities containing personal information for a batch of documents. + + Returns a list of personal information entities ("SSN", + "Bank Account", etc) in the document. For the list of supported entity types, + check https://aka.ms/tanerpii + + See https://docs.microsoft.com/azure/cognitive-services/text-analytics/overview#data-limits + for document length limits, maximum batch size, and supported text encoding. + + :param documents: The set of documents to process as part of this batch. + If you wish to specify the ID and language on a per-item basis you must + use as input a list[:class:`~azure.ai.textanalytics.TextDocumentInput`] or a list of + dict representations of :class:`~azure.ai.textanalytics.TextDocumentInput`, like + `{"id": "1", "language": "en", "text": "hello world"}`. + :type documents: + list[str] or list[~azure.ai.textanalytics.TextDocumentInput] or + list[dict[str, str]] + :keyword str language: The 2 letter ISO 639-1 representation of language for the + entire batch. For example, use "en" for English; "es" for Spanish etc. + If not set, uses "en" for English as default. Per-document language will + take precedence over whole batch language. See https://aka.ms/talangs for + supported languages in Text Analytics API. + :keyword str model_version: This value indicates which model will + be used for scoring, e.g. "latest", "2019-10-01". If a model-version + is not specified, the API will default to the latest, non-preview version. + :keyword bool show_stats: If set to true, response will contain document level statistics. + :return: The combined list of :class:`~azure.ai.textanalytics.RecognizePiiEntitiesResult` + and :class:`~azure.ai.textanalytics.DocumentError` in the order the original documents + were passed in. + :rtype: list[~azure.ai.textanalytics.RecognizePiiEntitiesResult, + ~azure.ai.textanalytics.DocumentError] + :raises ~azure.core.exceptions.HttpResponseError or TypeError or ValueError or NotImplementedError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_recognize_pii_entities.py + :start-after: [START batch_recognize_pii_entities] + :end-before: [END batch_recognize_pii_entities] + :language: python + :dedent: 8 + :caption: Recognize personally identifiable information entities in a batch of documents. + """ + language_arg = kwargs.pop("language", None) + language = language_arg if language_arg is not None else self._default_language + docs = _validate_batch_input(documents, "language", language) + model_version = kwargs.pop("model_version", None) + show_stats = kwargs.pop("show_stats", False) + try: + return self._client.entities_recognition_pii( + documents=docs, + model_version=model_version, + show_stats=show_stats, + cls=kwargs.pop("cls", pii_entities_result), + **kwargs + ) + except AttributeError as error: + if "'TextAnalyticsClient' object has no attribute 'entities_recognition_pii'" in str(error): + raise NotImplementedError( + "'recognize_pii_entities' endpoint is only available for API version v3.1-preview.1 and up" + ) + raise error + except HttpResponseError as error: + process_batch_error(error) + @distributed_trace def recognize_linked_entities( # type: ignore self, @@ -419,12 +492,7 @@ def analyze_sentiment( # type: ignore mine_opinions = kwargs.pop("mine_opinions", None) if mine_opinions is not None: - if self._api_version == "v3.0": - raise TypeError( - "Parameter 'mine_opinions' is only added for API version v3.1-preview.1 and up" - ) - if self._api_version == "v3.1-preview.1": - kwargs.update({"opinion_mining": mine_opinions}) + kwargs.update({"opinion_mining": mine_opinions}) try: return self._client.sentiment( documents=docs, @@ -433,5 +501,11 @@ def analyze_sentiment( # type: ignore cls=kwargs.pop("cls", sentiment_result), **kwargs ) + except TypeError as error: + if "opinion_mining" in str(error): + raise NotImplementedError( + "'mine_opinions' is only available for API version v3.1-preview.1 and up" + ) + raise error except HttpResponseError as error: process_batch_error(error) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py index f61b5ba71d0d..715b122ebe53 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py @@ -4,4 +4,4 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "1.0.1" +VERSION = "5.0.1" diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_base_client_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_base_client_async.py index 6e05b39645e5..63f289e810ac 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_base_client_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_base_client_async.py @@ -6,9 +6,10 @@ from typing import Any from azure.core.credentials import AzureKeyCredential from azure.core.pipeline.policies import AzureKeyCredentialPolicy -from ._policies_async import AsyncTextAnalyticsResponseHookPolicy +from .._generated.aio import TextAnalyticsClient as _TextAnalyticsClient +from .._policies import TextAnalyticsResponseHookPolicy from .._user_agent import USER_AGENT -from .._multiapi import load_generated_api, ApiVersion +from .._base_client import ApiVersion def _authentication_policy(credential): @@ -27,18 +28,16 @@ def _authentication_policy(credential): class AsyncTextAnalyticsClientBase(object): def __init__(self, endpoint, credential, **kwargs): - self._api_version = kwargs.pop("api_version", ApiVersion.V3_0) - _TextAnalyticsClient = load_generated_api(self._api_version, aio=True) self._client = _TextAnalyticsClient( endpoint=endpoint, credential=credential, + api_version=kwargs.pop("api_version", ApiVersion.V3_1_PREVIEW_1), sdk_moniker=USER_AGENT, authentication_policy=_authentication_policy(credential), - custom_hook_policy=AsyncTextAnalyticsResponseHookPolicy(**kwargs), + custom_hook_policy=TextAnalyticsResponseHookPolicy(**kwargs), **kwargs ) - async def __aenter__(self) -> "AsyncTextAnalyticsClientBase": await self._client.__aenter__() return self diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_policies_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_policies_async.py deleted file mode 100644 index f035a52520f8..000000000000 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_policies_async.py +++ /dev/null @@ -1,36 +0,0 @@ -# coding=utf-8 -# ------------------------------------ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -# ------------------------------------ - -import asyncio -from azure.core.pipeline.policies import ContentDecodePolicy -from azure.core.pipeline.policies import SansIOHTTPPolicy -from .._models import TextDocumentBatchStatistics - - -class AsyncTextAnalyticsResponseHookPolicy(SansIOHTTPPolicy): - - def __init__(self, **kwargs): - self._response_callback = kwargs.get('raw_response_hook') - super(AsyncTextAnalyticsResponseHookPolicy, self).__init__() - - async def on_request(self, request): - self._response_callback = request.context.options.pop("raw_response_hook", self._response_callback) - - async def on_response(self, request, response): - if self._response_callback: - data = ContentDecodePolicy.deserialize_from_http_generics(response.http_response) - statistics = data.get("statistics", None) - model_version = data.get("modelVersion", None) - - if statistics or model_version: - batch_statistics = TextDocumentBatchStatistics._from_generated(statistics) # pylint: disable=protected-access - response.statistics = batch_statistics - response.model_version = model_version - response.raw_response = data - if asyncio.iscoroutine(self._response_callback): - await self._response_callback(response) - else: - self._response_callback(response) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py index 135929df4b61..2f8e20998283 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py @@ -22,7 +22,8 @@ linked_entities_result, key_phrases_result, sentiment_result, - language_result + language_result, + pii_entities_result, ) from .._models import ( DetectLanguageInput, @@ -33,6 +34,7 @@ ExtractKeyPhrasesResult, AnalyzeSentimentResult, DocumentError, + RecognizePiiEntitiesResult, ) if TYPE_CHECKING: @@ -225,6 +227,76 @@ async def recognize_entities( # type: ignore except HttpResponseError as error: process_batch_error(error) + @distributed_trace_async + async def recognize_pii_entities( # type: ignore + self, + documents: Union[List[str], List[TextDocumentInput], List[Dict[str, str]]], + **kwargs: Any + ) -> List[Union[RecognizePiiEntitiesResult, DocumentError]]: + """Recognize entities containing personal information for a batch of documents. + + Returns a list of personal information entities ("SSN", + "Bank Account", etc) in the document. For the list of supported entity types, + check https://aka.ms/tanerpii + + See https://docs.microsoft.com/azure/cognitive-services/text-analytics/overview#data-limits + for document length limits, maximum batch size, and supported text encoding. + + :param documents: The set of documents to process as part of this batch. + If you wish to specify the ID and language on a per-item basis you must + use as input a list[:class:`~azure.ai.textanalytics.TextDocumentInput`] or a list of + dict representations of :class:`~azure.ai.textanalytics.TextDocumentInput`, like + `{"id": "1", "language": "en", "text": "hello world"}`. + :type documents: + list[str] or list[~azure.ai.textanalytics.TextDocumentInput] or + list[dict[str, str]] + :keyword str language: The 2 letter ISO 639-1 representation of language for the + entire batch. For example, use "en" for English; "es" for Spanish etc. + If not set, uses "en" for English as default. Per-document language will + take precedence over whole batch language. See https://aka.ms/talangs for + supported languages in Text Analytics API. + :keyword str model_version: This value indicates which model will + be used for scoring, e.g. "latest", "2019-10-01". If a model-version + is not specified, the API will default to the latest, non-preview version. + :keyword bool show_stats: If set to true, response will contain document level statistics. + :return: The combined list of :class:`~azure.ai.textanalytics.RecognizePiiEntitiesResult` + and :class:`~azure.ai.textanalytics.DocumentError` in the order the original documents + were passed in. + :rtype: list[~azure.ai.textanalytics.RecognizePiiEntitiesResult, + ~azure.ai.textanalytics.DocumentError] + :raises ~azure.core.exceptions.HttpResponseError or TypeError or ValueError or NotImplementedError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_recognize_pii_entities.py + :start-after: [START batch_recognize_pii_entities] + :end-before: [END batch_recognize_pii_entities] + :language: python + :dedent: 8 + :caption: Recognize personally identifiable information entities in a batch of documents. + """ + language_arg = kwargs.pop("language", None) + language = language_arg if language_arg is not None else self._default_language + docs = _validate_batch_input(documents, "language", language) + model_version = kwargs.pop("model_version", None) + show_stats = kwargs.pop("show_stats", False) + try: + return await self._client.entities_recognition_pii( + documents=docs, + model_version=model_version, + show_stats=show_stats, + cls=kwargs.pop("cls", pii_entities_result), + **kwargs + ) + except AttributeError as error: + if "'TextAnalyticsClient' object has no attribute 'entities_recognition_pii'" in str(error): + raise NotImplementedError( + "'recognize_pii_entities' endpoint is only available for API version v3.1-preview.1 and up" + ) + raise error + except HttpResponseError as error: + process_batch_error(error) + @distributed_trace_async async def recognize_linked_entities( # type: ignore self, @@ -419,12 +491,7 @@ async def analyze_sentiment( # type: ignore mine_opinions = kwargs.pop("mine_opinions", None) if mine_opinions is not None: - if self._api_version == "v3.0": - raise TypeError( - "Parameter 'mine_opinions' is only added for API version v3.1-preview.1 and up" - ) - if self._api_version == "v3.1-preview.1": - kwargs.update({"opinion_mining": mine_opinions}) + kwargs.update({"opinion_mining": mine_opinions}) try: return await self._client.sentiment( @@ -434,5 +501,11 @@ async def analyze_sentiment( # type: ignore cls=kwargs.pop("cls", sentiment_result), **kwargs ) + except TypeError as error: + if "opinion_mining" in str(error): + raise NotImplementedError( + "'mine_opinions' is only available for API version v3.1-preview.1 and up" + ) + raise error except HttpResponseError as error: process_batch_error(error) diff --git a/sdk/textanalytics/azure-ai-textanalytics/samples/README.md b/sdk/textanalytics/azure-ai-textanalytics/samples/README.md index 06faea2b664e..fcb2361c8b30 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/samples/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/samples/README.md @@ -24,6 +24,7 @@ These sample programs show common scenarios for the Text Analytics client's offe |[sample_detect_language.py][detect_language] and [sample_detect_language_async.py][detect_language_async]|Detect language in documents| |[sample_recognize_entities.py][recognize_entities] and [sample_recognize_entities_async.py][recognize_entities_async]|Recognize named entities in documents| |[sample_recognize_linked_entities.py][recognize_linked_entities] and [sample_recognize_linked_entities_async.py][recognize_linked_entities_async]|Recognize linked entities in documents| +|[sample_recognize_pii_entities.py](`https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/textanalytics/azure-ai-textanalytics/samples/sample_recognize_pii_entities.py`) and [sample_recognize_pii_entities_async.py](`https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_recognize_pii_entities_async.py`)|Recognize personally identifiable information in documents| |[sample_extract_key_phrases.py][extract_key_phrases] and [sample_extract_key_phrases_async.py][extract_key_phrases_async]|Extract key phrases from documents| |[sample_analyze_sentiment.py][analyze_sentiment] and [sample_analyze_sentiment_async.py][analyze_sentiment_async]|Analyze the sentiment of documents| |[sample_alternative_document_input.py][sample_alternative_document_input] and [sample_alternative_document_input_async.py][sample_alternative_document_input_async]|Pass documents to an endpoint using dicts| diff --git a/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_recognize_pii_entities_async.py b/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_recognize_pii_entities_async.py new file mode 100644 index 000000000000..aefd69fc2723 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_recognize_pii_entities_async.py @@ -0,0 +1,68 @@ +# coding: utf-8 + +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +""" +FILE: sample_recognize_pii_entities_async.py + +DESCRIPTION: + This sample demonstrates how to recognize personally identifiable information in a batch of documents. + The endpoint recognize_pii_entities is only available for API version v3.1-preview.1 and up. + +USAGE: + python sample_recognize_pii_entities_async.py + + Set the environment variables with your own values before running the sample: + 1) AZURE_TEXT_ANALYTICS_ENDPOINT - the endpoint to your Cognitive Services resource. + 2) AZURE_TEXT_ANALYTICS_KEY - your Text Analytics subscription key +""" + +import os +import asyncio + + +class RecognizePiiEntitiesSampleAsync(object): + + async def recognize_pii_entities_async(self): + # [START batch_recognize_pii_entities_async] + from azure.core.credentials import AzureKeyCredential + from azure.ai.textanalytics import ApiVersion + from azure.ai.textanalytics.aio import TextAnalyticsClient + + endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] + key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] + + text_analytics_client = TextAnalyticsClient( + endpoint=endpoint, credential=AzureKeyCredential(key) + ) + documents = [ + "The employee's SSN is 859-98-0987.", + "Is 998.214.865-68 your Brazilian CPF number?", + "My phone number is 555-555-5555" + ] + + async with text_analytics_client: + result = await text_analytics_client.recognize_pii_entities(documents) + + docs = [doc for doc in result if not doc.is_error] + + for idx, doc in enumerate(docs): + print("Document text: {}".format(documents[idx])) + for entity in doc.entities: + print("Entity: {}".format(entity.text)) + print("Category: {}".format(entity.category)) + print("Confidence Score: {}\n".format(entity.confidence_score)) + # [END batch_recognize_pii_entities_async] + + +async def main(): + sample = RecognizePiiEntitiesSampleAsync() + await sample.recognize_pii_entities_async() + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(main()) diff --git a/sdk/textanalytics/azure-ai-textanalytics/samples/sample_recognize_pii_entities.py b/sdk/textanalytics/azure-ai-textanalytics/samples/sample_recognize_pii_entities.py new file mode 100644 index 000000000000..9ee9e18b644c --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/samples/sample_recognize_pii_entities.py @@ -0,0 +1,60 @@ +# coding: utf-8 + +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +""" +FILE: sample_recognize_pii_entities.py + +DESCRIPTION: + This sample demonstrates how to recognize personally identifiable information in a batch of documents. + The endpoint recognize_pii_entities is only available for API version v3.1-preview.1 and up. + +USAGE: + python sample_recognize_pii_entities.py + + Set the environment variables with your own values before running the sample: + 1) AZURE_TEXT_ANALYTICS_ENDPOINT - the endpoint to your Cognitive Services resource. + 2) AZURE_TEXT_ANALYTICS_KEY - your Text Analytics subscription key +""" + +import os + + +class RecognizePiiEntitiesSample(object): + + def recognize_pii_entities(self): + # [START batch_recognize_pii_entities] + from azure.core.credentials import AzureKeyCredential + from azure.ai.textanalytics import TextAnalyticsClient, ApiVersion + + endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] + key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] + + text_analytics_client = TextAnalyticsClient( + endpoint=endpoint, credential=AzureKeyCredential(key) + ) + documents = [ + "The employee's SSN is 859-98-0987.", + "Is 998.214.865-68 your Brazilian CPF number?", + "My phone number is 555-555-5555" + ] + + result = text_analytics_client.recognize_pii_entities(documents) + docs = [doc for doc in result if not doc.is_error] + + for idx, doc in enumerate(docs): + print("Document text: {}".format(documents[idx])) + for entity in doc.entities: + print("Entity: {}".format(entity.text)) + print("Category: {}".format(entity.category)) + print("Confidence Score: {}\n".format(entity.confidence_score)) + # [END batch_recognize_pii_entities] + + +if __name__ == '__main__': + sample = RecognizePiiEntitiesSample() + sample.recognize_pii_entities() diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_dict.yaml index c66291002dd9..4f57d94b3520 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_dict.yaml @@ -19,7 +19,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=true response: body: string: '{"statistics":{"documentsCount":3,"validDocumentsCount":3,"erroneousDocumentsCount":0,"transactionsCount":3},"documents":[{"id":"1","sentiment":"neutral","statistics":{"charactersCount":51,"transactionsCount":1},"confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"offset":0,"length":51,"text":"Microsoft @@ -30,13 +30,13 @@ interactions: recommend you try it."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 06e7a065-3f22-4c07-a34d-fe9df28bf145 + - ae5d92ce-b260-4d5b-b049-ca5685d10a6b content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:32 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -44,7 +44,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '83' + - '91' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_text_document_input.yaml index 70d5c445ba66..91a92e24fee0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_text_document_input.yaml @@ -19,7 +19,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"offset":0,"length":51,"text":"Microsoft @@ -30,13 +30,13 @@ interactions: recommend you try it."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 588a761e-eb90-4099-921a-79ba72a639e7 + - 5866ad77-79e5-4d72-ac8a-0c238d7ac7bd content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -44,7 +44,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '82' + - '107' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_credentials.yaml index e8d31fb2672e..221740d916e8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_credentials.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:42 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_model_version_error.yaml index cef850e3de64..0eb032cb1367 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_model_version_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2019-10-01,2020-04-01"}}}' headers: apim-request-id: - - 20895e3e-f7cd-4cbb-a200-6384531a6aad + - d1b9044a-2cb3-42e1-b76a-d9b2954cacf1 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '9' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit.yaml index d165bd58dd7b..1939e946e79a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit.yaml @@ -760,18 +760,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - b9e3966b-355a-4feb-a21a-74793021f522 + - 445231d6-240b-40ae-97c6-07a9ff798851 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -779,7 +779,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '14' + - '12' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit_error.yaml index ae0d701f176b..3210054faa25 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit_error.yaml @@ -725,18 +725,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - 8f9e2336-979c-4d5d-a2cc-a7cce506e4e8 + - d7d79d04-f475-40ff-a5c1-4761cdac974a content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -744,7 +744,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '13' + - '11' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_client_passed_default_language_hint.yaml index 206288db44a8..716d3aea0a58 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_client_passed_default_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_client_passed_default_language_hint.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"offset":0,"length":22,"text":"I @@ -27,13 +27,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 31654ab2-9d20-44d7-8a32-27bed4d42ee7 + - 34ec0818-4419-460d-ab51-f2849b662a9c content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '108' + - '112' status: code: 200 message: OK @@ -64,7 +64,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -73,13 +73,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 69099214-9e2b-4e78-ad55-75422bce9fa2 + - abff6a6e-dbc7-474f-ae86-a102c0dfb090 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -87,7 +87,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '88' + - '98' status: code: 200 message: OK @@ -110,7 +110,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"offset":0,"length":22,"text":"I @@ -119,13 +119,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 100b38e5-f6d9-430c-97f5-347d77c72be5 + - 3358cc30-05f2-41cf-8db1-6439f50e4013 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -133,7 +133,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '114' + - '105' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_no_result_attribute.yaml index e5ded4d1af9e..2810435be210 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_no_result_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,11 +23,11 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 6a7b6796-dcf1-4521-b4c7-d025565fbe63 + - 42b48b6b-82af-4009-9fce-6e4b0aa84164 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '2' + - '229' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_nonexistent_attribute.yaml index 961b251eab5f..478a27992e63 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_nonexistent_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,11 +23,11 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - ac88c327-e418-4e3c-9a7f-550ed485c1f1 + - a9c831ec-f52b-48ae-b6c4-4c2c1009c948 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:35 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '2' + - '3' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_errors.yaml index 015556d4b6c7..9f08bfcc9e2e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_errors.yaml @@ -18,25 +18,25 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"A document within the request was too large to be processed. Limit document size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 5f204711-42a5-4c7e-8395-85bb08a3446b + - 6fb01711-e54c-4d31-ac5c-31090c70d477 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_warnings.yaml index 83590bb08296..504443cdef4b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_warnings.yaml @@ -16,20 +16,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"sentences":[{"sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"offset":0,"length":40,"text":"This won''t actually create a warning :''("}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 893a26f5-095d-4703-a8e0-b249e61eaccb + - a629bb87-c4d0-4834-8137-5022ecd0f326 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -37,7 +37,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '101' + - '341' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_duplicate_ids_error.yaml index ee8af084e3af..030f80bdfe67 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_duplicate_ids_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: apim-request-id: - - 79b2dec0-d8a3-44f4-b6d1-20f473671bde + - 7bf2cc9c-f7e4-4b28-87ab-9e18fc41757c content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '10' + - '5' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_empty_credential_class.yaml index 3cffa3d699d5..1cabeef25689 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_empty_credential_class.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:41 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_input_with_all_errors.yaml index 936566cefdc9..8c7c87ed7099 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_input_with_all_errors.yaml @@ -17,23 +17,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 2ef6aa08-38bb-4579-bbfb-9c80b9e01e79 + - e97267c2-7f30-4c2c-893c-8256c81626eb content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '5' + - '2' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_input_with_some_errors.yaml index 43fb05a4c023..55ed4a7e8275 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_input_with_some_errors.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"3","sentiment":"positive","confidenceScores":{"positive":0.98,"neutral":0.02,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":36,"text":"The @@ -26,17 +26,17 @@ interactions: recommend you try it."}],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 79faf6dc-a3e6-46aa-a954-f94673e7436f + - 8064c457-a71f-4406-bb38-07733225f402 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -44,7 +44,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '156' + - '98' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_invalid_language_hint_docs.yaml index b94b356062c1..2d99da88294e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_invalid_language_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_invalid_language_hint_docs.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 245b0af4-f07c-4dba-85ce-189dd5f40fe9 + - 6034c272-f384-4c3d-8bbb-f3e7157bd252 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_invalid_language_hint_method.yaml index a9a645aa7565..1e7e6476273d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_invalid_language_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_invalid_language_hint_method.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - cc961f2b-2bc6-42a0-89bb-62a5df399e25 + - ed3802cd-6a0a-4221-bb50-ba8aeb9634e3 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_language_kwarg_spanish.yaml index a3888183be97..87255bd8f785 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_language_kwarg_spanish.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_language_kwarg_spanish.yaml @@ -16,20 +16,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","sentiment":"neutral","statistics":{"charactersCount":35,"transactionsCount":1},"confidenceScores":{"positive":0.01,"neutral":0.98,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.98,"negative":0.01},"offset":0,"length":35,"text":"Bill Gates is the CEO of Microsoft."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 77e266f2-c996-475a-912f-af9168ebcff8 + - 3280fcc8-7534-44a2-9502-1f795ddb11d7 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 17:51:18 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -37,7 +37,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '90' + - '198' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_out_of_order_ids.yaml index 1d27b967f00c..3914b133b687 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_out_of_order_ids.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"56","sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"offset":0,"length":2,"text":":)"}],"warnings":[]},{"id":"0","sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"sentences":[{"sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"offset":0,"length":2,"text":":("}],"warnings":[]},{"id":"19","sentiment":"neutral","confidenceScores":{"positive":0.3,"neutral":0.67,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.3,"neutral":0.67,"negative":0.03},"offset":0,"length":2,"text":":P"}],"warnings":[]},{"id":"1","sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"offset":0,"length":2,"text":":D"}],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - a8dd3009-0b69-4d69-a998-b4a97c23d241 + - 202eb5e6-49a5-4e30-a8b9-f04ebb1d3a1d content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '85' + - '211' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_output_same_order_as_input.yaml index fe8c30f1a09a..989e6708549d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_output_same_order_as_input.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.9,"negative":0.04},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.9,"negative":0.04},"offset":0,"length":3,"text":"one"}],"warnings":[]},{"id":"2","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.97,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.97,"negative":0.02},"offset":0,"length":3,"text":"two"}],"warnings":[]},{"id":"3","sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"offset":0,"length":5,"text":"three"}],"warnings":[]},{"id":"4","sentiment":"neutral","confidenceScores":{"positive":0.03,"neutral":0.96,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.03,"neutral":0.96,"negative":0.01},"offset":0,"length":4,"text":"four"}],"warnings":[]},{"id":"5","sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"offset":0,"length":4,"text":"five"}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 164ce476-d77f-423d-99da-49ca42ffa802 + - d3686859-3b21-44a7-991e-09bca1e698d5 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=5 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '88' + - '186' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_pass_cls.yaml index 05822a1a66ba..932735b66b28 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_pass_cls.yaml @@ -16,20 +16,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"neutral","confidenceScores":{"positive":0.32,"neutral":0.65,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.32,"neutral":0.65,"negative":0.03},"offset":0,"length":28,"text":"Test passing cls to endpoint"}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 7533e0c0-53f9-4e3f-aacc-55a323df392a + - d4509b09-bd20-4739-aeb5-2fb576ebbdd6 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -37,7 +37,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '87' + - '92' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_passing_only_string.yaml index 250a850ad6cd..aaef6246dd11 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_passing_only_string.yaml @@ -19,7 +19,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"offset":0,"length":51,"text":"Microsoft @@ -32,13 +32,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 2d316802-f8d7-49c6-a78d-73d0254f3efb + - c3cd4fe4-c3da-4e35-8eb2-5788271eeb73 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -46,7 +46,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '86' + - '103' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_per_item_dont_use_language_hint.yaml index 62e8c0307b53..454030da7907 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_per_item_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_per_item_dont_use_language_hint.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -27,13 +27,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - ee044433-b207-468c-821e-e6e0a26a3f21 + - 6bd36846-ff3b-44c2-817f-b998cf8b8483 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:33 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '89' + - '101' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_rotate_subscription_key.yaml index d51a2927a007..cf8a66ee6935 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_rotate_subscription_key.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -27,13 +27,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - b5263ebe-c94f-424d-b53b-178ef55c6ae5 + - e586e4c3-409f-42f0-b982-19576111a359 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '89' + - '119' status: code: 200 message: OK @@ -64,7 +64,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -74,7 +74,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:43 GMT status: code: 401 message: PermissionDenied @@ -97,7 +97,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -106,13 +106,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 2fececee-d12d-4a2d-bec9-fc0ffab2a9eb + - 3efa5050-2382-404e-a814-2d66d202287b content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -120,7 +120,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '106' + - '93' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_show_stats_and_model_version.yaml index 2e9d44595821..3cb69f9c6192 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_show_stats_and_model_version.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","sentiment":"positive","statistics":{"charactersCount":2,"transactionsCount":1},"confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"offset":0,"length":2,"text":":)"}],"warnings":[]},{"id":"0","sentiment":"negative","statistics":{"charactersCount":2,"transactionsCount":1},"confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"sentences":[{"sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"offset":0,"length":2,"text":":("}],"warnings":[]},{"id":"19","sentiment":"neutral","statistics":{"charactersCount":2,"transactionsCount":1},"confidenceScores":{"positive":0.3,"neutral":0.67,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.3,"neutral":0.67,"negative":0.03},"offset":0,"length":2,"text":":P"}],"warnings":[]},{"id":"1","sentiment":"positive","statistics":{"charactersCount":2,"transactionsCount":1},"confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"offset":0,"length":2,"text":":D"}],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 9e26502c-7014-40df-bcde-bdfe18321168 + - 74763fb5-d048-49d1-aa5a-23c32aa1910c content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_too_many_documents.yaml index d0d5d7a9b550..4369ce8282a0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_too_many_documents.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_too_many_documents.yaml @@ -21,7 +21,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.9,"negative":0.04},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.9,"negative":0.04},"offset":0,"length":3,"text":"One"}],"warnings":[]},{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.97,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.97,"negative":0.02},"offset":0,"length":3,"text":"Two"}],"warnings":[]},{"id":"2","sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"offset":0,"length":5,"text":"Three"}],"warnings":[]},{"id":"3","sentiment":"neutral","confidenceScores":{"positive":0.03,"neutral":0.96,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.03,"neutral":0.96,"negative":0.01},"offset":0,"length":4,"text":"Four"}],"warnings":[]},{"id":"4","sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"offset":0,"length":4,"text":"Five"}],"warnings":[]},{"id":"5","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.98,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.98,"negative":0.01},"offset":0,"length":3,"text":"Six"}],"warnings":[]},{"id":"6","sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.91,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.91,"negative":0.03},"offset":0,"length":5,"text":"Seven"}],"warnings":[]},{"id":"7","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.94,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.94,"negative":0.02},"offset":0,"length":5,"text":"Eight"}],"warnings":[]},{"id":"8","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.94,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.94,"negative":0.02},"offset":0,"length":4,"text":"Nine"}],"warnings":[]},{"id":"9","sentiment":"neutral","confidenceScores":{"positive":0.07,"neutral":0.9,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.07,"neutral":0.9,"negative":0.03},"offset":0,"length":3,"text":"Ten"}],"warnings":[]},{"id":"10","sentiment":"neutral","confidenceScores":{"positive":0.1,"neutral":0.86,"negative":0.04},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.1,"neutral":0.86,"negative":0.04},"offset":0,"length":6,"text":"Eleven"}],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The @@ -30,13 +30,13 @@ interactions: https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 678d6919-fa5a-4f93-a47f-5947f05e5916 + - 9d5eab99-956e-4d20-bb74-92ab0a0f971e content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=11 date: - - Mon, 06 Jul 2020 22:22:28 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -44,7 +44,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '104' + - '201' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_user_agent.yaml index 08db14b03e71..56e0fb0cb185 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_user_agent.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -27,13 +27,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - b5f60efb-88f2-45be-8044-8072ef840efa + - 7e3d865b-156b-46a4-a7ec-18300c77b15e content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:41 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '112' + - '97' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_dont_use_language_hint.yaml index f55957f8e696..0e38aa4875fa 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_dont_use_language_hint.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":33,"text":"This @@ -28,13 +28,13 @@ interactions: restaurant was not as good as I hoped."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 7c1308ce-6bcf-43f2-ab62-06515776c082 + - b5d70d4c-2813-44ac-9986-154a8a13130c content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -42,7 +42,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '85' + - '94' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint.yaml index 47e1fff1c457..302ed7aac41c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"neutral","confidenceScores":{"positive":0.07,"neutral":0.93,"negative":0.0},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.07,"neutral":0.93,"negative":0.0},"offset":0,"length":33,"text":"This @@ -28,13 +28,13 @@ interactions: restaurant was not as good as I hoped."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - a0d2255c-d30b-454e-9832-e2c098059604 + - 977bc57b-3591-4c0e-a083-5ff3326d32b9 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_dict_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_dict_input.yaml index ec07824f3649..97ba615116e5 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_dict_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_dict_input.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"offset":0,"length":22,"text":"I @@ -27,13 +27,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 39fe3a23-cbea-487d-8c6a-e1862a0192ba + - 83e8d870-affd-4f38-ad4f-03f8fe87dbb6 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:35 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '103' + - '115' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_dict_per_item_hints.yaml index ccff7a4eaaf7..31bcb4d4e075 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"offset":0,"length":22,"text":"I @@ -27,13 +27,13 @@ interactions: restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - a87e0f3f-7482-4e82-9078-b068d10e3ea6 + - 00804568-0d8e-4051-87f1-a5399e251e23 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '114' + - '102' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_obj_input.yaml index 2bcc83458fcb..a2141cbcafd2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_obj_input.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: "{\"documents\":[{\"id\":\"1\",\"sentiment\":\"neutral\",\"confidenceScores\"\ @@ -37,13 +37,13 @@ interactions: warnings\":[]}],\"errors\":[],\"modelVersion\":\"2020-04-01\"}" headers: apim-request-id: - - 52b37512-586c-44b7-8d30-9a64fe9acddb + - 7bd94eb4-7f36-4590-86e0-d345f9924173 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -51,7 +51,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '102' + - '125' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_obj_per_item_hints.yaml index e2ac02f49ca3..cb4c8a7ce81e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: "{\"documents\":[{\"id\":\"1\",\"sentiment\":\"neutral\",\"confidenceScores\"\ @@ -37,13 +37,13 @@ interactions: warnings\":[]}],\"errors\":[],\"modelVersion\":\"2020-04-01\"}" headers: apim-request-id: - - f6980faf-ca76-488a-aad2-44dbc78a3dd5 + - 80ebc9f3-8257-47a2-a0c3-4652889c833e content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:34 GMT + - Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -51,7 +51,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '103' + - '109' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_all_successful_passing_dict.yaml index 3ab84b6cc328..9e24c03bc67f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_all_successful_passing_dict.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=true response: body: string: '{"statistics":{"documentsCount":3,"validDocumentsCount":3,"erroneousDocumentsCount":0,"transactionsCount":3},"documents":[{"id":"1","sentiment":"neutral","statistics":{"charactersCount":51,"transactionsCount":1},"confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"offset":0,"length":51,"text":"Microsoft @@ -25,16 +25,16 @@ interactions: restaurant had really good food."},{"sentiment":"positive","confidenceScores":{"positive":0.96,"neutral":0.03,"negative":0.01},"offset":37,"length":23,"text":"I recommend you try it."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 1ea4bb80-c433-4e12-a3a4-af2e0b71241e + apim-request-id: a02574f4-91fb-4ac8-8c9b-66ef9b9b9a13 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:34 GMT + date: Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '95' + x-envoy-upstream-service-time: '193' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_all_successful_passing_text_document_input.yaml index 9036d36e82d7..67f54aaa3655 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_all_successful_passing_text_document_input.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"offset":0,"length":51,"text":"Microsoft @@ -25,16 +25,16 @@ interactions: restaurant had really good food."},{"sentiment":"positive","confidenceScores":{"positive":0.96,"neutral":0.03,"negative":0.01},"offset":37,"length":23,"text":"I recommend you try it."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 014e6195-7360-4690-b35e-35d7e226d989 + apim-request-id: 88f5d350-fd2a-4d63-9d33-efb5a3e9feaf content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:34 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '85' + x-envoy-upstream-service-time: '109' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_bad_credentials.yaml index 9665bc75eff7..1959e3f0aef0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_bad_credentials.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_bad_model_version_error.yaml index 29f76d08acc8..3c23c13e0aaf 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_bad_model_version_error.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2019-10-01,2020-04-01"}}}' headers: - apim-request-id: b2edecb7-af67-4ab1-aaf2-c575ac16f379 + apim-request-id: 186c3b7c-1e2e-4b39-b326-f42db2230e76 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:34 GMT + date: Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '5' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?model-version=bad&showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?model-version=bad&showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_batch_size_over_limit.yaml index c6de3c992913..c1c3cb12629a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_batch_size_over_limit.yaml @@ -756,21 +756,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: 3e275b09-1011-4fc2-bc9d-7883c522882b + apim-request-id: b7943f7e-f314-43ca-bb39-620fbf810522 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '12' + x-envoy-upstream-service-time: '14' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_batch_size_over_limit_error.yaml index 35bbf18164ba..57ca5ed954dd 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_batch_size_over_limit_error.yaml @@ -721,21 +721,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: 7c3161e7-cf86-4bab-893b-88b07067000c + apim-request-id: 273c84ac-b300-4ef8-9aad-815c0ea1b24c content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '15' + x-envoy-upstream-service-time: '11' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_client_passed_default_language_hint.yaml index c64e51f57016..3f864f1a64a3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_client_passed_default_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_client_passed_default_language_hint.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"offset":0,"length":22,"text":"I @@ -22,18 +22,18 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":0.97,"neutral":0.02,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.97,"neutral":0.02,"negative":0.01},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 6fc37371-6539-4c35-81a6-4acd6aecad1f + apim-request-id: b0146b82-a04a-404d-8689-0871e2277062 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '95' + x-envoy-upstream-service-time: '113' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -49,7 +49,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -57,18 +57,18 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: ae96d89e-4671-4ce1-a19c-aac5d0fdfb30 + apim-request-id: 3896b0c1-d55a-48f4-95f6-381d90aa4b0a content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '82' + x-envoy-upstream-service-time: '90' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -84,7 +84,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"offset":0,"length":22,"text":"I @@ -92,16 +92,16 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":0.97,"neutral":0.02,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.97,"neutral":0.02,"negative":0.01},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 36ef185b-36bd-43b1-9820-dd7c567f0697 + apim-request-id: 2e58bfe8-176b-46b0-b607-25468cd90296 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '105' + x-envoy-upstream-service-time: '108' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_attribute_error_no_result_attribute.yaml index 9e8204b36753..35b2268bbac3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_attribute_error_no_result_attribute.yaml @@ -11,22 +11,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 4ab71047-dc6e-4a4c-bfcf-e6eaf7dcd13c + apim-request-id: 445ebb8b-1db3-451c-94f4-910ff2880adc content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '1' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_attribute_error_nonexistent_attribute.yaml index 6d5869068700..b1365b867a6e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_attribute_error_nonexistent_attribute.yaml @@ -11,22 +11,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 4acc249d-b5f3-49ae-a954-679f9839c206 + apim-request-id: 93b7d9e6-652b-4d53-a262-f901c55aff44 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:42 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_errors.yaml index e4d9e7fee714..ea7d16fd12f9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_errors.yaml @@ -14,28 +14,28 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"A document within the request was too large to be processed. Limit document size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 1f858063-dfdd-4870-ac98-4428b7c8b674 + apim-request-id: 15979b6e-b026-45f0-82af-183780125d6f content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:34 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_warnings.yaml index 9464d062d308..6855dc69f736 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_document_warnings.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"sentences":[{"sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"offset":0,"length":40,"text":"This won''t actually create a warning :''("}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: d89d7419-b3b2-4c36-a86b-e965c8b7c6ee + apim-request-id: cb6d5da1-7463-46c0-9e98-47badea2f281 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:34 GMT + date: Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '90' + x-envoy-upstream-service-time: '91' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_duplicate_ids_error.yaml index 18d4fc930bd0..11ef8cc4c47f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_duplicate_ids_error.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: - apim-request-id: 2737941a-5316-4677-bcb7-8a8949f7b5e9 + apim-request-id: 5ae6b123-edd5-4cb1-be77-71ffdae07d5d content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '9' + x-envoy-upstream-service-time: '4' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_empty_credential_class.yaml index 2e78d2c408d4..6d04b1f4a524 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_empty_credential_class.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:34 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_input_with_all_errors.yaml index e52d063c3f3c..44d4bb0d6061 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_input_with_all_errors.yaml @@ -13,26 +13,26 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: dc92729b-e0ea-4d34-ac18-566c9ae93cd6 + apim-request-id: 6db92618-5888-4b7c-8695-1682f2945e6e content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '2' + x-envoy-upstream-service-time: '3' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_input_with_some_errors.yaml index 603779f07437..81d8ff523a4d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_input_with_some_errors.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"3","sentiment":"positive","confidenceScores":{"positive":0.98,"neutral":0.02,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":36,"text":"The @@ -22,19 +22,19 @@ interactions: recommend you try it."}],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 08ceaf98-7c7d-451f-9e66-f8c8040e69d5 + apim-request-id: e457581c-0f2f-4bdf-94bd-6df280015bc8 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:34 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '107' + x-envoy-upstream-service-time: '167' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_invalid_language_hint_docs.yaml index 22b6f7a4b84a..ac135ae33a2b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_invalid_language_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_invalid_language_hint_docs.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: c0b5a944-5da2-406e-ba5c-b57a69caacc9 + apim-request-id: e99b4a30-cff2-4ec3-af7f-722f1d90b11d content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_invalid_language_hint_method.yaml index 3483070f41e7..e747200fdf3f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_invalid_language_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_invalid_language_hint_method.yaml @@ -12,16 +12,16 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: de,en,es,fr,it,ja,ko,nl,pt-PT,zh-Hans,zh-Hant"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 2cac8bcd-b0ac-471f-957b-155b472e2641 + apim-request-id: 8b3988d3-08e5-4f19-840c-831db5d90dfd content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -29,5 +29,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_language_kwarg_spanish.yaml index 2391af0df607..c8bb7b9b08b8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_language_kwarg_spanish.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_language_kwarg_spanish.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","sentiment":"neutral","statistics":{"charactersCount":35,"transactionsCount":1},"confidenceScores":{"positive":0.01,"neutral":0.98,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.98,"negative":0.01},"offset":0,"length":35,"text":"Bill Gates is the CEO of Microsoft."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: c12996a8-9b6a-40d8-ab31-2ac7d0e020ef + apim-request-id: b22cdb80-908b-4758-a721-638746a66fc7 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '111' + x-envoy-upstream-service-time: '93' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_out_of_order_ids.yaml index e38892c81ff6..e1488f1d303f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_out_of_order_ids.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"56","sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"offset":0,"length":2,"text":":)"}],"warnings":[]},{"id":"0","sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"sentences":[{"sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"offset":0,"length":2,"text":":("}],"warnings":[]},{"id":"19","sentiment":"neutral","confidenceScores":{"positive":0.3,"neutral":0.67,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.3,"neutral":0.67,"negative":0.03},"offset":0,"length":2,"text":":P"}],"warnings":[]},{"id":"1","sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"offset":0,"length":2,"text":":D"}],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 3b9747a0-19af-4492-9f2c-f947763a268f + apim-request-id: d806272a-d892-40ae-97c5-5d1a205e23fc content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '95' + x-envoy-upstream-service-time: '107' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_output_same_order_as_input.yaml index 109941cd913c..5eb1b109a9c4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_output_same_order_as_input.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.9,"negative":0.04},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.9,"negative":0.04},"offset":0,"length":3,"text":"one"}],"warnings":[]},{"id":"2","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.97,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.97,"negative":0.02},"offset":0,"length":3,"text":"two"}],"warnings":[]},{"id":"3","sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"offset":0,"length":5,"text":"three"}],"warnings":[]},{"id":"4","sentiment":"neutral","confidenceScores":{"positive":0.03,"neutral":0.96,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.03,"neutral":0.96,"negative":0.01},"offset":0,"length":4,"text":"four"}],"warnings":[]},{"id":"5","sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"offset":0,"length":4,"text":"five"}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 566486a9-fe05-4729-8fc7-e881866ad5b2 + apim-request-id: 9f933ebf-771d-46ae-9f5e-964ab45d069f content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=5 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '86' + x-envoy-upstream-service-time: '98' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_pass_cls.yaml index 51ed34d36017..bc62791c7b2e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_pass_cls.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"neutral","confidenceScores":{"positive":0.32,"neutral":0.65,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.32,"neutral":0.65,"negative":0.03},"offset":0,"length":28,"text":"Test passing cls to endpoint"}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: a35785a3-f3ff-4f7e-b4b4-3a847ff0d764 + apim-request-id: 4d380e96-c279-4c56-9f5c-ec6f7778ef58 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:34 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '104' + x-envoy-upstream-service-time: '106' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_passing_only_string.yaml index 06e39e8f2fd5..5df1a8509406 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_passing_only_string.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.99,"negative":0.0},"offset":0,"length":51,"text":"Microsoft @@ -27,16 +27,16 @@ interactions: document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 8db040c5-f3d8-4aa7-94a8-5234bb335301 + apim-request-id: e622c344-99f3-451b-9f3b-8554dfa08e84 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '86' + x-envoy-upstream-service-time: '111' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_per_item_dont_use_language_hint.yaml index 113178398e5b..1e361d1788ee 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_per_item_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_per_item_dont_use_language_hint.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -22,16 +22,16 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 0470d6b7-6870-4f02-9411-74ed129a307e + apim-request-id: 76258da2-0deb-4516-8709-9b46596c5c96 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '81' + x-envoy-upstream-service-time: '93' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_rotate_subscription_key.yaml index 48c994f3ee3f..b9397c786d47 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_rotate_subscription_key.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -22,18 +22,18 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 53aea661-19c1-4847-80cf-2e92f9e766d3 + apim-request-id: 6afc472c-0804-4bd0-8011-126b18576620 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '90' + x-envoy-upstream-service-time: '178' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -49,7 +49,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -57,11 +57,11 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -77,7 +77,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -85,16 +85,16 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: ffc6aa64-ab2a-4461-baa3-4ab9d1ca02a9 + apim-request-id: 3fe95075-ac4e-4710-8ebe-1df34365799e content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '184' + x-envoy-upstream-service-time: '91' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_show_stats_and_model_version.yaml index 41e304072a88..a5aa9833b2a8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_show_stats_and_model_version.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","sentiment":"positive","statistics":{"charactersCount":2,"transactionsCount":1},"confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"offset":0,"length":2,"text":":)"}],"warnings":[]},{"id":"0","sentiment":"negative","statistics":{"charactersCount":2,"transactionsCount":1},"confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"sentences":[{"sentiment":"negative","confidenceScores":{"positive":0.0,"neutral":0.02,"negative":0.98},"offset":0,"length":2,"text":":("}],"warnings":[]},{"id":"19","sentiment":"neutral","statistics":{"charactersCount":2,"transactionsCount":1},"confidenceScores":{"positive":0.3,"neutral":0.67,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.3,"neutral":0.67,"negative":0.03},"offset":0,"length":2,"text":":P"}],"warnings":[]},{"id":"1","sentiment":"positive","statistics":{"charactersCount":2,"transactionsCount":1},"confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.89,"neutral":0.1,"negative":0.01},"offset":0,"length":2,"text":":D"}],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: fd4f5bfa-5ded-47e3-92d2-84ec46d00f14 + apim-request-id: b920b85f-800a-4b92-b745-2f3c19a3a0de content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '98' + x-envoy-upstream-service-time: '200' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_too_many_documents.yaml index 58e06b8278ff..9161b65b2c19 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_too_many_documents.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_too_many_documents.yaml @@ -17,7 +17,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.9,"negative":0.04},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.9,"negative":0.04},"offset":0,"length":3,"text":"One"}],"warnings":[]},{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.97,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.97,"negative":0.02},"offset":0,"length":3,"text":"Two"}],"warnings":[]},{"id":"2","sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"offset":0,"length":5,"text":"Three"}],"warnings":[]},{"id":"3","sentiment":"neutral","confidenceScores":{"positive":0.03,"neutral":0.96,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.03,"neutral":0.96,"negative":0.01},"offset":0,"length":4,"text":"Four"}],"warnings":[]},{"id":"4","sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.05,"neutral":0.93,"negative":0.02},"offset":0,"length":4,"text":"Five"}],"warnings":[]},{"id":"5","sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.98,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.01,"neutral":0.98,"negative":0.01},"offset":0,"length":3,"text":"Six"}],"warnings":[]},{"id":"6","sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.91,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.06,"neutral":0.91,"negative":0.03},"offset":0,"length":5,"text":"Seven"}],"warnings":[]},{"id":"7","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.94,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.94,"negative":0.02},"offset":0,"length":5,"text":"Eight"}],"warnings":[]},{"id":"8","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.94,"negative":0.02},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.94,"negative":0.02},"offset":0,"length":4,"text":"Nine"}],"warnings":[]},{"id":"9","sentiment":"neutral","confidenceScores":{"positive":0.07,"neutral":0.9,"negative":0.03},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.07,"neutral":0.9,"negative":0.03},"offset":0,"length":3,"text":"Ten"}],"warnings":[]},{"id":"10","sentiment":"neutral","confidenceScores":{"positive":0.1,"neutral":0.86,"negative":0.04},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.1,"neutral":0.86,"negative":0.04},"offset":0,"length":6,"text":"Eleven"}],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The @@ -25,16 +25,16 @@ interactions: number of documents in the request have exceeded the data limitations. See https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 8d9e8d76-86da-43c8-9c37-d45f05838605 + apim-request-id: b2cc8f0b-9431-4c3c-afd2-112dc6167c03 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=11 - date: Mon, 06 Jul 2020 22:22:30 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '178' + x-envoy-upstream-service-time: '189' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_user_agent.yaml index f5357d0e67cc..ac3c414a6fef 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_user_agent.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.09,"neutral":0.9,"negative":0.01},"offset":0,"length":22,"text":"I @@ -22,16 +22,16 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 0ba9a77a-bc64-438c-a4da-79426e529a9b + apim-request-id: d8a3ee55-eac4-4485-b2e1-1d5efbed8c3d content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '90' + x-envoy-upstream-service-time: '206' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_dont_use_language_hint.yaml index f0ddfcc4e495..2ed04390cc88 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_dont_use_language_hint.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":33,"text":"This @@ -23,16 +23,16 @@ interactions: was too expensive."}],"warnings":[]},{"id":"2","sentiment":"negative","confidenceScores":{"positive":0.01,"neutral":0.0,"negative":0.99},"sentences":[{"sentiment":"negative","confidenceScores":{"positive":0.01,"neutral":0.0,"negative":0.99},"offset":0,"length":42,"text":"The restaurant was not as good as I hoped."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 225117bc-d91e-43ec-bfcb-1a4e63138dc2 + apim-request-id: 0f770871-909a-48b1-8774-522ada8af602 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '83' + x-envoy-upstream-service-time: '154' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint.yaml index c8be524002ec..1e25d8781f0e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"0","sentiment":"neutral","confidenceScores":{"positive":0.07,"neutral":0.93,"negative":0.0},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.07,"neutral":0.93,"negative":0.0},"offset":0,"length":33,"text":"This @@ -23,16 +23,16 @@ interactions: was too expensive."}],"warnings":[]},{"id":"2","sentiment":"negative","confidenceScores":{"positive":0.01,"neutral":0.32,"negative":0.67},"sentences":[{"sentiment":"negative","confidenceScores":{"positive":0.01,"neutral":0.32,"negative":0.67},"offset":0,"length":42,"text":"The restaurant was not as good as I hoped."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 9b599119-74b0-4436-b590-c633d8f11247 + apim-request-id: 99e05f2b-dce3-4127-b1ef-a526ca59e311 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '105' + x-envoy-upstream-service-time: '89' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_dict_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_dict_input.yaml index 97479206746d..f3fb54dbaed3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_dict_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_dict_input.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"offset":0,"length":22,"text":"I @@ -22,16 +22,16 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":0.97,"neutral":0.02,"negative":0.01},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":0.97,"neutral":0.02,"negative":0.01},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: b9e3628e-8e52-488b-a8e1-313966e3363a + apim-request-id: c13e5370-bfb7-4ede-b734-d592c3839fa7 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '99' + x-envoy-upstream-service-time: '112' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml index 290069401887..968bfb0d6898 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: '{"documents":[{"id":"1","sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"sentences":[{"sentiment":"neutral","confidenceScores":{"positive":0.04,"neutral":0.95,"negative":0.01},"offset":0,"length":22,"text":"I @@ -22,16 +22,16 @@ interactions: did not like the hotel we stayed at."}],"warnings":[]},{"id":"3","sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"sentences":[{"sentiment":"positive","confidenceScores":{"positive":1.0,"neutral":0.0,"negative":0.0},"offset":0,"length":36,"text":"The restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 1b8322e9-779b-4735-9b5e-3d07ddc2d1ef + apim-request-id: 8f86473f-9f4f-4d65-ae7f-1cb7eb91ce5f content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '97' + x-envoy-upstream-service-time: '124' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_obj_input.yaml index 0fee7c9a573c..315edcfe68ca 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_obj_input.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: "{\"documents\":[{\"id\":\"1\",\"sentiment\":\"neutral\",\"confidenceScores\"\ @@ -32,16 +32,16 @@ interactions: :0.06},\"offset\":0,\"length\":4,\"text\":\"\u732B\u306F\u5E78\u305B\"}],\"\ warnings\":[]}],\"errors\":[],\"modelVersion\":\"2020-04-01\"}" headers: - apim-request-id: 5df20d3f-b468-4c04-846e-a3e5a2a99b24 + apim-request-id: 7344de7f-c20e-4596-b24c-a2c46c4ea626 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '141' + x-envoy-upstream-service-time: '95' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml index d20f38ac363e..9d6a5d77de4a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/sentiment?showStats=false response: body: string: "{\"documents\":[{\"id\":\"1\",\"sentiment\":\"neutral\",\"confidenceScores\"\ @@ -32,16 +32,16 @@ interactions: :0.06},\"offset\":0,\"length\":4,\"text\":\"\u732B\u306F\u5E78\u305B\"}],\"\ warnings\":[]}],\"errors\":[],\"modelVersion\":\"2020-04-01\"}" headers: - apim-request-id: 8812dfc4-8ff5-4362-a5c1-02c15f3123ef + apim-request-id: d2f7eac7-9960-40c5-9abe-7b3129747861 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '116' + x-envoy-upstream-service-time: '104' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/sentiment?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/sentiment?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_all_successful_passing_dict.yaml index b3101d32a957..e40b226ed5e6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_all_successful_passing_dict.yaml @@ -19,19 +19,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=true response: body: string: '{"statistics":{"documentsCount":4,"validDocumentsCount":4,"erroneousDocumentsCount":0,"transactionsCount":4},"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"statistics":{"charactersCount":41,"transactionsCount":1},"warnings":[]},{"id":"2","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"statistics":{"charactersCount":39,"transactionsCount":1},"warnings":[]},{"id":"3","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"statistics":{"charactersCount":4,"transactionsCount":1},"warnings":[]},{"id":"4","detectedLanguage":{"name":"German","iso6391Name":"de","confidenceScore":1.0},"statistics":{"charactersCount":46,"transactionsCount":1},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 19d49ecf-b4ea-44be-96d9-c3328370b951 + - f3a405b3-2203-46c8-89e4-c653d1c3871e content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -39,7 +39,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '39' + - '15' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_all_successful_passing_text_document_input.yaml index 2e634f81dd61..c01a78d6174b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_all_successful_passing_text_document_input.yaml @@ -19,19 +19,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"warnings":[]},{"id":"4","detectedLanguage":{"name":"German","iso6391Name":"de","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 7c0e1192-b8ec-4e83-8c8f-4af670b6861e + - 7a822279-2ca3-40c2-ab92-b2509700678c content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -39,7 +39,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '14' + - '8' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_bad_credentials.yaml index ad134623393d..e819484b395d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_bad_credentials.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:43 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_bad_model_version_error.yaml index 2330c011f031..3bad2e0ff64c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_bad_model_version_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2019-10-01"}}}' headers: apim-request-id: - - a3967115-7236-4e39-be74-3532ae8c7a4b + - e865b305-db0a-4054-aeb2-f4c7c169a499 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:35 GMT + - Fri, 24 Jul 2020 16:32:43 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_batch_size_over_limit.yaml index ad0464c2c7fb..1bef5ab737f6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_batch_size_over_limit.yaml @@ -765,18 +765,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - 7180ece1-d314-4aae-89da-5fe822d0efd2 + - 59601596-fa31-44c9-82f4-e4e435eb248e content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -784,7 +784,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '17' + - '15' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_batch_size_over_limit_error.yaml index 1379bada53ee..34fda7040f3b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_batch_size_over_limit_error.yaml @@ -730,18 +730,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - 7e8dce65-e3d9-470b-8847-ecec8cf704c3 + - cf658a6e-41c2-4324-bbce-1c98d6d6910f content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -749,7 +749,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '13' + - '11' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_client_passed_default_country_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_client_passed_default_country_hint.yaml index b71093c34149..1d2d164fbc08 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_client_passed_default_country_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_client_passed_default_country_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 12c434c9-149f-48b1-8974-24a63326069b + - a263b0ec-bd7f-46fc-b278-898936be3abf content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '13' + - '15' status: code: 200 message: OK @@ -61,19 +61,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 4f69b127-e0b4-4067-bd33-1755f121d8a9 + - e0cd65c2-3d62-485b-85a3-72aa09bfe905 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -104,19 +104,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 0d4a6b62-cb9c-4670-82f0-bd910636f3cb + - a22d55b3-a257-473b-b03e-84f66b7dd1aa content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -124,7 +124,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '24' + - '8' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_country_hint_kwarg.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_country_hint_kwarg.yaml index ade51c6e1cdd..2ac6f96f9edb 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_country_hint_kwarg.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_country_hint_kwarg.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"statistics":{"charactersCount":26,"transactionsCount":1},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 769ac36f-8e7d-4c14-b49b-22ec378cc3c0 + - dbf379af-a317-47f7-8cb9-508c45bf31d5 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '8' + - '7' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_country_hint_none.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_country_hint_none.yaml index 48302e7445b5..c2e8f3a37937 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_country_hint_none.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_country_hint_none.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - e18658ae-8b8d-45dd-9f65-a6b3de0e01bb + - 4a730470-e0bf-46f2-95bb-e69de1dfbd2d content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '13' status: code: 200 message: OK @@ -57,19 +57,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 455d9952-1791-4269-9423-f6e1ac63ef48 + - d46766e6-e8ee-466f-b0cb-5ca6766bd34a content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -77,7 +77,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '7' + - '14' status: code: 200 message: OK @@ -98,19 +98,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 5685507b-bb83-49fa-b33e-b21ca3a6da5e + - 5f2451ba-29dd-4267-bba2-cadccc494974 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -118,7 +118,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '7' status: code: 200 message: OK @@ -139,19 +139,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 8cb36934-eb16-4870-adc3-2d03434a9ee0 + - 7eb6cdd5-9142-4a0b-8994-5bd77aea5742 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -159,7 +159,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '14' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_attribute_error_no_result_attribute.yaml index 7dbe49d10176..984b6a9e1bb1 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_attribute_error_no_result_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,11 +23,11 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 329feb8b-3fb7-48ce-ba41-a796c55294e2 + - e5596b4f-83b8-48fa-8b65-3eb34fe41c2a content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '2' + - '1' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_attribute_error_nonexistent_attribute.yaml index fd97efc0d6a9..43c74a00b0eb 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_attribute_error_nonexistent_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,11 +23,11 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 4a59fcb6-7aba-45b3-ae87-dbba475e3468 + - a013ede2-7c6a-4fc4-80d0-bf5c1b00a841 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '2' + - '1' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_errors.yaml index 35cc4bf00a9a..2205a1d99025 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_errors.yaml @@ -17,7 +17,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -29,11 +29,11 @@ interactions: see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 82cd70f4-bdbd-4a57-92ca-c5ef97356a42 + - acb47440-95c7-4b54-a0fe-dc941d8ec512 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_warnings.yaml index 164982d7fca1..1f86206274ec 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_document_warnings.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 4efc2e16-6e12-4df9-b634-d48f11fa76f8 + - a9b4bb8e-4e7d-46c2-bfd9-54e8d12b0b21 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '8' + - '17' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_duplicate_ids_error.yaml index 2dee04713406..0403f5d51666 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_duplicate_ids_error.yaml @@ -17,18 +17,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: apim-request-id: - - 4fd4d073-1ed1-4298-b31f-54933860756a + - 3b4b92b3-ee37-44f4-a585-5f35267a0f77 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '5' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_empty_credential_class.yaml index f745a4468b84..635df607cab8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_empty_credential_class.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:47 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_input_with_all_errors.yaml index d06a38f264b5..1ad1c6ba2f4c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_input_with_all_errors.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -34,11 +34,11 @@ interactions: see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 02ca543c-db02-4c5e-92d3-6e8c6115e006 + - b1d46a45-3d64-4ae5-a1e6-3a217b055c20 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -46,7 +46,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '3' + - '2' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_input_with_some_errors.yaml index a3e22cf5d4a3..2981492b7f67 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_input_with_some_errors.yaml @@ -19,7 +19,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"2","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"4","detectedLanguage":{"name":"German","iso6391Name":"de","confidenceScore":1.0},"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -30,13 +30,13 @@ interactions: is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 1e84f6ca-ad68-4bc1-9011-7100a0b0eb93 + - 63384771-382a-46d9-bbd8-389ae19b218c content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=2 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -44,7 +44,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '13' + - '6' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_invalid_country_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_invalid_country_hint_docs.yaml index bf1c2b1285e6..f6eecbe40c6c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_invalid_country_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_invalid_country_hint_docs.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -25,11 +25,11 @@ interactions: code."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 61f55788-8470-48e0-abb5-ad0c6b8a471a + - 19265f5b-cfac-4376-b6c3-f435474d4f06 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_invalid_country_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_invalid_country_hint_method.yaml index 14eb31346d76..b9c006eab882 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_invalid_country_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_invalid_country_hint_method.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -25,11 +25,11 @@ interactions: code."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 34598bde-e4da-4f65-9779-de4c4fc0b774 + - 704de4ad-a062-4a59-9706-61114f611145 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -37,7 +37,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '2' + - '1' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_out_of_order_ids.yaml index 2fee3dc0f702..13ec20b9d837 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_out_of_order_ids.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"56","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"warnings":[]},{"id":"0","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"warnings":[]},{"id":"19","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"warnings":[]},{"id":"1","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 24bf4210-f1a1-4740-8d04-020c27bc3e1b + - 8194be8f-2284-436d-b878-711535e0fa48 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '7' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_output_same_order_as_input.yaml index 434e3365db58..697f8e93e56b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_output_same_order_as_input.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"4","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"5","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - e652b58d-4f1d-4139-8dbd-19c1db1942c5 + - 7acba81f-4af2-45a2-9cbb-89d9623c95db content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=5 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_pass_cls.yaml index 38730e018360..0fa211fb6af2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_pass_cls.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 839a0d15-bca3-41a0-a6e5-0b0ee3b7ac97 + - 323f2cbb-f92b-488a-ae2a-1902d4673096 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '12' + - '9' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_passing_only_string.yaml index 32dd59b21a02..88d5a03efbd0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_passing_only_string.yaml @@ -19,7 +19,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"1","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"German","iso6391Name":"de","confidenceScore":1.0},"warnings":[]}],"errors":[{"id":"4","error":{"code":"InvalidArgument","message":"Invalid @@ -27,13 +27,13 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - e580a9e6-b3ed-405f-b714-7bdad4f0c4d6 + - 9fcc3c4e-c0ab-4c43-8fe2-3ea7c1f1d9e4 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_per_item_dont_use_country_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_per_item_dont_use_country_hint.yaml index b26bb76b578d..a6d38f7c1519 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_per_item_dont_use_country_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_per_item_dont_use_country_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - ddf95f80-f779-481f-9d05-39a76460f8cf + - 28b1bff6-586e-4618-8898-7dd8c41a565f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '8' + - '10' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_rotate_subscription_key.yaml index 22bd7f2a2202..575e422b805b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_rotate_subscription_key.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 3f5fdea2-46f0-4257-a79e-911f11d33c6c + - dcf16c34-b2e1-4cba-af06-7f1025e14f0f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '12' + - '7' status: code: 200 message: OK @@ -61,7 +61,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -71,7 +71,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:46 GMT status: code: 401 message: PermissionDenied @@ -94,19 +94,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 6de0b4fb-28f0-46e2-be9c-aad8a842a635 + - d91407e8-405e-421b-9e77-ac2a6c7c1b5f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -114,7 +114,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '8' + - '7' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_show_stats_and_model_version.yaml index 4e8892634c7a..a48a1f763653 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_show_stats_and_model_version.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"0","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"19","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"1","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 9d4da61a-7c88-4b34-90cb-e502165e780d + - b885ec99-9c84-406c-ae5a-89730c9b6ba2 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_user_agent.yaml index 66df20ff6f80..1eb950111f5e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_user_agent.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 695cb4ca-8c6b-46c6-a1c6-f4f05a425898 + - e7b82277-8276-4ee8-bd8f-5420c531dae8 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:35 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '21' + - '6' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint.yaml index 1890d271cf32..4120c358d34b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 81a96f7c-fd71-4774-a88b-952eea548dff + - c8cae5a2-898c-4320-b2e4-5a3e1f343734 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '16' + - '7' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_dict_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_dict_input.yaml index 104af2aba194..f2cbae68f52b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_dict_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_dict_input.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 64238405-29ad-4e40-9a33-27f93c8aaabc + - 82e09fb7-977c-459e-ab06-f646f0b759f8 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '14' + - '9' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_dict_per_item_hints.yaml index 11dee2103817..8fc790defee3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_dict_per_item_hints.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 054c8895-2d5d-4f62-b050-6543eb17db19 + - 26a25701-f156-4ece-8d4b-4a452664b21f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:36 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '8' + - '6' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_obj_input.yaml index d64cfbf123f1..8638ba6a71ed 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_obj_input.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 8a8be22a-d108-4ede-9c38-92363381225d + - 44c91ebc-9e7b-4107-b492-e6811a25c461 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '14' + - '26' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_obj_per_item_hints.yaml index 68a1edeb284f..b3c627bb7c18 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_country_hint_and_obj_per_item_hints.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"4","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 623f02d3-a3a4-44eb-9dd6-2e80b3e51112 + - 8cda4b5a-8838-4244-9f81-3173b3fbd257 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '7' + - '8' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_dont_use_country_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_dont_use_country_hint.yaml index b8e2dbf47d48..a86542113bde 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_dont_use_country_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language.test_whole_batch_dont_use_country_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 6909997c-5aa4-4739-b540-a35709b7c95e + - 7c9531b7-b9ef-4acb-9fe7-d7b88725e022 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '12' + - '6' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_all_successful_passing_dict.yaml index 904af9d875fe..63898d6ce2c0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_all_successful_passing_dict.yaml @@ -15,21 +15,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=true response: body: string: '{"statistics":{"documentsCount":4,"validDocumentsCount":4,"erroneousDocumentsCount":0,"transactionsCount":4},"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"statistics":{"charactersCount":41,"transactionsCount":1},"warnings":[]},{"id":"2","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"statistics":{"charactersCount":39,"transactionsCount":1},"warnings":[]},{"id":"3","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"statistics":{"charactersCount":4,"transactionsCount":1},"warnings":[]},{"id":"4","detectedLanguage":{"name":"German","iso6391Name":"de","confidenceScore":1.0},"statistics":{"charactersCount":46,"transactionsCount":1},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 6ba6a553-4383-4710-b227-1410e81ef0d7 + apim-request-id: d94f0fbd-be40-42ff-bed6-b965ea7be8b6 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '8' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_all_successful_passing_text_document_input.yaml index b8e0ce87b179..0b50ac6bbb8e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_all_successful_passing_text_document_input.yaml @@ -15,21 +15,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"warnings":[]},{"id":"4","detectedLanguage":{"name":"German","iso6391Name":"de","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 02367ade-4be5-436b-8be7-14eb2d4ca7a0 + apim-request-id: 107b426b-0380-4176-889b-d0e3c12ff24c content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '9' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_bad_credentials.yaml index fb027a9b9fa2..96b847d8e76e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_bad_credentials.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_bad_model_version_error.yaml index 077160632d13..657a367ac066 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_bad_model_version_error.yaml @@ -12,15 +12,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2019-10-01"}}}' headers: - apim-request-id: 05118777-7c61-4f60-bc52-a1a461deb4f6 + apim-request-id: 8fb49529-a052-4607-bbd7-67a89128744d content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -28,5 +28,5 @@ interactions: status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?model-version=bad&showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?model-version=bad&showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_batch_size_over_limit.yaml index 0788ef6cbbd7..c2f2f4445da8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_batch_size_over_limit.yaml @@ -761,15 +761,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: 87cacf11-a25f-436e-90e5-2de057c09642 + apim-request-id: c6e185a9-5654-4b2d-a6a7-3e79b7200910 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -777,5 +777,5 @@ interactions: status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_batch_size_over_limit_error.yaml index 1d10b392475e..86ee553acfd6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_batch_size_over_limit_error.yaml @@ -726,15 +726,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: ec20dfea-630f-49c2-8482-e874442828b0 + apim-request-id: 00a77b36-500c-434e-baa9-307c4a111d2d content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -742,5 +742,5 @@ interactions: status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_client_passed_default_country_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_client_passed_default_country_hint.yaml index a3dd54c675c1..659b2fbeef94 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_client_passed_default_country_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_client_passed_default_country_hint.yaml @@ -14,15 +14,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 4738455b-f272-4e94-9768-6021d4d7984b + apim-request-id: 953e3a4e-b259-4c71-9a07-67e4e6cb4365 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -30,7 +30,7 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "countryHint": "DE"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "countryHint": @@ -46,23 +46,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 060867ee-a949-49f2-a82b-891254100429 + apim-request-id: 6dce5c9c-113c-4bd3-9e36-0f64bb4ed770 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '8' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "countryHint": "CA"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "countryHint": @@ -78,15 +78,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 107b8e95-53f8-4976-aeff-16c8d9a8fd2f + apim-request-id: e3c0cf99-3a02-44d8-a2d7-654a95bfe0a2 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -94,5 +94,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_country_hint_kwarg.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_country_hint_kwarg.yaml index 2ab8165c2aa4..318eb84741b5 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_country_hint_kwarg.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_country_hint_kwarg.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"statistics":{"charactersCount":26,"transactionsCount":1},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: d0d20306-4081-4572-a412-c30fcd20d39f + apim-request-id: 6143cb65-5cdf-4334-a8fe-0712449a3d4d content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_country_hint_none.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_country_hint_none.yaml index b2b20ffddc46..19b21ffc79da 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_country_hint_none.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_country_hint_none.yaml @@ -12,23 +12,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 3156fff9-6913-4389-aa12-7ae792138cda + apim-request-id: 95a96846-394d-42e5-966a-21b64f1580d3 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '6' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false - request: body: '{"documents": [{"id": "1", "text": "This is written in English.", "countryHint": ""}]}' @@ -42,23 +42,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 9ce75f11-6f43-4d01-a8f6-19530d7acb1a + apim-request-id: 3a06cf6b-0f7e-4bab-8c7b-70d0252c2340 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '6' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false - request: body: '{"documents": [{"id": "0", "text": "this is written in english", "countryHint": ""}]}' @@ -72,15 +72,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 450df9eb-9d57-4c2c-acfb-cb7c971dd7fe + apim-request-id: 402c2b36-368d-4dc0-ab58-750bba36d03f content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -88,7 +88,7 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false - request: body: '{"documents": [{"id": "0", "text": "this is written in english", "countryHint": ""}]}' @@ -102,21 +102,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 6c0219e4-13e0-44d9-b871-061031f0e611 + apim-request-id: 434c280f-c230-4f1f-8487-e662af1c0644 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '10' + x-envoy-upstream-service-time: '6' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_attribute_error_no_result_attribute.yaml index 919a90c5d1b5..7ba981192239 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_attribute_error_no_result_attribute.yaml @@ -11,16 +11,16 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: a1d94548-65ce-4dfe-b693-1f5b21675a1a + apim-request-id: 0554e944-c14e-4a8f-a1b3-ebf8b6f9b358 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -28,5 +28,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_attribute_error_nonexistent_attribute.yaml index 805c3b78e7aa..270eaa7a54a8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_attribute_error_nonexistent_attribute.yaml @@ -11,22 +11,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 6761c394-c5e6-478c-b297-b977215aeeb1 + apim-request-id: 2d0972f1-9c05-4171-a6b1-bb5dc1cb2bba content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '1' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_errors.yaml index 5ca479b6010e..2a93dc403995 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_errors.yaml @@ -13,7 +13,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -24,15 +24,15 @@ interactions: size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 43652b83-8bb8-4a93-af3e-87ca7b4775f6 + apim-request-id: 0546eff8-748b-4af5-a8f3-8e6d7b5c0c7d content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_warnings.yaml index 78568d0d1f60..70f18ef11454 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_document_warnings.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 7f7e2a04-9e26-4230-9dfb-22fc808ac7af + apim-request-id: af357aca-1a06-4cea-bcb9-e3d46a068965 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '12' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_duplicate_ids_error.yaml index f23d2efb346b..7a19130126a9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_duplicate_ids_error.yaml @@ -13,21 +13,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: - apim-request-id: 849a9531-4019-4302-84ff-33ba8733aa4e + apim-request-id: 8eb45a08-cafe-4a18-bf95-1ebbb4c20441 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '4' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_empty_credential_class.yaml index 3d2c66ac4e60..165c5b8e8a7f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_empty_credential_class.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_input_with_all_errors.yaml index 4fed5f527d85..586e2c97efc6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_input_with_all_errors.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -29,9 +29,9 @@ interactions: size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 19673641-d8f2-4452-8df5-aa13260d4d8f + apim-request-id: fca43c30-c24b-4707-b788-64eedc0658da content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -39,5 +39,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_input_with_some_errors.yaml index c7a9cb8f2e92..2dfcc26980ee 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_input_with_some_errors.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"2","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"4","detectedLanguage":{"name":"German","iso6391Name":"de","confidenceScore":1.0},"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -25,16 +25,16 @@ interactions: in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 1f668a29-226b-478d-b00f-62de077f6431 + apim-request-id: 46640073-4a4d-437a-8502-6436ddc59e2b content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=2 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '9' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_invalid_country_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_invalid_country_hint_docs.yaml index 1a560df3e58e..341a6ec9d24d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_invalid_country_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_invalid_country_hint_docs.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -20,15 +20,15 @@ interactions: hint is not valid. Please specify an ISO 3166-1 alpha-2 two letter country code."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: a7d3dd96-ec58-449b-8b77-c005f4749219 + apim-request-id: e4ad770a-7a0e-455c-bedf-514223112e62 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:44 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '1' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_invalid_country_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_invalid_country_hint_method.yaml index d43d794848b0..aaee341861d2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_invalid_country_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_invalid_country_hint_method.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -20,15 +20,15 @@ interactions: hint is not valid. Please specify an ISO 3166-1 alpha-2 two letter country code."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 4a934f16-8c9a-4663-a1d8-cc6034024d61 + apim-request-id: 453f65f8-a508-4786-aa17-51ea1572d655 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '1' + x-envoy-upstream-service-time: '3' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_out_of_order_ids.yaml index d96c39f0749a..94302c744d7e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_out_of_order_ids.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"56","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"warnings":[]},{"id":"0","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"warnings":[]},{"id":"19","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"warnings":[]},{"id":"1","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 6ae30d05-4f3a-46da-a8ce-821ac18691c2 + apim-request-id: efd59133-9888-4938-b865-3bbfb894cb57 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:35 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '19' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_output_same_order_as_input.yaml index 4b511f78286c..14bd8b474e8d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_output_same_order_as_input.yaml @@ -14,15 +14,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"4","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"5","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 983f98e8-0936-4ba4-8ffa-9493068ff1d8 + apim-request-id: 566ba137-d50b-4e9c-af1c-68fade3ee438 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=5 - date: Thu, 18 Jun 2020 19:52:36 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -30,5 +30,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_pass_cls.yaml index 4fa56e9ea156..e6ecd56442e9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_pass_cls.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: f4adffc8-071a-4aaf-b223-224a4602acbb + apim-request-id: e5129bae-469f-41a2-bc8f-2a74718a640f content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '8' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_passing_only_string.yaml index 4ae17b391169..03e233da9e79 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_passing_only_string.yaml @@ -15,23 +15,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"1","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"German","iso6391Name":"de","confidenceScore":1.0},"warnings":[]}],"errors":[{"id":"4","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 47444ecf-0d8a-4875-b80c-512a496086d7 + apim-request-id: fa0ec23e-1bc1-41ca-8d06-fa4096707af9 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '11' + x-envoy-upstream-service-time: '8' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_per_item_dont_use_country_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_per_item_dont_use_country_hint.yaml index 4179d853658b..7a5ff9103970 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_per_item_dont_use_country_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_per_item_dont_use_country_hint.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 7a99c22c-bee3-4bf1-b6d3-222fcc045f60 + apim-request-id: 33359a13-be2b-41eb-bdd0-5e62ba465326 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '6' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_rotate_subscription_key.yaml index 8cab22adf807..7d6795d9b36f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_rotate_subscription_key.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 56a1d36e-6396-47ef-b754-fd05110b5585 + apim-request-id: e5259fef-6a15-483f-987c-02841de95064 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '8' + x-envoy-upstream-service-time: '9' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "countryHint": "US"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "countryHint": @@ -46,7 +46,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -54,11 +54,11 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "countryHint": "US"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "countryHint": @@ -74,21 +74,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 553b9352-5c9d-4963-950a-484af4f9a60e + apim-request-id: 7c866ffa-9002-44d1-b5af-0f9f5806b5de content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:38 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '6' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_show_stats_and_model_version.yaml index 65666565d281..537e41983b4f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_show_stats_and_model_version.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"0","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"19","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"1","detectedLanguage":{"name":"(Unknown)","iso6391Name":"(Unknown)","confidenceScore":0.0},"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 690c5550-17f6-498e-b65d-58de62d205a3 + apim-request-id: 659acbc9-62e9-4685-9a80-555c2e4aa6bd content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '9' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_user_agent.yaml index e255c4888dc6..251fbda17f82 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_user_agent.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: f9c6bc83-bcf0-4f63-aaa8-78af677e081d + apim-request-id: 221b50d8-3ed8-42ea-be97-08eca6cd869a content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '10' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint.yaml index 5d03f75bfa6a..a4f8d277a6cf 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 69673223-8d3a-4be7-b027-2d835cbf22b7 + apim-request-id: eec8dafd-4162-4eab-a1d4-dcd948c67559 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '6' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_dict_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_dict_input.yaml index 78e325e061fa..4e40f9a88329 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_dict_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_dict_input.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 905c8fe8-a6e8-4165-a64b-4f377979443c + apim-request-id: cd3971ab-59dd-4ff7-9ce9-1d018861b070 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:45 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '11' + x-envoy-upstream-service-time: '15' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_dict_per_item_hints.yaml index 58e94156c1f3..93391c2bf70c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_dict_per_item_hints.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 59095ec2-03b3-476a-ac51-6dc276b0ea1a + apim-request-id: 2f6bc694-d58e-4e53-80ea-52b4d0b06065 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '8' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_obj_input.yaml index fc36b464059f..0bd48495a316 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_obj_input.yaml @@ -14,15 +14,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: bc8c1737-a35e-4f23-9c17-21e756366ec0 + apim-request-id: 1712442a-1b0d-4ee1-ae42-c4851e9dcbea content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -30,5 +30,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_obj_per_item_hints.yaml index d2b479083786..b0c6dab20fbf 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_country_hint_and_obj_per_item_hints.yaml @@ -14,15 +14,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"4","detectedLanguage":{"name":"Spanish","iso6391Name":"es","confidenceScore":1.0},"warnings":[]},{"id":"3","detectedLanguage":{"name":"Japanese","iso6391Name":"ja","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 76eacc7f-1f5f-4f7c-9a5a-0ea05a376e58 + apim-request-id: 3835547e-2543-47e5-8ab7-06f610de2366 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -30,5 +30,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_dont_use_country_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_dont_use_country_hint.yaml index 6944ba038acb..3a67ae1e2d8d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_dont_use_country_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_detect_language_async.test_whole_batch_dont_use_country_hint.yaml @@ -14,15 +14,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"0","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]},{"id":"2","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 2c7c65be-5520-419c-a886-d061f5567bd1 + apim-request-id: 88426c3b-36c1-4832-8f78-da90b1110622 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:37 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -30,5 +30,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/languages?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/languages?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_all_successful_passing_dict.yaml index ab80be89fc8d..2c495c14818a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_all_successful_passing_dict.yaml @@ -17,7 +17,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=true response: body: string: '{"statistics":{"documentsCount":2,"validDocumentsCount":2,"erroneousDocumentsCount":0,"transactionsCount":2},"documents":[{"id":"1","keyPhrases":["Bill @@ -25,13 +25,13 @@ interactions: Gates","Paul Allen","Microsoft"],"statistics":{"charactersCount":49,"transactionsCount":1},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 6810720f-8032-4dd2-b1ad-d957a2d3192b + - a1dc5e5b-6b95-4fba-8c0f-72fa4b1fc8cf content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=2 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -39,7 +39,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '10' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_all_successful_passing_text_document_input.yaml index aa7670c16e7e..f9945d6ddc85 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_all_successful_passing_text_document_input.yaml @@ -17,20 +17,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"warnings":[]},{"id":"2","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - c5cb47c5-19c4-46b3-ba74-a1aa4c900631 + - 12f1524e-96a6-4bfa-b3be-a231085521e5 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=2 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '9' + - '6' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_bad_credentials.yaml index 130ac6dbfe65..0548ef9ceaa2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_bad_credentials.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:46 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_bad_model_version_error.yaml index 83fb65972566..7232fb03e2cf 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_bad_model_version_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2019-10-01"}}}' headers: apim-request-id: - - 95b27978-aae2-4310-a894-aab0d28f107f + - 7fdf22bd-feb4-4eb4-96ec-5dbdaba47725 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '4' + - '5' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_batch_size_over_limit.yaml index 5552a6420038..f210131573f3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_batch_size_over_limit.yaml @@ -760,18 +760,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - 4522d2c2-b135-4362-b3af-ed45d993a397 + - 508b2e5b-6400-4b8d-a9e5-99d3a80ef225 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:37 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -779,7 +779,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '27' + - '88' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_batch_size_over_limit_error.yaml index 4e32c36bd1d6..fbc706fdee32 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_batch_size_over_limit_error.yaml @@ -725,18 +725,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - f981da9c-5e9f-452d-8b88-2a9a12ecdd49 + - b405b156-5759-48fe-aec9-9da3099f23bc content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -744,7 +744,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '27' + - '28' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_client_passed_default_language_hint.yaml index d22c2ddca6f6..6966617c9a8a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_client_passed_default_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_client_passed_default_language_hint.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["the park","I will go"],"warnings":[]},{"id":"2","keyPhrases":["I @@ -26,13 +26,13 @@ interactions: restaurant had really good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - a3ba672f-3224-455d-8bcc-d1ae109a0b3b + - 24393168-ca16-430e-aee9-2de400735e3c content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '5' status: code: 200 message: OK @@ -63,20 +63,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 13b3a80f-e918-4b9d-8115-cd0562b71b10 + - fb2f575c-9b11-49a0-8621-a95f3666b588 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -84,7 +84,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '7' + - '5' status: code: 200 message: OK @@ -107,7 +107,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["the park","I will go"],"warnings":[]},{"id":"2","keyPhrases":["I @@ -115,13 +115,13 @@ interactions: restaurant had really good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 03c57d75-a07f-4d36-8237-58b07146d044 + - 7aa045c3-3683-4d9c-8a8f-d21779493dd7 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -129,7 +129,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '8' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_attribute_error_no_result_attribute.yaml index 6193cbc3ac38..815fe02f44f4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_attribute_error_no_result_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,13 +23,13 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - af6ea06a-281e-4980-98c6-63d980e7f490 + - bac7a530-8e51-487a-b285-90e68e599ba3 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=0 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_attribute_error_nonexistent_attribute.yaml index df51820d0035..cb661c47d74d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_attribute_error_nonexistent_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,13 +23,13 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - d06eae58-0de2-4d54-87b5-f7eb272dc802 + - eda65839-3f7c-4f65-b9ed-5b879c35221c content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=0 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_errors.yaml index 035d256e9935..48432d780a0a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_errors.yaml @@ -18,27 +18,27 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"A document within the request was too large to be processed. Limit document size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - d1c3e889-da1d-47da-a4d6-15c27be993a4 + - d6e92877-5f9c-4b01-b176-1147f3b903d5 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=0 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -46,7 +46,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '3' + - '4' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_warnings.yaml index 3984a64f0e5f..de00b99991ab 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_document_warnings.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["Thisisaveryveryverylongtextwhichgoesonforalongtimeandwhichalmost"],"warnings":[{"code":"LongWordsInDocument","message":"The @@ -24,13 +24,13 @@ interactions: will be truncated and may result in unreliable model predictions."}]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 143b0c59-ac42-419c-aeee-f47a8b6c2f04 + - 9db1eddc-bf89-4fe6-867a-f33ae45bcdf8 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_duplicate_ids_error.yaml index 6dbcbd84ae89..3cc8dde17dc4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_duplicate_ids_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: apim-request-id: - - a65243fc-d9d6-485b-868c-9f8a5c2e5e10 + - 0e5ee702-318b-4dc2-aed2-0ce3491d6de4 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '4' + - '115' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_empty_credential_class.yaml index 130ac6dbfe65..6ad43a5093b7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_empty_credential_class.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:48 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_input_with_all_errors.yaml index 057b411c1a68..6c7b4b4134f3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_input_with_all_errors.yaml @@ -17,23 +17,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - bf621d9f-db43-4581-bf94-f443921ba246 + - 3f113b25-f3d0-4a67-b2b5-dcb8288cfb44 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=0 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '3' + - '4' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_input_with_some_errors.yaml index 2719e6fada64..3516d4c89dd8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_input_with_some_errors.yaml @@ -17,21 +17,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"2","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 549ebae2-e279-407c-8479-efe1ff72c5d6 + - 30a860fe-3391-4efe-95f8-0f6646540be6 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -39,7 +39,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '5' + - '4' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_invalid_language_hint_docs.yaml index c0e93765c4ee..72263bd6365a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_invalid_language_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_invalid_language_hint_docs.yaml @@ -16,21 +16,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 98ff6f40-efa7-4881-ad2c-329055785e13 + - f8f1d7bf-d734-472f-97e2-f247a51e7f13 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=0 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_invalid_language_hint_method.yaml index e6bb45405e47..8ef63985d834 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_invalid_language_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_invalid_language_hint_method.yaml @@ -16,21 +16,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - be220d98-d9eb-4b2f-ac50-9d7863c40411 + - d68bc80b-dc0c-4786-9bb8-fd9fbf4b8560 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=0 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '4' + - '3' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_language_kwarg_spanish.yaml index 307ddcf3f8ba..086c9ddbdebc 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_language_kwarg_spanish.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_language_kwarg_spanish.yaml @@ -16,20 +16,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","keyPhrases":["Bill Gates","the CEO of Microsoft"],"statistics":{"charactersCount":35,"transactionsCount":1},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - f0ce9612-c59c-4bcd-b098-80327c810b9d + - eda5bd78-7e7e-456f-a018-84b3de5100d1 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -37,7 +37,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '5' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_out_of_order_ids.yaml index e5d778a301a4..576c9b2623a7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_out_of_order_ids.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"56","keyPhrases":[],"warnings":[]},{"id":"0","keyPhrases":[],"warnings":[]},{"id":"19","keyPhrases":[],"warnings":[]},{"id":"1","keyPhrases":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - b71912f6-a7bf-496b-ac3f-cc81a5956519 + - b82efbe6-b285-460b-9bf6-cdca01f4e9bd content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:46 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_output_same_order_as_input.yaml index 2927fb988d4b..a7ac8e322290 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_output_same_order_as_input.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":[],"warnings":[]},{"id":"2","keyPhrases":[],"warnings":[]},{"id":"3","keyPhrases":[],"warnings":[]},{"id":"4","keyPhrases":[],"warnings":[]},{"id":"5","keyPhrases":[],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 4e94de77-fb7d-4cbc-8ac3-3ec8358a5976 + - f50c1b4c-5d74-4f2f-b5e7-28b3d1d74ea4 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=5 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '5' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_pass_cls.yaml index 53d6dab22549..d69aa0a38bf6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_pass_cls.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":["Test","cls","endpoint"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 831feebe-fca9-440f-bb33-29719e7c7dfc + - e0a05ba4-8350-4aa4-aae2-c89993bffd3e content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '6' + - '4' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_passing_only_string.yaml index ef32a2cdb4ac..0d276d91beab 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_passing_only_string.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"warnings":[]},{"id":"1","keyPhrases":["Microsoft @@ -27,13 +27,13 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - d05b154b-9a57-4d8b-a8d8-626b965342b9 + - ca9315ad-43b8-465e-8b18-c53bdb1bad8e content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=2 date: - - Thu, 18 Jun 2020 19:52:38 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '10' + - '5' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_per_item_dont_use_language_hint.yaml index 9fe93b16a008..015efc446784 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_per_item_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_per_item_dont_use_language_hint.yaml @@ -18,20 +18,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 2f108377-21fb-431e-89ed-f55a8272645e + - 19ac7e4f-11c9-47c2-910f-ab2ae479369d content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -39,7 +39,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '5' + - '11' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_rotate_subscription_key.yaml index 6a91e626ddcf..ae749752ecf8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_rotate_subscription_key.yaml @@ -18,20 +18,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 8b4de5ef-2b5a-46c3-9881-4ccce29f77cd + - ca90ad95-949c-49fa-a1c6-2a93cdbea9fb content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -39,7 +39,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '11' + - '8' status: code: 200 message: OK @@ -62,7 +62,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -72,7 +72,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:47 GMT status: code: 401 message: PermissionDenied @@ -95,20 +95,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - c12c61a9-faa5-477c-b3b3-1f9c321fa669 + - 08e53e9a-da68-4250-bc3a-716276d08480 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -116,7 +116,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '13' + - '5' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_show_stats_and_model_version.yaml index 5f13c6f9720b..7ec0aa6f1d5b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_show_stats_and_model_version.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","keyPhrases":[],"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"0","keyPhrases":[],"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"19","keyPhrases":[],"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"1","keyPhrases":[],"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - d2ca5a99-7573-49bd-8a91-cae21fad6a57 + - b2dd2681-05ed-49a4-9a6d-f1e3abc0d838 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '4' + - '9' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_too_many_documents.yaml index 003d4c776df7..c527e1d5270d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_too_many_documents.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_too_many_documents.yaml @@ -21,7 +21,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":[],"warnings":[]},{"id":"1","keyPhrases":[],"warnings":[]},{"id":"2","keyPhrases":[],"warnings":[]},{"id":"3","keyPhrases":[],"warnings":[]},{"id":"4","keyPhrases":[],"warnings":[]},{"id":"5","keyPhrases":[],"warnings":[]},{"id":"6","keyPhrases":[],"warnings":[]},{"id":"7","keyPhrases":[],"warnings":[]},{"id":"8","keyPhrases":[],"warnings":[]},{"id":"9","keyPhrases":[],"warnings":[]},{"id":"10","keyPhrases":[],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The @@ -30,13 +30,13 @@ interactions: https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 1974472d-7ecc-43ed-9ef6-2b190f4006ee + - 09ec440d-c44f-41bc-a697-dff470e9b026 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=11 date: - - Mon, 06 Jul 2020 22:22:33 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -44,7 +44,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '10' + - '5' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_user_agent.yaml index 172dc9ec7370..ac51c536f619 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_user_agent.yaml @@ -18,20 +18,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 74139c1a-94fd-4eba-84c8-a37c3412cd98 + - 7712c14a-3f22-4b1b-9378-cded10398f1f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -39,7 +39,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '8' + - '7' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_dont_use_language_hint.yaml index 5f51e5127d73..0642e4d6ccb0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_dont_use_language_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":["best day","life"],"warnings":[]},{"id":"1","keyPhrases":["hotel"],"warnings":[]},{"id":"2","keyPhrases":["restaurant"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - d2a1ad1f-bc28-4854-b5fc-0b9e3cc4885b + - dcbc480a-b83b-4875-951d-b1f0808781ff content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint.yaml index d883f1003ed0..acb236b7fe7f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":["This was the best day","my"],"warnings":[]},{"id":"1","keyPhrases":["like @@ -26,13 +26,13 @@ interactions: good as I hoped","The restaurant was"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 43037573-051e-4321-aa6d-0d75bb7bd777 + - 591564a0-8960-4793-a5ed-27b29b170cfd content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '5' + - '6' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_dict_per_item_hints.yaml index 44fac10fa33f..709c70cb588c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["the park","I will go"],"warnings":[]},{"id":"2","keyPhrases":["I @@ -26,13 +26,13 @@ interactions: food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 9bc4deab-818d-48b9-a685-1f0589f4e3e6 + - 3035fd59-72f5-4179-aaf1-a205b8757b5d content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '5' + - '10' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_obj_input.yaml index 34c6430028e3..aa90729092a6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_obj_input.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: "{\"documents\":[{\"id\":\"1\",\"keyPhrases\":[\"should take my cat\ @@ -28,13 +28,13 @@ interactions: :[],\"modelVersion\":\"2019-10-01\"}" headers: apim-request-id: - - c7570d27-625f-46e9-9349-ed32cebf05d1 + - 663df110-444c-4687-bb63-fa20b4d13725 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -42,7 +42,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '3' + - '4' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_obj_per_item_hints.yaml index e6eb5a52324d..800922c5a264 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: "{\"documents\":[{\"id\":\"1\",\"keyPhrases\":[\"I should take my cat\"\ @@ -28,13 +28,13 @@ interactions: :\"2019-10-01\"}" headers: apim-request-id: - - c2ac0619-accc-4b19-8e9e-3c834eaf6f6e + - 976fb829-fca1-461b-9365-4e8d496841e0 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:39 GMT + - Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -42,7 +42,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '5' + - '6' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_all_successful_passing_dict.yaml index 0c7dbcb88ddf..e348ccce2359 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_all_successful_passing_dict.yaml @@ -13,23 +13,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=true response: body: string: '{"statistics":{"documentsCount":2,"validDocumentsCount":2,"erroneousDocumentsCount":0,"transactionsCount":2},"documents":[{"id":"1","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"statistics":{"charactersCount":50,"transactionsCount":1},"warnings":[]},{"id":"2","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"statistics":{"charactersCount":49,"transactionsCount":1},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 41620549-572b-42eb-9550-4f4122209501 + apim-request-id: 464b770a-6eba-46c4-90b1-4aee87689925 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=2 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '6' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_all_successful_passing_text_document_input.yaml index 4e1a7f5133a0..75571dc691bf 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_all_successful_passing_text_document_input.yaml @@ -13,22 +13,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"warnings":[]},{"id":"2","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 6e921974-2404-4794-8386-5a2a163afbc6 + apim-request-id: 52d19de4-ae26-435c-8c3a-6adb16619cca content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=2 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '6' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_bad_credentials.yaml index 950d185a7706..957dcaabd35f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_bad_credentials.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:50 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_bad_model_version_error.yaml index 69950a350aa2..af73617e8de3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_bad_model_version_error.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2019-10-01"}}}' headers: - apim-request-id: ad6c4f88-075d-455d-9b0e-50cef2d496ca + apim-request-id: 2fb9b99b-0e5f-41c6-91eb-7d089b18eb3c content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '4' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?model-version=bad&showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?model-version=bad&showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_batch_size_over_limit.yaml index 4fb10e84a56a..9f6d45a9e1c1 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_batch_size_over_limit.yaml @@ -756,21 +756,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: 283ad302-0efb-4899-8f74-3562c0a94027 + apim-request-id: bf8d8f75-d1cc-4a1f-ac3a-19305d8affd0 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '19' + x-envoy-upstream-service-time: '35' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_batch_size_over_limit_error.yaml index 6293e3ad8dea..693910a6250c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_batch_size_over_limit_error.yaml @@ -721,21 +721,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: 9f3e87fc-b78f-4729-9dad-a062b8a3fd55 + apim-request-id: 16b64a34-7382-45f0-abd6-c3a2245ffea1 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '31' + x-envoy-upstream-service-time: '19' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_client_passed_default_language_hint.yaml index f9f931d6b203..c37b01483b15 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_client_passed_default_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_client_passed_default_language_hint.yaml @@ -14,25 +14,25 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["the park","I will go"],"warnings":[]},{"id":"2","keyPhrases":["I did not like the hotel we stayed at"],"warnings":[]},{"id":"3","keyPhrases":["The restaurant had really good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: a82137d6-c881-4094-959b-8460800f84eb + apim-request-id: 3fea7699-b489-4d16-befe-a15b61dd98bc content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -48,24 +48,24 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: f644ba79-4276-4925-8eae-544c3a1ec865 + apim-request-id: 78f8ac1e-1eda-42b5-89d8-1c6e03d095cd content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '8' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -81,23 +81,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["the park","I will go"],"warnings":[]},{"id":"2","keyPhrases":["I did not like the hotel we stayed at"],"warnings":[]},{"id":"3","keyPhrases":["The restaurant had really good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: e6b570c1-e428-4375-8f50-d6cdd7bd5dae + apim-request-id: f454c8b4-7e92-45da-ac98-62d6f080ac74 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '6' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_attribute_error_no_result_attribute.yaml index 149f02f216b4..85862cbb606f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_attribute_error_no_result_attribute.yaml @@ -11,17 +11,17 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: ae11300e-26d8-4017-8802-f8d607c334b1 + apim-request-id: beb8aede-873f-43f1-ae0c-da559b8db8ef content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=0 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -29,5 +29,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_attribute_error_nonexistent_attribute.yaml index 417aa718a043..8747168d77bf 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_attribute_error_nonexistent_attribute.yaml @@ -11,17 +11,17 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 104fc8de-6246-4b4f-a214-a9214c0493f3 + apim-request-id: f73240a0-3f35-4ce7-876a-a9bd7756d3b7 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=0 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -29,5 +29,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_errors.yaml index b04a67d82281..63c4981b1c4e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_errors.yaml @@ -14,29 +14,29 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"A document within the request was too large to be processed. Limit document size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 74912856-8241-49bb-a09d-4a3dba7d33d8 + apim-request-id: 4035421d-154f-459b-aa89-76e8bf964b26 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=0 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '3' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_warnings.yaml index f8afec5a0e13..d3b33e2881e9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_document_warnings.yaml @@ -12,23 +12,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["Thisisaveryveryverylongtextwhichgoesonforalongtimeandwhichalmost"],"warnings":[{"code":"LongWordsInDocument","message":"The document contains very long words (longer than 64 characters). These words will be truncated and may result in unreliable model predictions."}]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: c33ef0f8-1d74-4be7-9dbd-44bc24e79d3d + apim-request-id: ed062a5f-71a5-4c7e-bb2c-a3e4ecf91d34 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '5' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_duplicate_ids_error.yaml index 9af0d93a58f0..917748bd5598 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_duplicate_ids_error.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: - apim-request-id: 670a1889-8c6b-4a4d-bd9a-fc3b7afe5f10 + apim-request-id: a0a74962-faea-471e-a3c8-7f7c589d6530 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '6' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_empty_credential_class.yaml index 33f73da0f41b..68820e3601d3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_empty_credential_class.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_input_with_all_errors.yaml index 9b7db2155108..fb949b174560 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_input_with_all_errors.yaml @@ -13,25 +13,25 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 5d9da846-cb89-4325-9a4d-cff54293aa3e + apim-request-id: 872df718-1a9c-4980-b0ad-beeaa4a686b0 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=0 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '5' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_input_with_some_errors.yaml index d039afd03d28..6a6a7f6e6416 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_input_with_some_errors.yaml @@ -13,23 +13,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"2","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 5c6f2448-b881-48dc-b4dc-6d90709a99fd + apim-request-id: acc1d893-8446-4a6c-9430-c0c78e15c58b content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '8' + x-envoy-upstream-service-time: '5' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_invalid_language_hint_docs.yaml index eb76a427c0d9..a47122c371db 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_invalid_language_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_invalid_language_hint_docs.yaml @@ -12,17 +12,17 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: ea0ffb1b-791e-46c7-9546-ba4275150223 + apim-request-id: baf4943d-29d8-41d0-98c7-62ec2c9a249c content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=0 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -30,5 +30,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_invalid_language_hint_method.yaml index eae1d4963d78..3442ff379ff2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_invalid_language_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_invalid_language_hint_method.yaml @@ -12,23 +12,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: da,de,en,es,fi,fr,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv"}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 65354389-6419-4e01-ac33-f866e55c389a + apim-request-id: 0953a5d2-ac21-4231-b2ca-80aa5b5cfa59 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=0 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '4' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_language_kwarg_spanish.yaml index 4ea759b8bad8..2d90abe85eb3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_language_kwarg_spanish.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_language_kwarg_spanish.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","keyPhrases":["Bill Gates","the CEO of Microsoft"],"statistics":{"charactersCount":35,"transactionsCount":1},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: b3e1bf3a-525e-4dbf-8629-9d5791b83d11 + apim-request-id: adf9177c-740e-4b86-a2d0-0248f31e811e content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '6' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_out_of_order_ids.yaml index ab1f75baa6e5..422d3c16d2c3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_out_of_order_ids.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"56","keyPhrases":[],"warnings":[]},{"id":"0","keyPhrases":[],"warnings":[]},{"id":"19","keyPhrases":[],"warnings":[]},{"id":"1","keyPhrases":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: a2ee111d-8f66-43b0-80eb-6972199e4d5e + apim-request-id: 0b0a2a0c-c8ba-4ec5-b784-f3ea7d2427bf content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:47 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '8' + x-envoy-upstream-service-time: '5' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_output_same_order_as_input.yaml index e4079228c88c..93e3e865b662 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_output_same_order_as_input.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":[],"warnings":[]},{"id":"2","keyPhrases":[],"warnings":[]},{"id":"3","keyPhrases":[],"warnings":[]},{"id":"4","keyPhrases":[],"warnings":[]},{"id":"5","keyPhrases":[],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: f11432d5-8a79-4e7d-baaa-e1b62ffd4bb2 + apim-request-id: 6e5dcf93-10c4-4fb0-8927-8c72d8a3d789 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=5 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '4' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_pass_cls.yaml index f7ef066326aa..08d6e479b828 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_pass_cls.yaml @@ -12,15 +12,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":["Test","cls","endpoint"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 4201d461-6861-4564-a05a-1212af038ce5 + apim-request-id: 6d3aabd0-1930-46d5-a7d8-1119e6a9b3bf content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -28,5 +28,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_passing_only_string.yaml index 38e72fe11623..3001b5098263 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_passing_only_string.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":["Bill Gates","Paul Allen","Microsoft"],"warnings":[]},{"id":"1","keyPhrases":["Microsoft @@ -22,16 +22,16 @@ interactions: document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 3a07a0cd-c96d-4f31-8a89-a7595be2f917 + apim-request-id: b570e13a-871e-447f-94b2-df06d49687ca content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=2 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '6' + x-envoy-upstream-service-time: '5' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_per_item_dont_use_language_hint.yaml index e6263935f9f1..aa76cfea8e4e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_per_item_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_per_item_dont_use_language_hint.yaml @@ -14,22 +14,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: b6efe781-17a4-4c26-ae4f-7017dd9e5a6d + apim-request-id: e073e0bb-f79e-4988-bbfa-4234a11e54d1 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:39 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '6' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_rotate_subscription_key.yaml index 95b9ec4be9ee..1683cb51c50a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_rotate_subscription_key.yaml @@ -14,16 +14,16 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 4b3796fa-a8d9-478c-a334-fcffac10343a + apim-request-id: c5c76435-0a9f-44ea-bb29-96ecde9dd1a5 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -31,7 +31,7 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -47,7 +47,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -55,11 +55,11 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -75,22 +75,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 704a13b1-fb4d-4dee-a86d-a749276ae3c0 + apim-request-id: 3d1162fe-4397-4e24-8300-5735162763e1 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '6' + x-envoy-upstream-service-time: '8' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_show_stats_and_model_version.yaml index 66b46778d457..b3b9cd278b21 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_show_stats_and_model_version.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","keyPhrases":[],"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"0","keyPhrases":[],"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"19","keyPhrases":[],"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]},{"id":"1","keyPhrases":[],"statistics":{"charactersCount":2,"transactionsCount":1},"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 6fc6b769-973e-4549-b60f-56d4fc374a26 + apim-request-id: e2903f20-e815-4a70-8c06-e2daaad408ea content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_too_many_documents.yaml index da5f036d638e..df8cb68ee8ff 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_too_many_documents.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_too_many_documents.yaml @@ -17,7 +17,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":[],"warnings":[]},{"id":"1","keyPhrases":[],"warnings":[]},{"id":"2","keyPhrases":[],"warnings":[]},{"id":"3","keyPhrases":[],"warnings":[]},{"id":"4","keyPhrases":[],"warnings":[]},{"id":"5","keyPhrases":[],"warnings":[]},{"id":"6","keyPhrases":[],"warnings":[]},{"id":"7","keyPhrases":[],"warnings":[]},{"id":"8","keyPhrases":[],"warnings":[]},{"id":"9","keyPhrases":[],"warnings":[]},{"id":"10","keyPhrases":[],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The @@ -25,16 +25,16 @@ interactions: number of documents in the request have exceeded the data limitations. See https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 146279f0-8cf2-4535-9b76-c747d7ac701d + apim-request-id: e01332a2-e954-4808-a67d-16aeb9a9ea60 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=11 - date: Mon, 06 Jul 2020 22:22:33 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '21' + x-envoy-upstream-service-time: '7' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_user_agent.yaml index 64da18f77a3d..1cc306759409 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_user_agent.yaml @@ -14,22 +14,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["park"],"warnings":[]},{"id":"2","keyPhrases":["hotel"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: c02fba21-470c-4f74-a4ef-f7081f63761f + apim-request-id: 0adeaded-6610-43a7-bd39-dfc2058d0522 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '5' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_dont_use_language_hint.yaml index 726afe21b821..b8d00f9fc54e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_dont_use_language_hint.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":["best day","life"],"warnings":[]},{"id":"1","keyPhrases":["hotel"],"warnings":[]},{"id":"2","keyPhrases":["restaurant"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: c2166cf3-51b0-492e-aacf-9151d5302b7d + apim-request-id: eebf745d-da7e-4d36-9bd6-6043ddb2208f content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '6' + x-envoy-upstream-service-time: '12' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint.yaml index 5ed9f3420854..4438365ff9ce 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"0","keyPhrases":["This was the best day","my"],"warnings":[]},{"id":"1","keyPhrases":["like the hotel we stayed","It was too expensive","I did"],"warnings":[]},{"id":"2","keyPhrases":["as good as I hoped","The restaurant was"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: b92e8ca9-b15f-4f70-be41-a694d3f34215 + apim-request-id: 6c82c32f-6052-4964-98b9-b2b1e74e51e9 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '9' + x-envoy-upstream-service-time: '12' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml index a862f9e97f87..28f0dbc7ef6f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: '{"documents":[{"id":"1","keyPhrases":["the park","I will go"],"warnings":[]},{"id":"2","keyPhrases":["I did not like the hotel we stayed at"],"warnings":[]},{"id":"3","keyPhrases":["restaurant","good food"],"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: - apim-request-id: 146636cd-ef70-4d54-a4d0-d2a706fbec6c + apim-request-id: e484df49-591e-4abb-b2a1-423e001e2c2d content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:40 GMT + date: Fri, 24 Jul 2020 16:32:48 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '5' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_obj_input.yaml index 0748e4f779f2..de6fffd8bb09 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_obj_input.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: "{\"documents\":[{\"id\":\"1\",\"keyPhrases\":[\"should take my cat\ @@ -23,16 +23,16 @@ interactions: 3\",\"keyPhrases\":[\"\u732B\u306F\u5E78\u305B\"],\"warnings\":[]}],\"errors\"\ :[],\"modelVersion\":\"2019-10-01\"}" headers: - apim-request-id: 0c786bea-b13a-4a88-8877-f3496e1adccb + apim-request-id: 5b1d04ff-ac44-45a5-bc93-ef5662f0530f content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '7' + x-envoy-upstream-service-time: '12' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml index a3d928f6f559..ce4f0f23da89 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_extract_key_phrases_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/keyPhrases?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/keyPhrases?showStats=false response: body: string: "{\"documents\":[{\"id\":\"1\",\"keyPhrases\":[\"I should take my cat\"\ @@ -23,16 +23,16 @@ interactions: :[\"\u732B\u306F\u5E78\u305B\"],\"warnings\":[]}],\"errors\":[],\"modelVersion\"\ :\"2019-10-01\"}" headers: - apim-request-id: 5afe9b4e-5340-4884-8456-7999ff9910ff + apim-request-id: 36700dd7-4ea9-41e0-9476-5d063f1ff835 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '6' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/keyPhrases?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/keyPhrases?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_all_successful_passing_dict.yaml index 75cc5a5a52c8..ca94c5cd398b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_all_successful_passing_dict.yaml @@ -19,7 +19,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=2020-02-01&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=2020-02-01&showStats=true response: body: string: '{"statistics":{"documentsCount":3,"validDocumentsCount":3,"erroneousDocumentsCount":0,"transactionsCount":3},"documents":[{"id":"1","statistics":{"charactersCount":68,"transactionsCount":1},"entities":[{"text":"Microsoft","category":"Organization","offset":0,"length":9,"confidenceScore":1.0},{"text":"Bill @@ -34,13 +34,13 @@ interactions: Allen","category":"Person","offset":52,"length":10,"confidenceScore":0.98}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 9b1ce967-31fc-43ec-aba0-b2eadc6f4948 + - e3dfc9b0-ff48-46af-a97e-ed1646abcd2f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -48,7 +48,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '82' + - '88' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_all_successful_passing_text_document_input.yaml index 163910268564..383331f428a8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_all_successful_passing_text_document_input.yaml @@ -19,7 +19,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=2020-02-01&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=2020-02-01&showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"Microsoft","category":"Organization","offset":0,"length":9,"confidenceScore":1.0},{"text":"Bill @@ -34,13 +34,13 @@ interactions: Allen","category":"Person","offset":52,"length":10,"confidenceScore":0.98}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 72338736-1693-4a47-994e-8dc31b2f1e32 + - 8971f287-f80e-49c1-a177-655d2160a528 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -48,7 +48,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '76' + - '84' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_bad_credentials.yaml index 50e2843267d2..6b015f7602e6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_bad_credentials.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:51 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_bad_model_version_error.yaml index 47aad93f9077..d7ed8fb43d12 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_bad_model_version_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2020-04-01,2019-10-01,2020-02-01"}}}' headers: apim-request-id: - - 397b0efa-d690-4a97-80f5-bc778f13d24b + - ce6f5d5a-370e-4cdc-9aa7-dd226a7a4863 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '5' + - '12' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_batch_size_over_limit.yaml index d33db9afb6c6..9a6ffff43606 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_batch_size_over_limit.yaml @@ -760,18 +760,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - 70d965f0-ca04-4ece-9ecb-37c10a25d2cd + - 11413a6a-19cc-499d-b510-7abf522c78c9 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -779,7 +779,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '212' + - '13' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_batch_size_over_limit_error.yaml index 1de80057faa8..3e17dc694447 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_batch_size_over_limit_error.yaml @@ -725,18 +725,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - fcb03bb8-08a9-4b8b-988b-f144bf687441 + - 6b6dafcc-307b-4724-b4b4-fbdda466e279 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -744,7 +744,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '10' + - '12' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_client_passed_default_language_hint.yaml index f77998047cd8..0f94473a2d14 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_client_passed_default_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_client_passed_default_language_hint.yaml @@ -18,19 +18,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: '{"documents":[{"id":"1","entities":[{"text":"I will go to the park","category":"Product","offset":0,"length":21,"confidenceScore":0.51}],"warnings":[]},{"id":"2","entities":[{"text":"hotel + we stayed at","category":"Location","offset":19,"length":18,"confidenceScore":0.69}],"warnings":[]},{"id":"3","entities":[{"text":"The + restaurant had really good food","category":"Organization","offset":0,"length":35,"confidenceScore":0.47}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - f148cbcd-9c20-487d-a1be-e3e4188f64dc + - 342b3816-dc70-4b3b-95e8-106e58e0b4e6 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '13' + - '61' status: code: 200 message: OK @@ -61,19 +63,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 0027e7fa-cb78-4018-a3f4-c92e306df94d + - 00a84aaa-fdcf-483d-85ce-2ef1dfac66e6 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -81,7 +83,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '115' + - '73' status: code: 200 message: OK @@ -104,19 +106,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: '{"documents":[{"id":"1","entities":[{"text":"I will go to the park","category":"Product","offset":0,"length":21,"confidenceScore":0.51}],"warnings":[]},{"id":"2","entities":[{"text":"hotel + we stayed at","category":"Location","offset":19,"length":18,"confidenceScore":0.69}],"warnings":[]},{"id":"3","entities":[{"text":"The + restaurant had really good food","category":"Organization","offset":0,"length":35,"confidenceScore":0.47}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - d93fcac2-c89d-4da9-ac2c-cb116e2f2858 + - f0ec3d64-b04b-403e-bc89-c288f3fe7475 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -124,7 +128,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '13' + - '81' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_attribute_error_no_result_attribute.yaml index 3ad946f3eb0f..c4fddfd62061 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_attribute_error_no_result_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,11 +23,11 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 3bca820e-a077-4af1-a897-c0d57770e022 + - d80ef079-8ec4-4c05-9aa4-29b1653ef594 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:43 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_attribute_error_nonexistent_attribute.yaml index 6b35b9ca97fa..89712ab2afc6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_attribute_error_nonexistent_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,11 +23,11 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - c2a99feb-feb9-4bf7-94db-d475c7bb39e8 + - 5c7ee3ca-6114-464a-9769-60f5e3173194 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:43 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_errors.yaml index 4438a2853f88..356ae6746102 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_errors.yaml @@ -18,25 +18,25 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"A document within the request was too large to be processed. Limit document size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 49e3839e-66d6-4516-bb8e-06f7d621e566 + - 22fde167-8a5f-48c0-92d6-dc9b182e9555 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:40 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_warnings.yaml index aa6764133500..612d1d1012d5 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_document_warnings.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - f1796c03-2d2b-4fa3-a5a6-1a113505a6e3 + - cce93ad3-6587-4c7f-9cd9-c70935c8c98b content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '70' + - '82' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_duplicate_ids_error.yaml index 40df34b85a3d..3606553dc3b1 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_duplicate_ids_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: apim-request-id: - - e2acf14c-7ee1-4e6d-9779-23d3e37140a0 + - 22777aa3-46e1-4f56-9b09-d5f8e2ed6b1f content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_empty_credential_class.yaml index ad53ab6ccdef..0bf3e2c9b502 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_empty_credential_class.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:49 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_input_with_all_errors.yaml index f9ec4768dd2b..ec8a08ec1faa 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_input_with_all_errors.yaml @@ -16,23 +16,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - ac462e27-de99-4e0f-ad3e-64febff5c468 + - 6d299485-1450-403e-a59b-d7c9139cef37 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:45 GMT + - Fri, 24 Jul 2020 16:32:49 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '1' + - '2' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_input_with_some_errors.yaml index bab59726c6a0..ed080baa7132 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_input_with_some_errors.yaml @@ -17,26 +17,26 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"Microsoft","category":"Organization","offset":0,"length":9,"confidenceScore":0.8},{"text":"Bill Gates","category":"Person","offset":25,"length":10,"confidenceScore":0.83},{"text":"Paul Allen","category":"Person","offset":40,"length":10,"confidenceScore":0.87},{"text":"April 4, 1975","category":"DateTime","subcategory":"Date","offset":54,"length":13,"confidenceScore":0.8}],"warnings":[]}],"errors":[{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 79086bb3-5557-40d1-9b45-5d815ea01f58 + - 0c7cc811-d948-4c84-98d7-774033dfd78a content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -44,7 +44,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '89' + - '90' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_invalid_language_hint_docs.yaml index 9f72ccfa9238..3fa77ef7ac1a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_invalid_language_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_invalid_language_hint_docs.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - bf5ac76b-8682-452e-9a69-819ca40ea24f + - bdbdc474-4c6f-4347-aacf-e3f8254f1d55 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_invalid_language_hint_method.yaml index ee46fe96e558..0a30ef06b2e3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_invalid_language_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_invalid_language_hint_method.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 6f9fa2a2-93ae-4c85-87f0-5ba1223005ca + - 4122d8f9-dece-44fa-8013-762c68e5f39f content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '10' + - '2' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_language_kwarg_spanish.yaml index e5961d2512d0..37e476374402 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_language_kwarg_spanish.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_language_kwarg_spanish.yaml @@ -16,20 +16,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","statistics":{"charactersCount":35,"transactionsCount":1},"entities":[{"text":"Bill - Gates","category":"Person","offset":0,"length":10,"confidenceScore":0.8},{"text":"Microsoft","category":"Organization","offset":25,"length":9,"confidenceScore":0.98}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + Gates","category":"Person","offset":0,"length":10,"confidenceScore":0.76},{"text":"CEO","category":"PersonType","offset":18,"length":3,"confidenceScore":0.66},{"text":"Microsoft","category":"Organization","offset":25,"length":9,"confidenceScore":0.38}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 1381e5ce-b989-4dbc-b46b-8f27b6d8618c + - 298936b7-c69e-42a0-9a2d-022af7bb194e content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -37,7 +37,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '13' + - '68' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_out_of_order_ids.yaml index 79f62addde58..e4a82a33a073 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_out_of_order_ids.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"56","entities":[],"warnings":[]},{"id":"0","entities":[],"warnings":[]},{"id":"19","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 6b54fffb-6297-475e-9c5f-0a9b5fb28df4 + - 29dc84bc-9b70-4330-a52d-12d9be9d78da content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '68' + - '73' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_output_same_order_as_input.yaml index b9246f89217f..aae6b9d409e1 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_output_same_order_as_input.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"one","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]},{"id":"2","entities":[{"text":"two","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]},{"id":"3","entities":[{"text":"three","category":"Quantity","subcategory":"Number","offset":0,"length":5,"confidenceScore":0.8}],"warnings":[]},{"id":"4","entities":[{"text":"four","category":"Quantity","subcategory":"Number","offset":0,"length":4,"confidenceScore":0.8}],"warnings":[]},{"id":"5","entities":[{"text":"five","category":"Quantity","subcategory":"Number","offset":0,"length":4,"confidenceScore":0.8}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 641ce3f1-d60e-41bd-a147-6a772cb86ca6 + - e249c914-10ec-4c5f-9590-1f41588fe23d content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=5 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '316' + - '152' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_pass_cls.yaml index c4f077303e2b..304715f4aa1e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_pass_cls.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"0","entities":[{"text":"cls","category":"Skill","offset":13,"length":3,"confidenceScore":0.8}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: '{"documents":[{"id":"0","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - b1bbd14d-adbd-42e8-a42b-20065364c3ec + - 164da941-5c73-4d83-8c1b-315cabcdd588 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '72' + - '67' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_passing_only_string.yaml index cb3645932dec..cc1c71b81d0a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_passing_only_string.yaml @@ -20,7 +20,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[{"text":"Microsoft","category":"Organization","offset":0,"length":9,"confidenceScore":0.81},{"text":"Bill @@ -34,13 +34,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - b11e4dfd-da87-4084-b07b-a6bcb5ef1f0c + - 15d71555-b5cb-413d-9b3d-166b4758bb39 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -48,7 +48,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '148' + - '94' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_per_item_dont_use_language_hint.yaml index b723469c3579..abbd3bd809a7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_per_item_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_per_item_dont_use_language_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 59e2c37b-83bf-435a-9e55-59849412270a + - db979dc4-7d21-4303-b7f8-ccc249dd07c1 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '79' + - '145' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_rotate_subscription_key.yaml index bf7c187bccf4..e76eb90795ad 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_rotate_subscription_key.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 7aa8830a-fa01-4f68-844d-bd923b68d806 + - 228b889f-1a77-4e5b-9684-8019d12fbee0 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '193' + - '108' status: code: 200 message: OK @@ -61,7 +61,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -71,7 +71,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:50 GMT status: code: 401 message: PermissionDenied @@ -94,19 +94,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - ef2edc89-7a18-48fc-a0b9-e6d0e6444f6b + - 095e5155-4e34-4253-ab44-036cd49dc859 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -114,7 +114,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '76' + - '83' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_show_stats_and_model_version.yaml index e8475879ee24..f56b980e6b7f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_show_stats_and_model_version.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"0","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"19","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"1","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 85031a5c-a87d-48c3-a75d-6c186ef714ad + - 8111d7b3-6440-4173-af2d-c2cf6fc44a2d content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '64' + - '69' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_too_many_documents.yaml index 14d768500cbc..a0257f4c84f8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_too_many_documents.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_too_many_documents.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[{"text":"One","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]},{"id":"1","entities":[{"text":"Two","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]},{"id":"2","entities":[{"text":"Three","category":"Quantity","subcategory":"Number","offset":0,"length":5,"confidenceScore":0.8}],"warnings":[]},{"id":"3","entities":[{"text":"Four","category":"Quantity","subcategory":"Number","offset":0,"length":4,"confidenceScore":0.8}],"warnings":[]},{"id":"4","entities":[{"text":"Five","category":"Quantity","subcategory":"Number","offset":0,"length":4,"confidenceScore":0.8}],"warnings":[]},{"id":"5","entities":[{"text":"Six","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The @@ -27,13 +27,13 @@ interactions: https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 13bd2b1b-b7be-4027-9876-67cdc993bba4 + - 2292583c-7682-4b41-b8c1-debe740a4816 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=6 date: - - Mon, 06 Jul 2020 22:22:33 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '74' + - '107' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_user_agent.yaml index e49afa3fa981..0179474a4584 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_user_agent.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - f9f5e830-c5f5-4188-9dc6-178a6a5647e2 + - be80426a-5177-4171-b20e-baa9ec3a37b0 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '80' + - '111' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_dont_use_language_hint.yaml index 7027c303b8c2..09c0d3c229ea 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_dont_use_language_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"2","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.71}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 4d04d901-d793-410d-9814-9c99a488b5ad + - 8f74198d-98bd-4fcf-9ce6-65492f247cd0 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '115' + - '110' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint.yaml index 52cbc035d3db..88f438df0a9f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 47343887-c4ca-4875-8d45-16b4fc146c5e + - b804738c-5f66-4e20-a0b8-3d3fd6be556f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '24' + - '29' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml index 6756193f0852..e1f42559c91d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -18,19 +18,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: '{"documents":[{"id":"1","entities":[{"text":"I will go to the park","category":"Product","offset":0,"length":21,"confidenceScore":0.51}],"warnings":[]},{"id":"2","entities":[{"text":"hotel + we stayed at","category":"Location","offset":19,"length":18,"confidenceScore":0.69}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - 23626692-e370-436b-a7ed-90cc41d25abc + - 15be8002-652a-437e-b9bf-1c375d135407 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +39,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '111' + - '107' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_obj_input.yaml index 06f48252e840..054df131fcb3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_obj_input.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: apim-request-id: - - a90536d4-7890-48b3-8a92-9742393e9013 + - 85b2dec7-9000-4fe0-b616-0910ce07d02d content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:41 GMT + - Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '15' + - '18' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml index 8c14c6073a76..b85c9f57bef9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -18,19 +18,25 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[{"text":"un","category":"Quantity","subcategory":"Number","offset":8,"length":2,"confidenceScore":0.8}],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: "{\"documents\":[{\"id\":\"1\",\"entities\":[],\"warnings\":[]},{\"\ + id\":\"2\",\"entities\":[{\"text\":\"un\",\"category\":\"Quantity\",\"subcategory\"\ + :\"Number\",\"offset\":8,\"length\":2,\"confidenceScore\":0.8},{\"text\":\"\ + Espa\xF1ol\",\"category\":\"Location\",\"subcategory\":\"GPE\",\"offset\"\ + :31,\"length\":7,\"confidenceScore\":0.5}],\"warnings\":[]},{\"id\":\"3\"\ + ,\"entities\":[],\"warnings\":[]}],\"errors\":[],\"modelVersion\":\"2020-04-01\"\ + }" headers: apim-request-id: - - 0b239455-aaf6-4134-a284-45b2130c6b5c + - cfb3fb7f-cb3e-43b6-a060-9c6f39c8d9c5 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:42 GMT + - Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +44,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '64' + - '94' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_all_successful_passing_dict.yaml index 50f1e637c1d1..b244316fbf84 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_all_successful_passing_dict.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=2020-02-01&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=2020-02-01&showStats=true response: body: string: '{"statistics":{"documentsCount":3,"validDocumentsCount":3,"erroneousDocumentsCount":0,"transactionsCount":3},"documents":[{"id":"1","statistics":{"charactersCount":68,"transactionsCount":1},"entities":[{"text":"Microsoft","category":"Organization","offset":0,"length":9,"confidenceScore":1.0},{"text":"Bill @@ -29,16 +29,16 @@ interactions: Gates","category":"Person","offset":37,"length":10,"confidenceScore":0.86},{"text":"Paul Allen","category":"Person","offset":52,"length":10,"confidenceScore":0.98}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 0baa79dd-b11c-4061-b835-fbbcb609053a + apim-request-id: 65f18a29-41aa-4fba-9778-be7079694cc2 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '79' + x-envoy-upstream-service-time: '88' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?model-version=2020-02-01&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?model-version=2020-02-01&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_all_successful_passing_text_document_input.yaml index dc8a701de973..1fdb8e8cde58 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_all_successful_passing_text_document_input.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=2020-02-01&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=2020-02-01&showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"Microsoft","category":"Organization","offset":0,"length":9,"confidenceScore":1.0},{"text":"Bill @@ -29,16 +29,16 @@ interactions: Gates","category":"Person","offset":37,"length":10,"confidenceScore":0.86},{"text":"Paul Allen","category":"Person","offset":52,"length":10,"confidenceScore":0.98}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: e87e5480-0183-4c67-b1c3-8e4206970c40 + apim-request-id: de39f48c-2692-4b86-b691-f49d4dcceab2 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:41 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '87' + x-envoy-upstream-service-time: '93' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?model-version=2020-02-01&showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?model-version=2020-02-01&showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_bad_credentials.yaml index c033e6455106..6e3b0bab2fcb 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_bad_credentials.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_bad_model_version_error.yaml index b0aad90ee7a1..0969624290c7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_bad_model_version_error.yaml @@ -12,15 +12,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2020-04-01,2019-10-01,2020-02-01"}}}' headers: - apim-request-id: 2e4a2fd5-f550-476d-b9e8-021218fb98ce + apim-request-id: 04f62dd7-a44c-4135-b65e-0d0351808aae content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -28,5 +28,5 @@ interactions: status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?model-version=bad&showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?model-version=bad&showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_batch_size_over_limit.yaml index 1cf3a75c0e2a..5587fd087d15 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_batch_size_over_limit.yaml @@ -756,21 +756,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: f962f17c-2975-47b3-917c-e9ebf889fa04 + apim-request-id: 78247336-f4e0-4a31-a834-2357afed21d4 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '10' + x-envoy-upstream-service-time: '11' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_batch_size_over_limit_error.yaml index b3f6eef43787..3763483bb092 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_batch_size_over_limit_error.yaml @@ -721,21 +721,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: 8c5c8818-eeec-48d2-badc-0791366baa47 + apim-request-id: 266bd6e9-198a-4d14-968c-0710f8682550 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '9' + x-envoy-upstream-service-time: '16' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_client_passed_default_language_hint.yaml index e8127cdabc5b..f86c8d7b564e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_client_passed_default_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_client_passed_default_language_hint.yaml @@ -14,23 +14,25 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: '{"documents":[{"id":"1","entities":[{"text":"I will go to the park","category":"Product","offset":0,"length":21,"confidenceScore":0.51}],"warnings":[]},{"id":"2","entities":[{"text":"hotel + we stayed at","category":"Location","offset":19,"length":18,"confidenceScore":0.69}],"warnings":[]},{"id":"3","entities":[{"text":"The + restaurant had really good food","category":"Organization","offset":0,"length":35,"confidenceScore":0.47}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: cc90f8eb-1d91-4de7-9baf-c8ed6de1b59d + apim-request-id: c807c077-38db-4b7b-ba0a-ee9502dab692 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '17' + x-envoy-upstream-service-time: '100' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -46,23 +48,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: eebfe636-180f-470b-88ea-35f862960eff + apim-request-id: dfd5420f-7d9a-447b-b0ed-e73e2134a521 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '176' + x-envoy-upstream-service-time: '91' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -78,21 +80,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: '{"documents":[{"id":"1","entities":[{"text":"I will go to the park","category":"Product","offset":0,"length":21,"confidenceScore":0.51}],"warnings":[]},{"id":"2","entities":[{"text":"hotel + we stayed at","category":"Location","offset":19,"length":18,"confidenceScore":0.69}],"warnings":[]},{"id":"3","entities":[{"text":"The + restaurant had really good food","category":"Organization","offset":0,"length":35,"confidenceScore":0.47}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: a779a176-96b4-49aa-8634-97a9c2677743 + apim-request-id: 15295932-e4ca-4ccb-a8a4-56768029c3d7 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '14' + x-envoy-upstream-service-time: '72' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_attribute_error_no_result_attribute.yaml index a5d81026fea1..7f94b5b0c563 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_attribute_error_no_result_attribute.yaml @@ -11,16 +11,16 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 3ac14a39-7b5f-44d1-9b0c-d79b4bdddb0d + apim-request-id: ec05cc81-df53-4da6-ba92-98d31bb54813 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:50 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -28,5 +28,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_attribute_error_nonexistent_attribute.yaml index fe02c039607b..ffbcc08f6dac 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_attribute_error_nonexistent_attribute.yaml @@ -11,22 +11,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: a8fac211-958d-4a9d-993d-d4ea1c526f50 + apim-request-id: 65f42798-dd03-4b83-b1d6-c70e16b99b89 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '2' + x-envoy-upstream-service-time: '1' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_errors.yaml index daa82ba2b7e0..cdb73c08388e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_errors.yaml @@ -14,22 +14,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"A document within the request was too large to be processed. Limit document size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 8beca0f1-2c2e-4808-b6aa-14028a18fc75 + apim-request-id: 5c1dfd56-c75f-4dc3-b297-015654437160 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -37,5 +37,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_warnings.yaml index 001171bb0eeb..193db94e9024 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_document_warnings.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 5a477d67-6a79-4938-8064-3799caca55ed + apim-request-id: e2244930-e473-41d9-b5b1-c0162734d1f4 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '75' + x-envoy-upstream-service-time: '85' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_duplicate_ids_error.yaml index 79438cfbaf57..e02ef044ac94 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_duplicate_ids_error.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: - apim-request-id: 65bc5068-5170-4b9b-8dff-0d1e41458848 + apim-request-id: b05a5a13-40b6-4e2c-95f4-c98bc597975e content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '5' + x-envoy-upstream-service-time: '4' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_empty_credential_class.yaml index c033e6455106..d1b952033c44 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_empty_credential_class.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_input_with_all_errors.yaml index 3e3f25eeef6d..a56c9c12a720 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_input_with_all_errors.yaml @@ -12,20 +12,20 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 83c7e8ee-4ed9-43b9-b36e-2b214f4ba53b + apim-request-id: 0cc28fef-6973-45ef-b30a-267724521a35 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -33,5 +33,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_input_with_some_errors.yaml index 800541329ee9..2c9c16650ccc 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_input_with_some_errors.yaml @@ -13,28 +13,28 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"Microsoft","category":"Organization","offset":0,"length":9,"confidenceScore":0.8},{"text":"Bill Gates","category":"Person","offset":25,"length":10,"confidenceScore":0.83},{"text":"Paul Allen","category":"Person","offset":40,"length":10,"confidenceScore":0.87},{"text":"April 4, 1975","category":"DateTime","subcategory":"Date","offset":54,"length":13,"confidenceScore":0.8}],"warnings":[]}],"errors":[{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 48f84373-3062-4c45-b2bd-7305c77b41e0 + apim-request-id: da486603-eafc-4a26-9ccb-ea18c5b95944 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '88' + x-envoy-upstream-service-time: '93' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_invalid_language_hint_docs.yaml index bb2e5a3e675f..ff4504546ba4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_invalid_language_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_invalid_language_hint_docs.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 8ce2e723-4a25-4f3e-a4af-fcebfdf93fb5 + apim-request-id: db2fb1e1-cec1-4cdf-8bcc-d0b8794ca04f content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '1' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_invalid_language_hint_method.yaml index 2ded0204ae1c..05e9bf9f5c6f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_invalid_language_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_invalid_language_hint_method.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}}],"modelVersion":"2020-04-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: ar,cs,da,de,en,es,fi,fr,hu,it,ja,ko,nl,no,pl,pt-BR,pt-PT,ru,sv,tr,zh-Hans"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 49ca5f18-80d0-4f88-b0e9-ce4132cc32e9 + apim-request-id: 5df1ec1a-e306-45c8-a4fa-97dab0aeba98 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '2' + x-envoy-upstream-service-time: '1' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_language_kwarg_spanish.yaml index 76c6f9f174ac..c1a5eeb39aad 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_language_kwarg_spanish.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_language_kwarg_spanish.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","statistics":{"charactersCount":35,"transactionsCount":1},"entities":[{"text":"Bill - Gates","category":"Person","offset":0,"length":10,"confidenceScore":0.8},{"text":"Microsoft","category":"Organization","offset":25,"length":9,"confidenceScore":0.98}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + Gates","category":"Person","offset":0,"length":10,"confidenceScore":0.76},{"text":"CEO","category":"PersonType","offset":18,"length":3,"confidenceScore":0.66},{"text":"Microsoft","category":"Organization","offset":25,"length":9,"confidenceScore":0.38}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 78a0c930-341b-4604-8495-c791e1f8199d + apim-request-id: ca3cc0b1-7bb8-4193-9f3d-a04f73c4c1f7 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '13' + x-envoy-upstream-service-time: '62' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_out_of_order_ids.yaml index ae0d28d1bbaa..a0338f84e728 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_out_of_order_ids.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"56","entities":[],"warnings":[]},{"id":"0","entities":[],"warnings":[]},{"id":"19","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 5ebce000-a362-4988-b3e1-9eebe0ac7166 + apim-request-id: f4ca3d49-d617-47a7-876f-60b885a7535c content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '71' + x-envoy-upstream-service-time: '61' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_output_same_order_as_input.yaml index ff32caf8ef49..cbd04542a68e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_output_same_order_as_input.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"one","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]},{"id":"2","entities":[{"text":"two","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]},{"id":"3","entities":[{"text":"three","category":"Quantity","subcategory":"Number","offset":0,"length":5,"confidenceScore":0.8}],"warnings":[]},{"id":"4","entities":[{"text":"four","category":"Quantity","subcategory":"Number","offset":0,"length":4,"confidenceScore":0.8}],"warnings":[]},{"id":"5","entities":[{"text":"five","category":"Quantity","subcategory":"Number","offset":0,"length":4,"confidenceScore":0.8}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: ac7283eb-05ef-45ac-b53c-27405d8a6567 + apim-request-id: da2ea466-6b82-479a-9a41-4aae33901ae0 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=5 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '78' + x-envoy-upstream-service-time: '71' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_pass_cls.yaml index fad0bea98242..9b48654a25b8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_pass_cls.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"0","entities":[{"text":"cls","category":"Skill","offset":13,"length":3,"confidenceScore":0.8}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: '{"documents":[{"id":"0","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 28ef150e-34a9-47eb-be18-eb495588a669 + apim-request-id: 4743fbf1-d4ec-4d08-873d-1dcf8a29053b content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '68' + x-envoy-upstream-service-time: '65' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_passing_only_string.yaml index 3db838c74db5..a57d9db3919e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_passing_only_string.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[{"text":"Microsoft","category":"Organization","offset":0,"length":9,"confidenceScore":0.81},{"text":"Bill @@ -29,16 +29,16 @@ interactions: document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 152851fc-8cac-44a2-94f6-71b927d63a34 + apim-request-id: 17178476-3e07-4c7f-8185-db701b1beaf5 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '87' + x-envoy-upstream-service-time: '92' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_per_item_dont_use_language_hint.yaml index 86d4665a0a44..e13f580ffdea 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_per_item_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_per_item_dont_use_language_hint.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: e2730442-ed85-488f-8f04-7117e56ae0fa + apim-request-id: 01d8b8d7-1bc1-4406-9ff9-a1fbb40607da content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '69' + x-envoy-upstream-service-time: '121' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_rotate_subscription_key.yaml index 3935f4fe1f5e..d28746a24408 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_rotate_subscription_key.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 41e46e75-b982-4461-858e-540697d42fed + apim-request-id: b2e5da80-6835-4217-b8c9-45c5d90bf02f content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:51 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '92' + x-envoy-upstream-service-time: '120' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -46,7 +46,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -54,11 +54,11 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -74,21 +74,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: bc939d4b-7fa9-4e85-80fb-25f35f334a56 + apim-request-id: 5ec4a9bc-24ce-458c-abd6-0a14e25a76d5 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '91' + x-envoy-upstream-service-time: '90' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_show_stats_and_model_version.yaml index 74fedd3981e5..f13bdf3b6c76 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_show_stats_and_model_version.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"0","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"19","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"1","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: f640379e-1959-4ddb-99bb-bf580e8e807e + apim-request-id: a017cf5d-14bf-4770-876b-83b85788be2a content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:42 GMT + date: Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '62' + x-envoy-upstream-service-time: '64' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_too_many_documents.yaml index 32d35f7ea164..dd53667a3e03 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_too_many_documents.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_too_many_documents.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[{"text":"One","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]},{"id":"1","entities":[{"text":"Two","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]},{"id":"2","entities":[{"text":"Three","category":"Quantity","subcategory":"Number","offset":0,"length":5,"confidenceScore":0.8}],"warnings":[]},{"id":"3","entities":[{"text":"Four","category":"Quantity","subcategory":"Number","offset":0,"length":4,"confidenceScore":0.8}],"warnings":[]},{"id":"4","entities":[{"text":"Five","category":"Quantity","subcategory":"Number","offset":0,"length":4,"confidenceScore":0.8}],"warnings":[]},{"id":"5","entities":[{"text":"Six","category":"Quantity","subcategory":"Number","offset":0,"length":3,"confidenceScore":0.8}],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The @@ -22,16 +22,16 @@ interactions: number of documents in the request have exceeded the data limitations. See https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 3363e7d4-6b71-46d9-90e0-af1c5b778ee0 + apim-request-id: 1f335d86-bb3d-48b0-89ab-ea502b6083fb content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=6 - date: Mon, 06 Jul 2020 22:22:33 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '85' + x-envoy-upstream-service-time: '99' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_user_agent.yaml index 4a7adac62b07..76fdc3052dbd 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_user_agent.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"text":"park","category":"Location","offset":17,"length":4,"confidenceScore":0.83}],"warnings":[]},{"id":"2","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 75664d8c-6b61-4940-aff2-fe887f3ed8ee + apim-request-id: c7083a40-622b-488b-b4bd-961f5e62a67b content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '74' + x-envoy-upstream-service-time: '116' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_dont_use_language_hint.yaml index 690d4e049df3..3a610051ab9e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_dont_use_language_hint.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[{"text":"hotel","category":"Location","offset":19,"length":5,"confidenceScore":0.76}],"warnings":[]},{"id":"2","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.71}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 36e64223-80c8-476d-bf09-d23fd038c9d1 + apim-request-id: 627a7869-2975-4ef0-ae1b-387d14a8fce8 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '103' + x-envoy-upstream-service-time: '126' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint.yaml index a5da2d5b3050..311a177a89d7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 211c167b-4e43-48b1-806b-21f9f10ee330 + apim-request-id: 92d3687d-0881-49e8-a51e-40b944ef39d4 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '33' + x-envoy-upstream-service-time: '28' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml index 5f3f8a3b0fe6..58eb01977232 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -14,21 +14,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: '{"documents":[{"id":"1","entities":[{"text":"I will go to the park","category":"Product","offset":0,"length":21,"confidenceScore":0.51}],"warnings":[]},{"id":"2","entities":[{"text":"hotel + we stayed at","category":"Location","offset":19,"length":18,"confidenceScore":0.69}],"warnings":[]},{"id":"3","entities":[{"text":"restaurant","category":"Location","subcategory":"Structural","offset":4,"length":10,"confidenceScore":0.7}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: 86cf81a2-1fd3-4c8b-9325-161eee86ba5e + apim-request-id: 0e548cbb-aca0-4e8d-b7c1-f8822f33fffa content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:44 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '94' + x-envoy-upstream-service-time: '72' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_obj_input.yaml index 4e2a244ea1f8..59beeea616e8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_obj_input.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' headers: - apim-request-id: be2962db-3260-42ce-8f1a-a215c9eb6eb0 + apim-request-id: 5666c40f-8046-40b8-b517-d3c5a026a701 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:43 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '19' + x-envoy-upstream-service-time: '22' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml index 0920162593a9..4eb073ad334b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -14,21 +14,27 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/recognition/general?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false response: body: - string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[{"text":"un","category":"Quantity","subcategory":"Number","offset":8,"length":2,"confidenceScore":0.8}],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + string: "{\"documents\":[{\"id\":\"1\",\"entities\":[],\"warnings\":[]},{\"\ + id\":\"2\",\"entities\":[{\"text\":\"un\",\"category\":\"Quantity\",\"subcategory\"\ + :\"Number\",\"offset\":8,\"length\":2,\"confidenceScore\":0.8},{\"text\":\"\ + Espa\xF1ol\",\"category\":\"Location\",\"subcategory\":\"GPE\",\"offset\"\ + :31,\"length\":7,\"confidenceScore\":0.5}],\"warnings\":[]},{\"id\":\"3\"\ + ,\"entities\":[],\"warnings\":[]}],\"errors\":[],\"modelVersion\":\"2020-04-01\"\ + }" headers: - apim-request-id: 6ced424e-c55f-4acb-a3d0-9e19390c0746 + apim-request-id: fd2c4ed3-bda7-4bf3-aadd-80aad96825bb content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:44 GMT + date: Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '59' + x-envoy-upstream-service-time: '105' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/recognition/general?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/general?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_all_successful_passing_dict.yaml index c780a7291862..8081c5425871 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_all_successful_passing_dict.yaml @@ -17,7 +17,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=true response: body: string: '{"statistics":{"documentsCount":2,"validDocumentsCount":2,"erroneousDocumentsCount":0,"transactionsCount":2},"documents":[{"id":"1","statistics":{"charactersCount":50,"transactionsCount":1},"entities":[{"name":"Bill @@ -31,13 +31,13 @@ interactions: Allen","url":"https://es.wikipedia.org/wiki/Paul_Allen","dataSource":"Wikipedia"},{"name":"Microsoft","matches":[{"text":"Microsoft","offset":0,"length":9,"confidenceScore":0.38}],"language":"es","id":"Microsoft","url":"https://es.wikipedia.org/wiki/Microsoft","dataSource":"Wikipedia"}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 639de9bd-815d-4548-ad3c-9537c4808327 + - 4160c7cf-d35f-45a2-9209-016817ec43bf content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=2 date: - - Thu, 18 Jun 2020 19:52:43 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -45,7 +45,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '52' + - '20' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_all_successful_passing_text_document_input.yaml index 64db8fcb6aa0..6ec543b54ce1 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_all_successful_passing_text_document_input.yaml @@ -17,7 +17,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"name":"Bill Gates","matches":[{"text":"Bill @@ -31,13 +31,13 @@ interactions: Allen","url":"https://en.wikipedia.org/wiki/Paul_Allen","dataSource":"Wikipedia"},{"name":"Microsoft","matches":[{"text":"Microsoft","offset":0,"length":9,"confidenceScore":0.49}],"language":"en","id":"Microsoft","url":"https://en.wikipedia.org/wiki/Microsoft","dataSource":"Wikipedia"}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 937bdac4-76ca-484a-ae8f-dde267890f68 + - 5f47fcab-660e-4935-b27d-5fdf13438a25 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=2 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -45,7 +45,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '251' + - '20' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_bad_credentials.yaml index 924026376322..2eb9944c0af7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_bad_credentials.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:43 GMT + - Fri, 24 Jul 2020 16:32:52 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_bad_model_version_error.yaml index 9fd145f67c76..e9c3283611bc 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_bad_model_version_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2020-02-01"}}}' headers: apim-request-id: - - c9ec3e73-5bc6-4efd-85b9-e408498349b2 + - 5a1acd94-b720-40b1-a15b-b7ef2f90dec8 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_batch_size_over_limit.yaml index 7d67fbe9485b..8297c25e994e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_batch_size_over_limit.yaml @@ -760,18 +760,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - 97858bfc-af52-42f5-96a5-20de6513f0f4 + - 89b8ad88-a954-4ee5-812d-a422cb2e0f5d content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -779,7 +779,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '11' + - '12' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_batch_size_over_limit_error.yaml index d24285722924..bcea6315ec8a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_batch_size_over_limit_error.yaml @@ -725,18 +725,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: apim-request-id: - - 802cf76a-d343-463d-9b18-8696fec2f2de + - 3b71ea53-fcd9-4b20-b71b-8277cc1dcbec content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:43 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -744,7 +744,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '10' + - '22' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_client_passed_default_language_hint.yaml index d19232205a8d..f700a02eb40d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_client_passed_default_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_client_passed_default_language_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 90ab45ad-d5f5-4578-87d6-94ebe426f967 + - 9b97ed9b-7e9c-4c93-a5d0-989cfed2c210 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '177' + - '42' status: code: 200 message: OK @@ -61,19 +61,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 255ceb22-9eda-4b5e-b2a8-bd154d9227e8 + - 5fbaf613-b88a-4f9b-8601-373d330ccb2f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -81,7 +81,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '25' + - '20' status: code: 200 message: OK @@ -104,19 +104,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 17de2612-1bc9-4385-8a78-1017e124392f + - 79a31c9b-d193-4d71-b790-e709f3cbe5bf content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -124,7 +124,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '14' + - '25' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_attribute_error_no_result_attribute.yaml index 1f8f47d1ecbe..596c9209ca0a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_attribute_error_no_result_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,11 +23,11 @@ interactions: text is empty."}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 84905508-8936-4140-a6b2-1c5c1684f6a3 + - 0647649b-3e29-4733-9699-54140928dace content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:43 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_attribute_error_nonexistent_attribute.yaml index 355c415c2d2e..f0a223af119b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_attribute_error_nonexistent_attribute.yaml @@ -15,7 +15,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid @@ -23,11 +23,11 @@ interactions: text is empty."}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - b311142a-dca6-4700-8f86-cae3d66c4e2e + - 00434868-b438-4f14-be49-9ae5697a23f6 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_errors.yaml index 2a0270e9dcc2..cace20eda695 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_errors.yaml @@ -18,25 +18,25 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"A document within the request was too large to be processed. Limit document size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 707c8c6d-016b-4b57-8085-70f0e4c70309 + - b8e50cf6-c03e-4a1f-bc00-a7e81b96985b content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_warnings.yaml index 939073c4e30e..2ebfcdba1d1c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_document_warnings.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 641d43fc-98a8-427b-91e8-78b780173073 + - 5ec736e9-b7a7-4a08-96d6-7e02203f65ec content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:52 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '273' + - '23' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_duplicate_ids_error.yaml index 65f6bc214ffc..b1f33b78ff9e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_duplicate_ids_error.yaml @@ -16,18 +16,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: apim-request-id: - - 6e961c70-b6d9-4ca4-8cff-cf01865c5587 + - d11116e6-97e4-4297-8f54-157582fb352f content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:43 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -35,7 +35,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '4' + - '6' status: code: 400 message: Bad Request diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_empty_credential_class.yaml index 6d27ca57ea82..2eb9944c0af7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_empty_credential_class.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -26,7 +26,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:52 GMT status: code: 401 message: PermissionDenied diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_input_with_all_errors.yaml index 2d5cc28160c1..f7908518ea2c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_input_with_all_errors.yaml @@ -16,21 +16,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 583748c3-4088-44a1-8fdd-95f700132b6c + - ad7decfd-817a-48e9-bebc-d1e79cc9604c content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_input_with_some_errors.yaml index 1c91225788fa..ba563211c819 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_input_with_some_errors.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"2","entities":[{"name":"Bill Gates","matches":[{"text":"Bill @@ -28,13 +28,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - b66fc535-9c11-4875-b544-a0cd320e41e6 + - 0f59c287-eec4-49b2-b08a-6ebb4e17e394 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -42,7 +42,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '19' + - '13' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_invalid_language_hint_docs.yaml index 249a700fc949..be9f1639a9f7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_invalid_language_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_invalid_language_hint_docs.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 4f639cfa-e3eb-472f-9133-90c2e3ff0126 + - 4521f87f-478b-4e8e-a4c5-9dc4947060cb content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_invalid_language_hint_method.yaml index 09187dc23b7f..64b39a83a709 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_invalid_language_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_invalid_language_hint_method.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 91a9bbbd-10be-4a78-982d-872cb4cd3124 + - 8c47d0e8-47c6-44e5-b024-a564b2a10892 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:43 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '2' + - '1' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_language_kwarg_spanish.yaml index 4541061d7453..32b2dbd4f830 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_language_kwarg_spanish.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_language_kwarg_spanish.yaml @@ -16,7 +16,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","statistics":{"charactersCount":35,"transactionsCount":1},"entities":[{"name":"Bill @@ -26,13 +26,13 @@ interactions: ejecutivo","url":"https://es.wikipedia.org/wiki/Director_ejecutivo","dataSource":"Wikipedia"}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 0db9ed9d-ca58-45e3-9bef-0ff18be1b7fa + - 3c3df070-832f-433d-a960-661858c31770 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '24' + - '36' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_out_of_order_ids.yaml index 4ce54961f363..a92eeada9df6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_out_of_order_ids.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"56","entities":[],"warnings":[]},{"id":"0","entities":[],"warnings":[]},{"id":"19","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 18e0fc16-4aa4-4ffc-b5c0-c5bf44e69ef2 + - e9fe43da-5048-4601-ae76-d14971f580f7 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:45 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '74' + - '19' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_output_same_order_as_input.yaml index 5573ca82eee2..442d6710a57f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_output_same_order_as_input.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"5","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - fa82cfe2-df6b-4cec-9831-35b7672a292d + - 5f52dbac-3707-4243-89ad-713e7734a26f content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=5 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '16' + - '18' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_pass_cls.yaml index 1f76e7fa8b65..812e74443d80 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_pass_cls.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[{"name":".test","matches":[{"text":"Test","offset":0,"length":4,"confidenceScore":0.02}],"language":"en","id":".test","url":"https://en.wikipedia.org/wiki/.test","dataSource":"Wikipedia"}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 7085e6dd-d559-4c78-b4a3-4a0f2ae9af91 + - 6ad14174-59e4-402a-9f53-a2a0453d3d53 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -36,7 +36,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '29' + - '18' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_passing_only_string.yaml index 204243cff44e..e0f941ac68bb 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_passing_only_string.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[{"name":"Bill Gates","matches":[{"text":"Bill @@ -34,13 +34,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 637a210e-0525-4656-8e69-e1db41009b9a + - 36282cc5-775e-4aa3-92db-b8e94a992869 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=2 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -48,7 +48,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '24' + - '26' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_per_item_dont_use_language_hint.yaml index c8dba7f79748..021514242ec0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_per_item_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_per_item_dont_use_language_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - c4a12641-a4fb-4ee0-98ae-73eb65f0da53 + - 0f81e4d1-7751-414f-9e05-0ac33fbb8fe2 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:45 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_rotate_subscription_key.yaml index 1db03a6b1b37..c2890b573267 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_rotate_subscription_key.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - d0dc74a2-d2c4-4912-9f86-ce2ebd00a8d4 + - 7ad4d363-7984-4215-b5ac-4a8bda5a5be9 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '20' + - '19' status: code: 200 message: OK @@ -61,7 +61,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -71,7 +71,7 @@ interactions: content-length: - '224' date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT status: code: 401 message: PermissionDenied @@ -94,19 +94,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - c4d93d17-6db2-47f3-b56b-3afbcf4abc77 + - 87848571-95b8-4913-9c27-18e9948ae0b2 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -114,7 +114,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '18' + - '22' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_show_stats_and_model_version.yaml index 9e5c654462b6..29d560d86b2f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_show_stats_and_model_version.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"0","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"19","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"1","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid @@ -26,13 +26,13 @@ interactions: text is empty."}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 2cf15d2d-4d0e-432f-baf4-6b22ca7b26fd + - 4a1c7b65-8307-4589-9aab-5cbf2c6f4e0a content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=4 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -40,7 +40,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '17' + - '18' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_too_many_documents.yaml index 8c243a3095ef..a205bd47f06f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_too_many_documents.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_too_many_documents.yaml @@ -18,7 +18,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"5","entities":[],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The @@ -27,13 +27,13 @@ interactions: https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 80077607-e16a-48eb-b1e5-1247121a5c56 + - a163297b-80a2-4153-8ca7-401355eb6b28 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=6 date: - - Mon, 06 Jul 2020 22:22:34 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -41,7 +41,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '21' + - '17' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_user_agent.yaml index 744b9698420f..d6a2345d9dca 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_user_agent.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 0d2fa015-f696-4a6f-ad2f-42928701eae7 + - 58643084-7b61-4e27-b8eb-3d22d4ccfcc6 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_dont_use_language_hint.yaml index 5b9b9c588ca7..509f22dce9c8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_dont_use_language_hint.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 2abe30d7-e5fe-4514-a62e-42bc7274b346 + - c9c49a5a-3366-4063-8620-8c2d9d27580a content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '22' + - '19' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint.yaml index f85d3b0fa78d..b69363e4c942 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint.yaml @@ -18,23 +18,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 7ec846dd-a0d8-44d8-be7d-7ed954bfa876 + - fc5cfbb4-cc8b-4fdd-80b7-364697293a7b content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -42,7 +42,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '3' + - '1' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml index c0745b87352d..96a5d19f6c58 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - 96fe5585-5684-4112-9f18-8f301b9e3a47 + - 65d883bb-fea9-4e90-82cb-3356318d9bb0 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '18' + - '17' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_obj_input.yaml index dcd18183ece2..ccf0d2918aaa 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_obj_input.yaml @@ -18,23 +18,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"4","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"4","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - a1f35ef7-90ec-463e-a943-e9b8545fb87e + - eb99cec2-70e8-47d0-922e-a897d2f9dea5 content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 19:52:45 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml index fec0ef493de0..d69172a02a62 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -18,19 +18,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: apim-request-id: - - ea5da2e6-79b9-4a62-94a5-1cc5381326d6 + - f4c781bb-17f4-4015-9e6b-9db07f45f60d content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=3 date: - - Thu, 18 Jun 2020 19:52:44 GMT + - Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: @@ -38,7 +38,7 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '31' + - '20' status: code: 200 message: OK diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_all_successful_passing_dict.yaml index cd5da10873f4..20c88ee25b33 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_all_successful_passing_dict.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_all_successful_passing_dict.yaml @@ -13,7 +13,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=true response: body: string: '{"statistics":{"documentsCount":2,"validDocumentsCount":2,"erroneousDocumentsCount":0,"transactionsCount":2},"documents":[{"id":"1","statistics":{"charactersCount":50,"transactionsCount":1},"entities":[{"name":"Bill @@ -26,16 +26,16 @@ interactions: Allen","matches":[{"text":"Paul Allen","offset":39,"length":10,"confidenceScore":0.9}],"language":"es","id":"Paul Allen","url":"https://es.wikipedia.org/wiki/Paul_Allen","dataSource":"Wikipedia"},{"name":"Microsoft","matches":[{"text":"Microsoft","offset":0,"length":9,"confidenceScore":0.38}],"language":"es","id":"Microsoft","url":"https://es.wikipedia.org/wiki/Microsoft","dataSource":"Wikipedia"}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 873308a2-fc3f-4a18-8f13-bf1648ead697 + apim-request-id: fd94c924-ab60-44f2-93e3-b10acccde0d5 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=2 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '17' + x-envoy-upstream-service-time: '19' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_all_successful_passing_text_document_input.yaml index f6c0fb7840aa..726f4d4ebb69 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_all_successful_passing_text_document_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_all_successful_passing_text_document_input.yaml @@ -13,7 +13,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[{"name":"Bill Gates","matches":[{"text":"Bill @@ -26,16 +26,16 @@ interactions: Allen","matches":[{"text":"Paul Allen","offset":39,"length":10,"confidenceScore":0.55}],"language":"en","id":"Paul Allen","url":"https://en.wikipedia.org/wiki/Paul_Allen","dataSource":"Wikipedia"},{"name":"Microsoft","matches":[{"text":"Microsoft","offset":0,"length":9,"confidenceScore":0.49}],"language":"en","id":"Microsoft","url":"https://en.wikipedia.org/wiki/Microsoft","dataSource":"Wikipedia"}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 5ac156ce-1932-4c3e-a8f3-de976d743792 + apim-request-id: 025755c7-b02e-47c8-9a7d-9bc05b057cc3 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=2 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '19' + x-envoy-upstream-service-time: '20' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_bad_credentials.yaml index 248682b28b6f..f6eb4a8b8c7b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_bad_credentials.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_bad_credentials.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:44 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_bad_model_version_error.yaml index caf7efe08a92..1ed7dca17f7a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_bad_model_version_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_bad_model_version_error.yaml @@ -12,15 +12,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?model-version=bad&showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?model-version=bad&showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid model version. Possible values are: latest,2020-02-01"}}}' headers: - apim-request-id: 7838c220-c22f-42cc-a75f-fae421688cb8 + apim-request-id: 7249675b-85f5-4e8d-9419-edbce42d40d7 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -28,5 +28,5 @@ interactions: status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?model-version=bad&showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?model-version=bad&showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_batch_size_over_limit.yaml index ee5b518b7da3..ef2eee9b4e86 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_batch_size_over_limit.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_batch_size_over_limit.yaml @@ -756,15 +756,15 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: 108853c2-dedc-46cb-a77d-5f46c22641e4 + apim-request-id: fbca31f1-04a0-43ca-b267-d90d406db170 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -772,5 +772,5 @@ interactions: status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_batch_size_over_limit_error.yaml index 5caeecb5ad5e..ea4099b21f85 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_batch_size_over_limit_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_batch_size_over_limit_error.yaml @@ -721,21 +721,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch request contains too many records. Max 1000 records are permitted."}}}' headers: - apim-request-id: 8e74553e-6e90-4da4-949e-88bd9a7290c6 + apim-request-id: 6007033c-e14d-4fb2-ac42-b20824683b0f content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '11' + x-envoy-upstream-service-time: '16' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_client_passed_default_language_hint.yaml index bcf00b057950..3d22cf0baafc 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_client_passed_default_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_client_passed_default_language_hint.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 16d85b26-cb10-4ece-9d88-d4e7d5f79689 + apim-request-id: 469f7ac4-71a1-480a-b677-32c9cb37b495 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '89' + x-envoy-upstream-service-time: '25' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -46,23 +46,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 9d8295bb-a419-432c-964f-12c3bb197b29 + apim-request-id: 50825193-f63a-4938-ac9c-474c0666b202 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '22' + x-envoy-upstream-service-time: '20' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -78,21 +78,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: eae7e7a8-cd06-41c1-8bb3-5221b2caad77 + apim-request-id: 22af470d-c9e3-482a-8ea1-e545a027c842 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '28' + x-envoy-upstream-service-time: '16' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_attribute_error_no_result_attribute.yaml index 54ee1957503a..277ae06a996c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_attribute_error_no_result_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_attribute_error_no_result_attribute.yaml @@ -11,16 +11,16 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 457562ee-9746-4c35-a677-2b774ddb351f + apim-request-id: e46f5195-cac5-4ad6-93d7-adc35e71c844 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -28,5 +28,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_attribute_error_nonexistent_attribute.yaml index 21dfe5dafd05..73b70a3026a2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_attribute_error_nonexistent_attribute.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_attribute_error_nonexistent_attribute.yaml @@ -11,16 +11,16 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: d9745e6b-f786-4e5e-a5ce-39eb2b238cf8 + apim-request-id: c7da8cc2-d67a-429e-9e7b-3ea1135082d8 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -28,5 +28,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_errors.yaml index 822f452aac16..98228f15b915 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_errors.yaml @@ -14,28 +14,28 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"A document within the request was too large to be processed. Limit document size to: 5120 text elements. For additional details on the data limitations see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: df5a1469-80f3-4c6c-9536-f2dda34e0878 + apim-request-id: 1efcd7ae-7817-4d9d-b7d7-4488c750ab2f content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '2' + x-envoy-upstream-service-time: '1' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_warnings.yaml index d548e120db16..942af5ce87ee 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_warnings.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_document_warnings.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 4656bdb9-bb0b-4a64-a308-037fa01a3624 + apim-request-id: 17bf9844-ece6-48bf-9846-ea55e0e21a9b content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '20' + x-envoy-upstream-service-time: '18' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_duplicate_ids_error.yaml index 36adac21fb4f..18868d4215e6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_duplicate_ids_error.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_duplicate_ids_error.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request contains duplicated Ids. Make sure each document has a unique Id."}}}' headers: - apim-request-id: 56148473-19a0-4b12-b48a-2d27af1a4c6b + apim-request-id: 2161000b-0b54-49f5-b803-2a0aeea14b11 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:44 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '4' + x-envoy-upstream-service-time: '7' status: code: 400 message: Bad Request - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_empty_credential_class.yaml index 37eadeb4c104..eb3ca2a20d64 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_empty_credential_class.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_empty_credential_class.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -20,9 +20,9 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:53 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_input_with_all_errors.yaml index 937ffdf6adb1..80c2a8cd4708 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_input_with_all_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_input_with_all_errors.yaml @@ -12,18 +12,18 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: ef616f01-1d39-4aae-b018-83002eaeac21 + apim-request-id: 537d5f63-cf53-4a58-a44e-1ef5c3049ed5 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -31,5 +31,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_input_with_some_errors.yaml index ffa37c273b22..1c9b300eea9c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_input_with_some_errors.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_input_with_some_errors.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"2","entities":[{"name":"Bill Gates","matches":[{"text":"Bill @@ -23,16 +23,16 @@ interactions: document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: e8fbb53e-b8aa-4b23-a522-4b74dca6b062 + apim-request-id: b9b8759e-0f33-43bc-8cc2-aa235472e7d0 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:53 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '14' + x-envoy-upstream-service-time: '15' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_invalid_language_hint_docs.yaml index c9714647cba5..66f8999cda44 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_invalid_language_hint_docs.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_invalid_language_hint_docs.yaml @@ -12,22 +12,22 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: a9f69703-ddff-42ee-9fd1-c737a6c8028a + apim-request-id: 77dfcf1f-3432-445d-8c41-2b7f61d12d66 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '1' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_invalid_language_hint_method.yaml index e5871942c63b..800c87068757 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_invalid_language_hint_method.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_invalid_language_hint_method.yaml @@ -12,16 +12,16 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 5663d178-a0c8-46d3-92c2-eba0db279364 + apim-request-id: 0977ae21-8661-4ad2-b74f-aaea52b10322 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff @@ -29,5 +29,5 @@ interactions: status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_language_kwarg_spanish.yaml index a6ba0f9d05d2..b2d8a03cb497 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_language_kwarg_spanish.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_language_kwarg_spanish.yaml @@ -12,7 +12,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","statistics":{"charactersCount":35,"transactionsCount":1},"entities":[{"name":"Bill @@ -21,16 +21,16 @@ interactions: ejecutivo","matches":[{"text":"CEO","offset":18,"length":3,"confidenceScore":0.22}],"language":"es","id":"Director ejecutivo","url":"https://es.wikipedia.org/wiki/Director_ejecutivo","dataSource":"Wikipedia"}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 486e6daa-c6c9-4e99-8669-7d3dcc61a706 + apim-request-id: 96d24414-61f1-45e4-b0ba-2d79ba7b7157 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '13' + x-envoy-upstream-service-time: '12' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_out_of_order_ids.yaml index 1b58fe09910a..f532f47567b6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_out_of_order_ids.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_out_of_order_ids.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"56","entities":[],"warnings":[]},{"id":"0","entities":[],"warnings":[]},{"id":"19","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 448b3d66-db2d-4d64-ac01-1fa1cec902cd + apim-request-id: 33247fd1-7a5b-4d05-be46-212e9d179ebb content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '25' + x-envoy-upstream-service-time: '20' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_output_same_order_as_input.yaml index 77c0cbf5d20c..56b28a32d832 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_output_same_order_as_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_output_same_order_as_input.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"5","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 74f31d77-d16f-4d42-a664-f98ea95a97e2 + apim-request-id: 229ba3d2-0692-4ebd-ad22-0bdd986e7777 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=5 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '20' + x-envoy-upstream-service-time: '17' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_pass_cls.yaml index fa95dfaed3f7..a2bc3802c12f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_pass_cls.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_pass_cls.yaml @@ -12,21 +12,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[{"name":".test","matches":[{"text":"Test","offset":0,"length":4,"confidenceScore":0.02}],"language":"en","id":".test","url":"https://en.wikipedia.org/wiki/.test","dataSource":"Wikipedia"}],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 9d40ffbb-1856-4e65-890b-14614eab37e5 + apim-request-id: 95399e26-fec8-4c71-bf46-41c6d8344ef5 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '17' + x-envoy-upstream-service-time: '18' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_passing_only_string.yaml index 1f924cb6d4be..5b581412c8a3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_passing_only_string.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_passing_only_string.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[{"name":"Bill Gates","matches":[{"text":"Bill @@ -29,16 +29,16 @@ interactions: document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: ff3d956d-5a92-4b5a-8fb1-a1bb685b915c + apim-request-id: 6e846d7b-c38e-4e85-96d5-881a966bb493 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=2 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '20' + x-envoy-upstream-service-time: '15' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_per_item_dont_use_language_hint.yaml index 55f9c4e27540..2e9ba11c2b9f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_per_item_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_per_item_dont_use_language_hint.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 8d2fc071-b6b0-4b8e-9998-7f454e8b16b4 + apim-request-id: 9fe7703b-6ba0-45d5-9ec6-8ee4ecc734e0 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '20' + x-envoy-upstream-service-time: '18' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_rotate_subscription_key.yaml index c57fe67ad559..05e14e2b178f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_rotate_subscription_key.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_rotate_subscription_key.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: d09958e8-7678-488f-a4b4-5e67d9715eaa + apim-request-id: 118eda7d-ce05-4319-9113-713873ef0eed content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '21' + x-envoy-upstream-service-time: '18' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -46,7 +46,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"error":{"code":"401","message":"Access denied due to invalid subscription @@ -54,11 +54,11 @@ interactions: subscription and use a correct regional API endpoint for your resource."}}' headers: content-length: '224' - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT status: code: 401 message: PermissionDenied - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false - request: body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": @@ -74,21 +74,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: bb050f03-f5c9-4f12-adc8-e12ae0596c1a + apim-request-id: 5c8055fc-ba3e-4a14-84be-7d445f310de1 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '33' + x-envoy-upstream-service-time: '21' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_show_stats_and_model_version.yaml index cf4dc2d5ebc6..a9add4cab583 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_show_stats_and_model_version.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_show_stats_and_model_version.yaml @@ -14,23 +14,23 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?model-version=latest&showStats=true + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?model-version=latest&showStats=true response: body: string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"0","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"19","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"1","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Document text is empty."}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: ded23179-cd38-4e62-ba3c-61adc204f76e + apim-request-id: be1949a7-90b0-442d-a5e4-d8f4f70183c2 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '19' + x-envoy-upstream-service-time: '17' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?model-version=latest&showStats=true + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?model-version=latest&showStats=true version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_too_many_documents.yaml index a7d47c8d8ffd..4285f3eaeeea 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_too_many_documents.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_too_many_documents.yaml @@ -14,7 +14,7 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"5","entities":[],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The @@ -22,16 +22,16 @@ interactions: number of documents in the request have exceeded the data limitations. See https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 186f9a49-84c5-4607-99c6-5652811a6a98 + apim-request-id: 20eaf457-826e-4ef8-a088-f6c242a4cc61 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=6 - date: Mon, 06 Jul 2020 22:22:35 GMT + date: Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '19' + x-envoy-upstream-service-time: '21' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_user_agent.yaml index e4bd2f6cb93f..8df745d5fa6a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_user_agent.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_user_agent.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 39cf1747-f01e-4d4c-b1e3-70b4e7988431 + apim-request-id: 91c99cfb-6cff-4875-be5f-45049318de2e content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '18' + x-envoy-upstream-service-time: '21' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_dont_use_language_hint.yaml index 63ac7285a8e6..d1e416480b26 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_dont_use_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_dont_use_language_hint.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: e78ce0cb-785b-4414-b17e-3d62b74d6ac0 + apim-request-id: 5f54fc71-e850-480b-8302-1bd53fe461ca content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '23' + x-envoy-upstream-service-time: '22' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint.yaml index c371fbe2d64a..db0d67dcd685 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint.yaml @@ -14,26 +14,26 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: dfa9021c-170d-49c0-99da-18c55663a9d2 + apim-request-id: 4793450f-091a-4a73-8e00-cef2601a1ee0 content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '2' + x-envoy-upstream-service-time: '1' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml index 192faa77a9ea..c59970badac2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 9e221de3-fe89-4ae2-9b6f-71a9ad4c3590 + apim-request-id: d6f10f38-8662-4984-9298-5280bd55065d content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:46 GMT + date: Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '16' + x-envoy-upstream-service-time: '17' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_obj_input.yaml index 7ad1327611f3..cd927bfed930 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_obj_input.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_obj_input.yaml @@ -14,26 +14,26 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"4","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid - Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Supplied - language not supported. Pass in one of: en,es"}}}],"modelVersion":"2020-02-01"}' + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"4","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en,es"}}}],"modelVersion":"2020-02-01"}' headers: - apim-request-id: cf0a890b-1dbd-4bc0-b685-71b8c40ea40d + apim-request-id: 0e8b861c-c482-4948-8f86-06a2bd59819d content-type: application/json; charset=utf-8 - date: Thu, 18 Jun 2020 19:52:45 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '3' + x-envoy-upstream-service-time: '2' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml index 687ebfe87378..b4fc91911f52 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_linked_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -14,21 +14,21 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/entities/linking?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/linking?showStats=false response: body: string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-02-01"}' headers: - apim-request-id: 83d64a94-0a36-423d-8b82-d49014e399ca + apim-request-id: a0737de8-e4ad-40d1-9709-404d4bf77a13 content-type: application/json; charset=utf-8 csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 - date: Thu, 18 Jun 2020 19:52:47 GMT + date: Fri, 24 Jul 2020 16:32:54 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload transfer-encoding: chunked x-content-type-options: nosniff - x-envoy-upstream-service-time: '1040' + x-envoy-upstream-service-time: '28' status: code: 200 message: OK - url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.0/entities/linking?showStats=false + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/linking?showStats=false version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_all_successful_passing_dict.yaml new file mode 100644 index 000000000000..6115f8866337 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_all_successful_passing_dict.yaml @@ -0,0 +1,49 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "My SSN is 859-98-0987.", "language": + "en"}, {"id": "2", "text": "Your ABA number - 111000025 - is the first 9 digits + in the lower left hand corner of your personal check.", "language": "en"}, {"id": + "3", "text": "Is 998.214.865-68 your Brazilian CPF number?", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '315' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true + response: + body: + string: '{"statistics":{"documentsCount":3,"validDocumentsCount":3,"erroneousDocumentsCount":0,"transactionsCount":3},"documents":[{"id":"1","statistics":{"charactersCount":22,"transactionsCount":1},"entities":[{"text":"859-98-0987","category":"U.S. + Social Security Number (SSN)","offset":10,"length":11,"confidenceScore":0.65}],"warnings":[]},{"id":"2","statistics":{"charactersCount":105,"transactionsCount":1},"entities":[{"text":"111000025","category":"Phone + Number","offset":18,"length":9,"confidenceScore":0.8},{"text":"111000025","category":"ABA + Routing Number","offset":18,"length":9,"confidenceScore":0.75}],"warnings":[]},{"id":"3","statistics":{"charactersCount":44,"transactionsCount":1},"entities":[{"text":"998.214.865-68","category":"Brazil + CPF Number","offset":3,"length":14,"confidenceScore":0.85}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 13864f85-984d-4a9b-8df3-c1409f0731b2 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:42 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '155' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_all_successful_passing_text_document_input.yaml new file mode 100644 index 000000000000..83aef7498df7 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_all_successful_passing_text_document_input.yaml @@ -0,0 +1,49 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "My SSN is 859-98-0987.", "language": + "en"}, {"id": "2", "text": "Your ABA number - 111000025 - is the first 9 digits + in the lower left hand corner of your personal check.", "language": "en"}, {"id": + "3", "text": "Is 998.214.865-68 your Brazilian CPF number?", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '315' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true + response: + body: + string: '{"statistics":{"documentsCount":3,"validDocumentsCount":3,"erroneousDocumentsCount":0,"transactionsCount":3},"documents":[{"id":"1","statistics":{"charactersCount":22,"transactionsCount":1},"entities":[{"text":"859-98-0987","category":"U.S. + Social Security Number (SSN)","offset":10,"length":11,"confidenceScore":0.65}],"warnings":[]},{"id":"2","statistics":{"charactersCount":105,"transactionsCount":1},"entities":[{"text":"111000025","category":"Phone + Number","offset":18,"length":9,"confidenceScore":0.8},{"text":"111000025","category":"ABA + Routing Number","offset":18,"length":9,"confidenceScore":0.75}],"warnings":[]},{"id":"3","statistics":{"charactersCount":44,"transactionsCount":1},"entities":[{"text":"998.214.865-68","category":"Brazil + CPF Number","offset":3,"length":14,"confidenceScore":0.85}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 276ffd38-55e9-4b8a-b4c8-a4af7c8286d9 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:42 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '116' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_bad_credentials.yaml new file mode 100644 index 000000000000..43251cb00dd4 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_bad_credentials.yaml @@ -0,0 +1,33 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This is written in English.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '85' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"401","message":"Access denied due to invalid subscription + key or wrong API endpoint. Make sure to provide a valid key for an active + subscription and use a correct regional API endpoint for your resource."}}' + headers: + content-length: + - '224' + date: + - Thu, 23 Jul 2020 17:18:42 GMT + status: + code: 401 + message: PermissionDenied +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_bad_model_version_error.yaml new file mode 100644 index 000000000000..f1724aa7e308 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_bad_model_version_error.yaml @@ -0,0 +1,42 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I did not like the hotel we stayed + at.", "language": "english"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '101' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=bad&showStats=false + response: + body: + string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid + model version. Possible values are: latest,2020-04-01,2019-10-01,2020-02-01"}}}' + headers: + apim-request-id: + - c999c1e5-ba3b-4351-b65d-4356362357c6 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:43 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '4' + status: + code: 400 + message: Bad Request +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_batch_size_over_limit.yaml new file mode 100644 index 000000000000..e6d9bfac4ea9 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_batch_size_over_limit.yaml @@ -0,0 +1,786 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "hello world", "language": "en"}, {"id": + "1", "text": "hello world", "language": "en"}, {"id": "2", "text": "hello world", + "language": "en"}, {"id": "3", "text": "hello world", "language": "en"}, {"id": + "4", "text": "hello world", "language": "en"}, {"id": "5", "text": "hello world", + "language": "en"}, {"id": "6", "text": "hello world", "language": "en"}, {"id": + "7", "text": "hello world", "language": "en"}, {"id": "8", "text": "hello world", + "language": "en"}, {"id": "9", "text": "hello world", "language": "en"}, {"id": + "10", "text": "hello world", "language": "en"}, {"id": "11", "text": "hello + world", "language": "en"}, {"id": "12", "text": "hello world", "language": "en"}, + {"id": "13", "text": "hello world", "language": "en"}, {"id": "14", "text": + "hello world", "language": "en"}, {"id": "15", "text": "hello world", "language": + "en"}, {"id": "16", "text": "hello world", "language": "en"}, {"id": "17", "text": + "hello world", "language": "en"}, {"id": "18", "text": "hello world", "language": + "en"}, {"id": "19", "text": "hello world", "language": "en"}, {"id": "20", "text": + "hello world", "language": "en"}, {"id": "21", "text": "hello world", "language": + "en"}, {"id": "22", "text": "hello world", "language": "en"}, {"id": "23", "text": + "hello world", "language": "en"}, {"id": "24", "text": "hello world", "language": + "en"}, {"id": "25", "text": "hello world", "language": "en"}, {"id": "26", "text": + "hello world", "language": "en"}, {"id": "27", "text": "hello world", "language": + "en"}, {"id": "28", "text": "hello world", "language": "en"}, {"id": "29", "text": + "hello world", "language": "en"}, {"id": "30", "text": "hello world", "language": + "en"}, {"id": "31", "text": "hello world", "language": "en"}, {"id": "32", "text": + "hello world", "language": "en"}, {"id": "33", "text": "hello world", "language": + "en"}, {"id": "34", "text": "hello world", "language": "en"}, {"id": "35", "text": + "hello world", "language": "en"}, {"id": "36", "text": "hello world", "language": + "en"}, {"id": "37", "text": "hello world", "language": "en"}, {"id": "38", "text": + "hello world", "language": "en"}, {"id": "39", "text": "hello world", "language": + "en"}, {"id": "40", "text": "hello world", "language": "en"}, {"id": "41", "text": + "hello world", "language": "en"}, {"id": "42", "text": "hello world", "language": + "en"}, {"id": "43", "text": "hello world", "language": "en"}, {"id": "44", "text": + "hello world", "language": "en"}, {"id": "45", "text": "hello world", "language": + "en"}, {"id": "46", "text": "hello world", "language": "en"}, {"id": "47", "text": + "hello world", "language": "en"}, {"id": "48", "text": "hello world", "language": + "en"}, {"id": "49", "text": "hello world", "language": "en"}, {"id": "50", "text": + "hello world", "language": "en"}, {"id": "51", "text": "hello world", "language": + "en"}, {"id": "52", "text": "hello world", "language": "en"}, {"id": "53", "text": + "hello world", "language": "en"}, {"id": "54", "text": "hello world", "language": + "en"}, {"id": "55", "text": "hello world", "language": "en"}, {"id": "56", "text": + "hello world", "language": "en"}, {"id": "57", "text": "hello world", "language": + "en"}, {"id": "58", "text": "hello world", "language": "en"}, {"id": "59", "text": + "hello world", "language": "en"}, {"id": "60", "text": "hello world", "language": + "en"}, {"id": "61", "text": "hello world", "language": "en"}, {"id": "62", "text": + "hello world", "language": "en"}, {"id": "63", "text": "hello world", "language": + "en"}, {"id": "64", "text": "hello world", "language": "en"}, {"id": "65", "text": + "hello world", "language": "en"}, {"id": "66", "text": "hello world", "language": + "en"}, {"id": "67", "text": "hello world", "language": "en"}, {"id": "68", "text": + "hello world", "language": "en"}, {"id": "69", "text": "hello world", "language": + "en"}, {"id": "70", "text": "hello world", "language": "en"}, {"id": "71", "text": + "hello world", "language": "en"}, {"id": "72", "text": "hello world", "language": + "en"}, {"id": "73", "text": "hello world", "language": "en"}, {"id": "74", "text": + "hello world", "language": "en"}, {"id": "75", "text": "hello world", "language": + "en"}, {"id": "76", "text": "hello world", "language": "en"}, {"id": "77", "text": + "hello world", "language": "en"}, {"id": "78", "text": "hello world", "language": + "en"}, {"id": "79", "text": "hello world", "language": "en"}, {"id": "80", "text": + "hello world", "language": "en"}, {"id": "81", "text": "hello world", "language": + "en"}, {"id": "82", "text": "hello world", "language": "en"}, {"id": "83", "text": + "hello world", "language": "en"}, {"id": "84", "text": "hello world", "language": + "en"}, {"id": "85", "text": "hello world", "language": "en"}, {"id": "86", "text": + "hello world", "language": "en"}, {"id": "87", "text": "hello world", "language": + "en"}, {"id": "88", "text": "hello world", "language": "en"}, {"id": "89", "text": + "hello world", "language": "en"}, {"id": "90", "text": "hello world", "language": + "en"}, {"id": "91", "text": "hello world", "language": "en"}, {"id": "92", "text": + "hello world", "language": "en"}, {"id": "93", "text": "hello world", "language": + "en"}, {"id": "94", "text": "hello world", "language": "en"}, {"id": "95", "text": + "hello world", "language": "en"}, {"id": "96", "text": "hello world", "language": + "en"}, {"id": "97", "text": "hello world", "language": "en"}, {"id": "98", "text": + "hello world", "language": "en"}, {"id": "99", "text": "hello world", "language": + "en"}, {"id": "100", "text": "hello world", "language": "en"}, {"id": "101", + "text": "hello world", "language": "en"}, {"id": "102", "text": "hello world", + "language": "en"}, {"id": "103", "text": "hello world", "language": "en"}, {"id": + "104", "text": "hello world", "language": "en"}, {"id": "105", "text": "hello + world", "language": "en"}, {"id": "106", "text": "hello world", "language": + "en"}, {"id": "107", "text": "hello world", "language": "en"}, {"id": "108", + "text": "hello world", "language": "en"}, {"id": "109", "text": "hello world", + "language": "en"}, {"id": "110", "text": "hello world", "language": "en"}, {"id": + "111", "text": "hello world", "language": "en"}, {"id": "112", "text": "hello + world", "language": "en"}, {"id": "113", "text": "hello world", "language": + "en"}, {"id": "114", "text": "hello world", "language": "en"}, {"id": "115", + "text": "hello world", "language": "en"}, {"id": "116", "text": "hello world", + "language": "en"}, {"id": "117", "text": "hello world", "language": "en"}, {"id": + "118", "text": "hello world", "language": "en"}, {"id": "119", "text": "hello + world", "language": "en"}, {"id": "120", "text": "hello world", "language": + "en"}, {"id": "121", "text": "hello world", "language": "en"}, {"id": "122", + "text": "hello world", "language": "en"}, {"id": "123", "text": "hello world", + "language": "en"}, {"id": "124", "text": "hello world", "language": "en"}, {"id": + "125", "text": "hello world", "language": "en"}, {"id": "126", "text": "hello + world", "language": "en"}, {"id": "127", "text": "hello world", "language": + "en"}, {"id": "128", "text": "hello world", "language": "en"}, {"id": "129", + "text": "hello world", "language": "en"}, {"id": "130", "text": "hello world", + "language": "en"}, {"id": "131", "text": "hello world", "language": "en"}, {"id": + "132", "text": "hello world", "language": "en"}, {"id": "133", "text": "hello + world", "language": "en"}, {"id": "134", "text": "hello world", "language": + "en"}, {"id": "135", "text": "hello world", "language": "en"}, {"id": "136", + "text": "hello world", "language": "en"}, {"id": "137", "text": "hello world", + "language": "en"}, {"id": "138", "text": "hello world", "language": "en"}, {"id": + "139", "text": "hello world", "language": "en"}, {"id": "140", "text": "hello + world", "language": "en"}, {"id": "141", "text": "hello world", "language": + "en"}, {"id": "142", "text": "hello world", "language": "en"}, {"id": "143", + "text": "hello world", "language": "en"}, {"id": "144", "text": "hello world", + "language": "en"}, {"id": "145", "text": "hello world", "language": "en"}, {"id": + "146", "text": "hello world", "language": "en"}, {"id": "147", "text": "hello + world", "language": "en"}, {"id": "148", "text": "hello world", "language": + "en"}, {"id": "149", "text": "hello world", "language": "en"}, {"id": "150", + "text": "hello world", "language": "en"}, {"id": "151", "text": "hello world", + "language": "en"}, {"id": "152", "text": "hello world", "language": "en"}, {"id": + "153", "text": "hello world", "language": "en"}, {"id": "154", "text": "hello + world", "language": "en"}, {"id": "155", "text": "hello world", "language": + "en"}, {"id": "156", "text": "hello world", "language": "en"}, {"id": "157", + "text": "hello world", "language": "en"}, {"id": "158", "text": "hello world", + "language": "en"}, {"id": "159", "text": "hello world", "language": "en"}, {"id": + "160", "text": "hello world", "language": "en"}, {"id": "161", "text": "hello + world", "language": "en"}, {"id": "162", "text": "hello world", "language": + "en"}, {"id": "163", "text": "hello world", "language": "en"}, {"id": "164", + "text": "hello world", "language": "en"}, {"id": "165", "text": "hello world", + "language": "en"}, {"id": "166", "text": "hello world", "language": "en"}, {"id": + "167", "text": "hello world", "language": "en"}, {"id": "168", "text": "hello + world", "language": "en"}, {"id": "169", "text": "hello world", "language": + "en"}, {"id": "170", "text": "hello world", "language": "en"}, {"id": "171", + "text": "hello world", "language": "en"}, {"id": "172", "text": "hello world", + "language": "en"}, {"id": "173", "text": "hello world", "language": "en"}, {"id": + "174", "text": "hello world", "language": "en"}, {"id": "175", "text": "hello + world", "language": "en"}, {"id": "176", "text": "hello world", "language": + "en"}, {"id": "177", "text": "hello world", "language": "en"}, {"id": "178", + "text": "hello world", "language": "en"}, {"id": "179", "text": "hello world", + "language": "en"}, {"id": "180", "text": "hello world", "language": "en"}, {"id": + "181", "text": "hello world", "language": "en"}, {"id": "182", "text": "hello + world", "language": "en"}, {"id": "183", "text": "hello world", "language": + "en"}, {"id": "184", "text": "hello world", "language": "en"}, {"id": "185", + "text": "hello world", "language": "en"}, {"id": "186", "text": "hello world", + "language": "en"}, {"id": "187", "text": "hello world", "language": "en"}, {"id": + "188", "text": "hello world", "language": "en"}, {"id": "189", "text": "hello + world", "language": "en"}, {"id": "190", "text": "hello world", "language": + "en"}, {"id": "191", "text": "hello world", "language": "en"}, {"id": "192", + "text": "hello world", "language": "en"}, {"id": "193", "text": "hello world", + "language": "en"}, {"id": "194", "text": "hello world", "language": "en"}, {"id": + "195", "text": "hello world", "language": "en"}, {"id": "196", "text": "hello + world", "language": "en"}, {"id": "197", "text": "hello world", "language": + "en"}, {"id": "198", "text": "hello world", "language": "en"}, {"id": "199", + "text": "hello world", "language": "en"}, {"id": "200", "text": "hello world", + "language": "en"}, {"id": "201", "text": "hello world", "language": "en"}, {"id": + "202", "text": "hello world", "language": "en"}, {"id": "203", "text": "hello + world", "language": "en"}, {"id": "204", "text": "hello world", "language": + "en"}, {"id": "205", "text": "hello world", "language": "en"}, {"id": "206", + "text": "hello world", "language": "en"}, {"id": "207", "text": "hello world", + "language": "en"}, {"id": "208", "text": "hello world", "language": "en"}, {"id": + "209", "text": "hello world", "language": "en"}, {"id": "210", "text": "hello + world", "language": "en"}, {"id": "211", "text": "hello world", "language": + "en"}, {"id": "212", "text": "hello world", "language": "en"}, {"id": "213", + "text": "hello world", "language": "en"}, {"id": "214", "text": "hello world", + "language": "en"}, {"id": "215", "text": "hello world", "language": "en"}, {"id": + "216", "text": "hello world", "language": "en"}, {"id": "217", "text": "hello + world", "language": "en"}, {"id": "218", "text": "hello world", "language": + "en"}, {"id": "219", "text": "hello world", "language": "en"}, {"id": "220", + "text": "hello world", "language": "en"}, {"id": "221", "text": "hello world", + "language": "en"}, {"id": "222", "text": "hello world", "language": "en"}, {"id": + "223", "text": "hello world", "language": "en"}, {"id": "224", "text": "hello + world", "language": "en"}, {"id": "225", "text": "hello world", "language": + "en"}, {"id": "226", "text": "hello world", "language": "en"}, {"id": "227", + "text": "hello world", "language": "en"}, {"id": "228", "text": "hello world", + "language": "en"}, {"id": "229", "text": "hello world", "language": "en"}, {"id": + "230", "text": "hello world", "language": "en"}, {"id": "231", "text": "hello + world", "language": "en"}, {"id": "232", "text": "hello world", "language": + "en"}, {"id": "233", "text": "hello world", "language": "en"}, {"id": "234", + "text": "hello world", "language": "en"}, {"id": "235", "text": "hello world", + "language": "en"}, {"id": "236", "text": "hello world", "language": "en"}, {"id": + "237", "text": "hello world", "language": "en"}, {"id": "238", "text": "hello + world", "language": "en"}, {"id": "239", "text": "hello world", "language": + "en"}, {"id": "240", "text": "hello world", "language": "en"}, {"id": "241", + "text": "hello world", "language": "en"}, {"id": "242", "text": "hello world", + "language": "en"}, {"id": "243", "text": "hello world", "language": "en"}, {"id": + "244", "text": "hello world", "language": "en"}, {"id": "245", "text": "hello + world", "language": "en"}, {"id": "246", "text": "hello world", "language": + "en"}, {"id": "247", "text": "hello world", "language": "en"}, {"id": "248", + "text": "hello world", "language": "en"}, {"id": "249", "text": "hello world", + "language": "en"}, {"id": "250", "text": "hello world", "language": "en"}, {"id": + "251", "text": "hello world", "language": "en"}, {"id": "252", "text": "hello + world", "language": "en"}, {"id": "253", "text": "hello world", "language": + "en"}, {"id": "254", "text": "hello world", "language": "en"}, {"id": "255", + "text": "hello world", "language": "en"}, {"id": "256", "text": "hello world", + "language": "en"}, {"id": "257", "text": "hello world", "language": "en"}, {"id": + "258", "text": "hello world", "language": "en"}, {"id": "259", "text": "hello + world", "language": "en"}, {"id": "260", "text": "hello world", "language": + "en"}, {"id": "261", "text": "hello world", "language": "en"}, {"id": "262", + "text": "hello world", "language": "en"}, {"id": "263", "text": "hello world", + "language": "en"}, {"id": "264", "text": "hello world", "language": "en"}, {"id": + "265", "text": "hello world", "language": "en"}, {"id": "266", "text": "hello + world", "language": "en"}, {"id": "267", "text": "hello world", "language": + "en"}, {"id": "268", "text": "hello world", "language": "en"}, {"id": "269", + "text": "hello world", "language": "en"}, {"id": "270", "text": "hello world", + "language": "en"}, {"id": "271", "text": "hello world", "language": "en"}, {"id": + "272", "text": "hello world", "language": "en"}, {"id": "273", "text": "hello + world", "language": "en"}, {"id": "274", "text": "hello world", "language": + "en"}, {"id": "275", "text": "hello world", "language": "en"}, {"id": "276", + "text": "hello world", "language": "en"}, {"id": "277", "text": "hello world", + "language": "en"}, {"id": "278", "text": "hello world", "language": "en"}, {"id": + "279", "text": "hello world", "language": "en"}, {"id": "280", "text": "hello + world", "language": "en"}, {"id": "281", "text": "hello world", "language": + "en"}, {"id": "282", "text": "hello world", "language": "en"}, {"id": "283", + "text": "hello world", "language": "en"}, {"id": "284", "text": "hello world", + "language": "en"}, {"id": "285", "text": "hello world", "language": "en"}, {"id": + "286", "text": "hello world", "language": "en"}, {"id": "287", "text": "hello + world", "language": "en"}, {"id": "288", "text": "hello world", "language": + "en"}, {"id": "289", "text": "hello world", "language": "en"}, {"id": "290", + "text": "hello world", "language": "en"}, {"id": "291", "text": "hello world", + "language": "en"}, {"id": "292", "text": "hello world", "language": "en"}, {"id": + "293", "text": "hello world", "language": "en"}, {"id": "294", "text": "hello + world", "language": "en"}, {"id": "295", "text": "hello world", "language": + "en"}, {"id": "296", "text": "hello world", "language": "en"}, {"id": "297", + "text": "hello world", "language": "en"}, {"id": "298", "text": "hello world", + "language": "en"}, {"id": "299", "text": "hello world", "language": "en"}, {"id": + "300", "text": "hello world", "language": "en"}, {"id": "301", "text": "hello + world", "language": "en"}, {"id": "302", "text": "hello world", "language": + "en"}, {"id": "303", "text": "hello world", "language": "en"}, {"id": "304", + "text": "hello world", "language": "en"}, {"id": "305", "text": "hello world", + "language": "en"}, {"id": "306", "text": "hello world", "language": "en"}, {"id": + "307", "text": "hello world", "language": "en"}, {"id": "308", "text": "hello + world", "language": "en"}, {"id": "309", "text": "hello world", "language": + "en"}, {"id": "310", "text": "hello world", "language": "en"}, {"id": "311", + "text": "hello world", "language": "en"}, {"id": "312", "text": "hello world", + "language": "en"}, {"id": "313", "text": "hello world", "language": "en"}, {"id": + "314", "text": "hello world", "language": "en"}, {"id": "315", "text": "hello + world", "language": "en"}, {"id": "316", "text": "hello world", "language": + "en"}, {"id": "317", "text": "hello world", "language": "en"}, {"id": "318", + "text": "hello world", "language": "en"}, {"id": "319", "text": "hello world", + "language": "en"}, {"id": "320", "text": "hello world", "language": "en"}, {"id": + "321", "text": "hello world", "language": "en"}, {"id": "322", "text": "hello + world", "language": "en"}, {"id": "323", "text": "hello world", "language": + "en"}, {"id": "324", "text": "hello world", "language": "en"}, {"id": "325", + "text": "hello world", "language": "en"}, {"id": "326", "text": "hello world", + "language": "en"}, {"id": "327", "text": "hello world", "language": "en"}, {"id": + "328", "text": "hello world", "language": "en"}, {"id": "329", "text": "hello + world", "language": "en"}, {"id": "330", "text": "hello world", "language": + "en"}, {"id": "331", "text": "hello world", "language": "en"}, {"id": "332", + "text": "hello world", "language": "en"}, {"id": "333", "text": "hello world", + "language": "en"}, {"id": "334", "text": "hello world", "language": "en"}, {"id": + "335", "text": "hello world", "language": "en"}, {"id": "336", "text": "hello + world", "language": "en"}, {"id": "337", "text": "hello world", "language": + "en"}, {"id": "338", "text": "hello world", "language": "en"}, {"id": "339", + "text": "hello world", "language": "en"}, {"id": "340", "text": "hello world", + "language": "en"}, {"id": "341", "text": "hello world", "language": "en"}, {"id": + "342", "text": "hello world", "language": "en"}, {"id": "343", "text": "hello + world", "language": "en"}, {"id": "344", "text": "hello world", "language": + "en"}, {"id": "345", "text": "hello world", "language": "en"}, {"id": "346", + "text": "hello world", "language": "en"}, {"id": "347", "text": "hello world", + "language": "en"}, {"id": "348", "text": "hello world", "language": "en"}, {"id": + "349", "text": "hello world", "language": "en"}, {"id": "350", "text": "hello + world", "language": "en"}, {"id": "351", "text": "hello world", "language": + "en"}, {"id": "352", "text": "hello world", "language": "en"}, {"id": "353", + "text": "hello world", "language": "en"}, {"id": "354", "text": "hello world", + "language": "en"}, {"id": "355", "text": "hello world", "language": "en"}, {"id": + "356", "text": "hello world", "language": "en"}, {"id": "357", "text": "hello + world", "language": "en"}, {"id": "358", "text": "hello world", "language": + "en"}, {"id": "359", "text": "hello world", "language": "en"}, {"id": "360", + "text": "hello world", "language": "en"}, {"id": "361", "text": "hello world", + "language": "en"}, {"id": "362", "text": "hello world", "language": "en"}, {"id": + "363", "text": "hello world", "language": "en"}, {"id": "364", "text": "hello + world", "language": "en"}, {"id": "365", "text": "hello world", "language": + "en"}, {"id": "366", "text": "hello world", "language": "en"}, {"id": "367", + "text": "hello world", "language": "en"}, {"id": "368", "text": "hello world", + "language": "en"}, {"id": "369", "text": "hello world", "language": "en"}, {"id": + "370", "text": "hello world", "language": "en"}, {"id": "371", "text": "hello + world", "language": "en"}, {"id": "372", "text": "hello world", "language": + "en"}, {"id": "373", "text": "hello world", "language": "en"}, {"id": "374", + "text": "hello world", "language": "en"}, {"id": "375", "text": "hello world", + "language": "en"}, {"id": "376", "text": "hello world", "language": "en"}, {"id": + "377", "text": "hello world", "language": "en"}, {"id": "378", "text": "hello + world", "language": "en"}, {"id": "379", "text": "hello world", "language": + "en"}, {"id": "380", "text": "hello world", "language": "en"}, {"id": "381", + "text": "hello world", "language": "en"}, {"id": "382", "text": "hello world", + "language": "en"}, {"id": "383", "text": "hello world", "language": "en"}, {"id": + "384", "text": "hello world", "language": "en"}, {"id": "385", "text": "hello + world", "language": "en"}, {"id": "386", "text": "hello world", "language": + "en"}, {"id": "387", "text": "hello world", "language": "en"}, {"id": "388", + "text": "hello world", "language": "en"}, {"id": "389", "text": "hello world", + "language": "en"}, {"id": "390", "text": "hello world", "language": "en"}, {"id": + "391", "text": "hello world", "language": "en"}, {"id": "392", "text": "hello + world", "language": "en"}, {"id": "393", "text": "hello world", "language": + "en"}, {"id": "394", "text": "hello world", "language": "en"}, {"id": "395", + "text": "hello world", "language": "en"}, {"id": "396", "text": "hello world", + "language": "en"}, {"id": "397", "text": "hello world", "language": "en"}, {"id": + "398", "text": "hello world", "language": "en"}, {"id": "399", "text": "hello + world", "language": "en"}, {"id": "400", "text": "hello world", "language": + "en"}, {"id": "401", "text": "hello world", "language": "en"}, {"id": "402", + "text": "hello world", "language": "en"}, {"id": "403", "text": "hello world", + "language": "en"}, {"id": "404", "text": "hello world", "language": "en"}, {"id": + "405", "text": "hello world", "language": "en"}, {"id": "406", "text": "hello + world", "language": "en"}, {"id": "407", "text": "hello world", "language": + "en"}, {"id": "408", "text": "hello world", "language": "en"}, {"id": "409", + "text": "hello world", "language": "en"}, {"id": "410", "text": "hello world", + "language": "en"}, {"id": "411", "text": "hello world", "language": "en"}, {"id": + "412", "text": "hello world", "language": "en"}, {"id": "413", "text": "hello + world", "language": "en"}, {"id": "414", "text": "hello world", "language": + "en"}, {"id": "415", "text": "hello world", "language": "en"}, {"id": "416", + "text": "hello world", "language": "en"}, {"id": "417", "text": "hello world", + "language": "en"}, {"id": "418", "text": "hello world", "language": "en"}, {"id": + "419", "text": "hello world", "language": "en"}, {"id": "420", "text": "hello + world", "language": "en"}, {"id": "421", "text": "hello world", "language": + "en"}, {"id": "422", "text": "hello world", "language": "en"}, {"id": "423", + "text": "hello world", "language": "en"}, {"id": "424", "text": "hello world", + "language": "en"}, {"id": "425", "text": "hello world", "language": "en"}, {"id": + "426", "text": "hello world", "language": "en"}, {"id": "427", "text": "hello + world", "language": "en"}, {"id": "428", "text": "hello world", "language": + "en"}, {"id": "429", "text": "hello world", "language": "en"}, {"id": "430", + "text": "hello world", "language": "en"}, {"id": "431", "text": "hello world", + "language": "en"}, {"id": "432", "text": "hello world", "language": "en"}, {"id": + "433", "text": "hello world", "language": "en"}, {"id": "434", "text": "hello + world", "language": "en"}, {"id": "435", "text": "hello world", "language": + "en"}, {"id": "436", "text": "hello world", "language": "en"}, {"id": "437", + "text": "hello world", "language": "en"}, {"id": "438", "text": "hello world", + "language": "en"}, {"id": "439", "text": "hello world", "language": "en"}, {"id": + "440", "text": "hello world", "language": "en"}, {"id": "441", "text": "hello + world", "language": "en"}, {"id": "442", "text": "hello world", "language": + "en"}, {"id": "443", "text": "hello world", "language": "en"}, {"id": "444", + "text": "hello world", "language": "en"}, {"id": "445", "text": "hello world", + "language": "en"}, {"id": "446", "text": "hello world", "language": "en"}, {"id": + "447", "text": "hello world", "language": "en"}, {"id": "448", "text": "hello + world", "language": "en"}, {"id": "449", "text": "hello world", "language": + "en"}, {"id": "450", "text": "hello world", "language": "en"}, {"id": "451", + "text": "hello world", "language": "en"}, {"id": "452", "text": "hello world", + "language": "en"}, {"id": "453", "text": "hello world", "language": "en"}, {"id": + "454", "text": "hello world", "language": "en"}, {"id": "455", "text": "hello + world", "language": "en"}, {"id": "456", "text": "hello world", "language": + "en"}, {"id": "457", "text": "hello world", "language": "en"}, {"id": "458", + "text": "hello world", "language": "en"}, {"id": "459", "text": "hello world", + "language": "en"}, {"id": "460", "text": "hello world", "language": "en"}, {"id": + "461", "text": "hello world", "language": "en"}, {"id": "462", "text": "hello + world", "language": "en"}, {"id": "463", "text": "hello world", "language": + "en"}, {"id": "464", "text": "hello world", "language": "en"}, {"id": "465", + "text": "hello world", "language": "en"}, {"id": "466", "text": "hello world", + "language": "en"}, {"id": "467", "text": "hello world", "language": "en"}, {"id": + "468", "text": "hello world", "language": "en"}, {"id": "469", "text": "hello + world", "language": "en"}, {"id": "470", "text": "hello world", "language": + "en"}, {"id": "471", "text": "hello world", "language": "en"}, {"id": "472", + "text": "hello world", "language": "en"}, {"id": "473", "text": "hello world", + "language": "en"}, {"id": "474", "text": "hello world", "language": "en"}, {"id": + "475", "text": "hello world", "language": "en"}, {"id": "476", "text": "hello + world", "language": "en"}, {"id": "477", "text": "hello world", "language": + "en"}, {"id": "478", "text": "hello world", "language": "en"}, {"id": "479", + "text": "hello world", "language": "en"}, {"id": "480", "text": "hello world", + "language": "en"}, {"id": "481", "text": "hello world", "language": "en"}, {"id": + "482", "text": "hello world", "language": "en"}, {"id": "483", "text": "hello + world", "language": "en"}, {"id": "484", "text": "hello world", "language": + "en"}, {"id": "485", "text": "hello world", "language": "en"}, {"id": "486", + "text": "hello world", "language": "en"}, {"id": "487", "text": "hello world", + "language": "en"}, {"id": "488", "text": "hello world", "language": "en"}, {"id": + "489", "text": "hello world", "language": "en"}, {"id": "490", "text": "hello + world", "language": "en"}, {"id": "491", "text": "hello world", "language": + "en"}, {"id": "492", "text": "hello world", "language": "en"}, {"id": "493", + "text": "hello world", "language": "en"}, {"id": "494", "text": "hello world", + "language": "en"}, {"id": "495", "text": "hello world", "language": "en"}, {"id": + "496", "text": "hello world", "language": "en"}, {"id": "497", "text": "hello + world", "language": "en"}, {"id": "498", "text": "hello world", "language": + "en"}, {"id": "499", "text": "hello world", "language": "en"}, {"id": "500", + "text": "hello world", "language": "en"}, {"id": "501", "text": "hello world", + "language": "en"}, {"id": "502", "text": "hello world", "language": "en"}, {"id": + "503", "text": "hello world", "language": "en"}, {"id": "504", "text": "hello + world", "language": "en"}, {"id": "505", "text": "hello world", "language": + "en"}, {"id": "506", "text": "hello world", "language": "en"}, {"id": "507", + "text": "hello world", "language": "en"}, {"id": "508", "text": "hello world", + "language": "en"}, {"id": "509", "text": "hello world", "language": "en"}, {"id": + "510", "text": "hello world", "language": "en"}, {"id": "511", "text": "hello + world", "language": "en"}, {"id": "512", "text": "hello world", "language": + "en"}, {"id": "513", "text": "hello world", "language": "en"}, {"id": "514", + "text": "hello world", "language": "en"}, {"id": "515", "text": "hello world", + "language": "en"}, {"id": "516", "text": "hello world", "language": "en"}, {"id": + "517", "text": "hello world", "language": "en"}, {"id": "518", "text": "hello + world", "language": "en"}, {"id": "519", "text": "hello world", "language": + "en"}, {"id": "520", "text": "hello world", "language": "en"}, {"id": "521", + "text": "hello world", "language": "en"}, {"id": "522", "text": "hello world", + "language": "en"}, {"id": "523", "text": "hello world", "language": "en"}, {"id": + "524", "text": "hello world", "language": "en"}, {"id": "525", "text": "hello + world", "language": "en"}, {"id": "526", "text": "hello world", "language": + "en"}, {"id": "527", "text": "hello world", "language": "en"}, {"id": "528", + "text": "hello world", "language": "en"}, {"id": "529", "text": "hello world", + "language": "en"}, {"id": "530", "text": "hello world", "language": "en"}, {"id": + "531", "text": "hello world", "language": "en"}, {"id": "532", "text": "hello + world", "language": "en"}, {"id": "533", "text": "hello world", "language": + "en"}, {"id": "534", "text": "hello world", "language": "en"}, {"id": "535", + "text": "hello world", "language": "en"}, {"id": "536", "text": "hello world", + "language": "en"}, {"id": "537", "text": "hello world", "language": "en"}, {"id": + "538", "text": "hello world", "language": "en"}, {"id": "539", "text": "hello + world", "language": "en"}, {"id": "540", "text": "hello world", "language": + "en"}, {"id": "541", "text": "hello world", "language": "en"}, {"id": "542", + "text": "hello world", "language": "en"}, {"id": "543", "text": "hello world", + "language": "en"}, {"id": "544", "text": "hello world", "language": "en"}, {"id": + "545", "text": "hello world", "language": "en"}, {"id": "546", "text": "hello + world", "language": "en"}, {"id": "547", "text": "hello world", "language": + "en"}, {"id": "548", "text": "hello world", "language": "en"}, {"id": "549", + "text": "hello world", "language": "en"}, {"id": "550", "text": "hello world", + "language": "en"}, {"id": "551", "text": "hello world", "language": "en"}, {"id": + "552", "text": "hello world", "language": "en"}, {"id": "553", "text": "hello + world", "language": "en"}, {"id": "554", "text": "hello world", "language": + "en"}, {"id": "555", "text": "hello world", "language": "en"}, {"id": "556", + "text": "hello world", "language": "en"}, {"id": "557", "text": "hello world", + "language": "en"}, {"id": "558", "text": "hello world", "language": "en"}, {"id": + "559", "text": "hello world", "language": "en"}, {"id": "560", "text": "hello + world", "language": "en"}, {"id": "561", "text": "hello world", "language": + "en"}, {"id": "562", "text": "hello world", "language": "en"}, {"id": "563", + "text": "hello world", "language": "en"}, {"id": "564", "text": "hello world", + "language": "en"}, {"id": "565", "text": "hello world", "language": "en"}, {"id": + "566", "text": "hello world", "language": "en"}, {"id": "567", "text": "hello + world", "language": "en"}, {"id": "568", "text": "hello world", "language": + "en"}, {"id": "569", "text": "hello world", "language": "en"}, {"id": "570", + "text": "hello world", "language": "en"}, {"id": "571", "text": "hello world", + "language": "en"}, {"id": "572", "text": "hello world", "language": "en"}, {"id": + "573", "text": "hello world", "language": "en"}, {"id": "574", "text": "hello + world", "language": "en"}, {"id": "575", "text": "hello world", "language": + "en"}, {"id": "576", "text": "hello world", "language": "en"}, {"id": "577", + "text": "hello world", "language": "en"}, {"id": "578", "text": "hello world", + "language": "en"}, {"id": "579", "text": "hello world", "language": "en"}, {"id": + "580", "text": "hello world", "language": "en"}, {"id": "581", "text": "hello + world", "language": "en"}, {"id": "582", "text": "hello world", "language": + "en"}, {"id": "583", "text": "hello world", "language": "en"}, {"id": "584", + "text": "hello world", "language": "en"}, {"id": "585", "text": "hello world", + "language": "en"}, {"id": "586", "text": "hello world", "language": "en"}, {"id": + "587", "text": "hello world", "language": "en"}, {"id": "588", "text": "hello + world", "language": "en"}, {"id": "589", "text": "hello world", "language": + "en"}, {"id": "590", "text": "hello world", "language": "en"}, {"id": "591", + "text": "hello world", "language": "en"}, {"id": "592", "text": "hello world", + "language": "en"}, {"id": "593", "text": "hello world", "language": "en"}, {"id": + "594", "text": "hello world", "language": "en"}, {"id": "595", "text": "hello + world", "language": "en"}, {"id": "596", "text": "hello world", "language": + "en"}, {"id": "597", "text": "hello world", "language": "en"}, {"id": "598", + "text": "hello world", "language": "en"}, {"id": "599", "text": "hello world", + "language": "en"}, {"id": "600", "text": "hello world", "language": "en"}, {"id": + "601", "text": "hello world", "language": "en"}, {"id": "602", "text": "hello + world", "language": "en"}, {"id": "603", "text": "hello world", "language": + "en"}, {"id": "604", "text": "hello world", "language": "en"}, {"id": "605", + "text": "hello world", "language": "en"}, {"id": "606", "text": "hello world", + "language": "en"}, {"id": "607", "text": "hello world", "language": "en"}, {"id": + "608", "text": "hello world", "language": "en"}, {"id": "609", "text": "hello + world", "language": "en"}, {"id": "610", "text": "hello world", "language": + "en"}, {"id": "611", "text": "hello world", "language": "en"}, {"id": "612", + "text": "hello world", "language": "en"}, {"id": "613", "text": "hello world", + "language": "en"}, {"id": "614", "text": "hello world", "language": "en"}, {"id": + "615", "text": "hello world", "language": "en"}, {"id": "616", "text": "hello + world", "language": "en"}, {"id": "617", "text": "hello world", "language": + "en"}, {"id": "618", "text": "hello world", "language": "en"}, {"id": "619", + "text": "hello world", "language": "en"}, {"id": "620", "text": "hello world", + "language": "en"}, {"id": "621", "text": "hello world", "language": "en"}, {"id": + "622", "text": "hello world", "language": "en"}, {"id": "623", "text": "hello + world", "language": "en"}, {"id": "624", "text": "hello world", "language": + "en"}, {"id": "625", "text": "hello world", "language": "en"}, {"id": "626", + "text": "hello world", "language": "en"}, {"id": "627", "text": "hello world", + "language": "en"}, {"id": "628", "text": "hello world", "language": "en"}, {"id": + "629", "text": "hello world", "language": "en"}, {"id": "630", "text": "hello + world", "language": "en"}, {"id": "631", "text": "hello world", "language": + "en"}, {"id": "632", "text": "hello world", "language": "en"}, {"id": "633", + "text": "hello world", "language": "en"}, {"id": "634", "text": "hello world", + "language": "en"}, {"id": "635", "text": "hello world", "language": "en"}, {"id": + "636", "text": "hello world", "language": "en"}, {"id": "637", "text": "hello + world", "language": "en"}, {"id": "638", "text": "hello world", "language": + "en"}, {"id": "639", "text": "hello world", "language": "en"}, {"id": "640", + "text": "hello world", "language": "en"}, {"id": "641", "text": "hello world", + "language": "en"}, {"id": "642", "text": "hello world", "language": "en"}, {"id": + "643", "text": "hello world", "language": "en"}, {"id": "644", "text": "hello + world", "language": "en"}, {"id": "645", "text": "hello world", "language": + "en"}, {"id": "646", "text": "hello world", "language": "en"}, {"id": "647", + "text": "hello world", "language": "en"}, {"id": "648", "text": "hello world", + "language": "en"}, {"id": "649", "text": "hello world", "language": "en"}, {"id": + "650", "text": "hello world", "language": "en"}, {"id": "651", "text": "hello + world", "language": "en"}, {"id": "652", "text": "hello world", "language": + "en"}, {"id": "653", "text": "hello world", "language": "en"}, {"id": "654", + "text": "hello world", "language": "en"}, {"id": "655", "text": "hello world", + "language": "en"}, {"id": "656", "text": "hello world", "language": "en"}, {"id": + "657", "text": "hello world", "language": "en"}, {"id": "658", "text": "hello + world", "language": "en"}, {"id": "659", "text": "hello world", "language": + "en"}, {"id": "660", "text": "hello world", "language": "en"}, {"id": "661", + "text": "hello world", "language": "en"}, {"id": "662", "text": "hello world", + "language": "en"}, {"id": "663", "text": "hello world", "language": "en"}, {"id": + "664", "text": "hello world", "language": "en"}, {"id": "665", "text": "hello + world", "language": "en"}, {"id": "666", "text": "hello world", "language": + "en"}, {"id": "667", "text": "hello world", "language": "en"}, {"id": "668", + "text": "hello world", "language": "en"}, {"id": "669", "text": "hello world", + "language": "en"}, {"id": "670", "text": "hello world", "language": "en"}, {"id": + "671", "text": "hello world", "language": "en"}, {"id": "672", "text": "hello + world", "language": "en"}, {"id": "673", "text": "hello world", "language": + "en"}, {"id": "674", "text": "hello world", "language": "en"}, {"id": "675", + "text": "hello world", "language": "en"}, {"id": "676", "text": "hello world", + "language": "en"}, {"id": "677", "text": "hello world", "language": "en"}, {"id": + "678", "text": "hello world", "language": "en"}, {"id": "679", "text": "hello + world", "language": "en"}, {"id": "680", "text": "hello world", "language": + "en"}, {"id": "681", "text": "hello world", "language": "en"}, {"id": "682", + "text": "hello world", "language": "en"}, {"id": "683", "text": "hello world", + "language": "en"}, {"id": "684", "text": "hello world", "language": "en"}, {"id": + "685", "text": "hello world", "language": "en"}, {"id": "686", "text": "hello + world", "language": "en"}, {"id": "687", "text": "hello world", "language": + "en"}, {"id": "688", "text": "hello world", "language": "en"}, {"id": "689", + "text": "hello world", "language": "en"}, {"id": "690", "text": "hello world", + "language": "en"}, {"id": "691", "text": "hello world", "language": "en"}, {"id": + "692", "text": "hello world", "language": "en"}, {"id": "693", "text": "hello + world", "language": "en"}, {"id": "694", "text": "hello world", "language": + "en"}, {"id": "695", "text": "hello world", "language": "en"}, {"id": "696", + "text": "hello world", "language": "en"}, {"id": "697", "text": "hello world", + "language": "en"}, {"id": "698", "text": "hello world", "language": "en"}, {"id": + "699", "text": "hello world", "language": "en"}, {"id": "700", "text": "hello + world", "language": "en"}, {"id": "701", "text": "hello world", "language": + "en"}, {"id": "702", "text": "hello world", "language": "en"}, {"id": "703", + "text": "hello world", "language": "en"}, {"id": "704", "text": "hello world", + "language": "en"}, {"id": "705", "text": "hello world", "language": "en"}, {"id": + "706", "text": "hello world", "language": "en"}, {"id": "707", "text": "hello + world", "language": "en"}, {"id": "708", "text": "hello world", "language": + "en"}, {"id": "709", "text": "hello world", "language": "en"}, {"id": "710", + "text": "hello world", "language": "en"}, {"id": "711", "text": "hello world", + "language": "en"}, {"id": "712", "text": "hello world", "language": "en"}, {"id": + "713", "text": "hello world", "language": "en"}, {"id": "714", "text": "hello + world", "language": "en"}, {"id": "715", "text": "hello world", "language": + "en"}, {"id": "716", "text": "hello world", "language": "en"}, {"id": "717", + "text": "hello world", "language": "en"}, {"id": "718", "text": "hello world", + "language": "en"}, {"id": "719", "text": "hello world", "language": "en"}, {"id": + "720", "text": "hello world", "language": "en"}, {"id": "721", "text": "hello + world", "language": "en"}, {"id": "722", "text": "hello world", "language": + "en"}, {"id": "723", "text": "hello world", "language": "en"}, {"id": "724", + "text": "hello world", "language": "en"}, {"id": "725", "text": "hello world", + "language": "en"}, {"id": "726", "text": "hello world", "language": "en"}, {"id": + "727", "text": "hello world", "language": "en"}, {"id": "728", "text": "hello + world", "language": "en"}, {"id": "729", "text": "hello world", "language": + "en"}, {"id": "730", "text": "hello world", "language": "en"}, {"id": "731", + "text": "hello world", "language": "en"}, {"id": "732", "text": "hello world", + "language": "en"}, {"id": "733", "text": "hello world", "language": "en"}, {"id": + "734", "text": "hello world", "language": "en"}, {"id": "735", "text": "hello + world", "language": "en"}, {"id": "736", "text": "hello world", "language": + "en"}, {"id": "737", "text": "hello world", "language": "en"}, {"id": "738", + "text": "hello world", "language": "en"}, {"id": "739", "text": "hello world", + "language": "en"}, {"id": "740", "text": "hello world", "language": "en"}, {"id": + "741", "text": "hello world", "language": "en"}, {"id": "742", "text": "hello + world", "language": "en"}, {"id": "743", "text": "hello world", "language": + "en"}, {"id": "744", "text": "hello world", "language": "en"}, {"id": "745", + "text": "hello world", "language": "en"}, {"id": "746", "text": "hello world", + "language": "en"}, {"id": "747", "text": "hello world", "language": "en"}, {"id": + "748", "text": "hello world", "language": "en"}, {"id": "749", "text": "hello + world", "language": "en"}, {"id": "750", "text": "hello world", "language": + "en"}, {"id": "751", "text": "hello world", "language": "en"}, {"id": "752", + "text": "hello world", "language": "en"}, {"id": "753", "text": "hello world", + "language": "en"}, {"id": "754", "text": "hello world", "language": "en"}, {"id": + "755", "text": "hello world", "language": "en"}, {"id": "756", "text": "hello + world", "language": "en"}, {"id": "757", "text": "hello world", "language": + "en"}, {"id": "758", "text": "hello world", "language": "en"}, {"id": "759", + "text": "hello world", "language": "en"}, {"id": "760", "text": "hello world", + "language": "en"}, {"id": "761", "text": "hello world", "language": "en"}, {"id": + "762", "text": "hello world", "language": "en"}, {"id": "763", "text": "hello + world", "language": "en"}, {"id": "764", "text": "hello world", "language": + "en"}, {"id": "765", "text": "hello world", "language": "en"}, {"id": "766", + "text": "hello world", "language": "en"}, {"id": "767", "text": "hello world", + "language": "en"}, {"id": "768", "text": "hello world", "language": "en"}, {"id": + "769", "text": "hello world", "language": "en"}, {"id": "770", "text": "hello + world", "language": "en"}, {"id": "771", "text": "hello world", "language": + "en"}, {"id": "772", "text": "hello world", "language": "en"}, {"id": "773", + "text": "hello world", "language": "en"}, {"id": "774", "text": "hello world", + "language": "en"}, {"id": "775", "text": "hello world", "language": "en"}, {"id": + "776", "text": "hello world", "language": "en"}, {"id": "777", "text": "hello + world", "language": "en"}, {"id": "778", "text": "hello world", "language": + "en"}, {"id": "779", "text": "hello world", "language": "en"}, {"id": "780", + "text": "hello world", "language": "en"}, {"id": "781", "text": "hello world", + "language": "en"}, {"id": "782", "text": "hello world", "language": "en"}, {"id": + "783", "text": "hello world", "language": "en"}, {"id": "784", "text": "hello + world", "language": "en"}, {"id": "785", "text": "hello world", "language": + "en"}, {"id": "786", "text": "hello world", "language": "en"}, {"id": "787", + "text": "hello world", "language": "en"}, {"id": "788", "text": "hello world", + "language": "en"}, {"id": "789", "text": "hello world", "language": "en"}, {"id": + "790", "text": "hello world", "language": "en"}, {"id": "791", "text": "hello + world", "language": "en"}, {"id": "792", "text": "hello world", "language": + "en"}, {"id": "793", "text": "hello world", "language": "en"}, {"id": "794", + "text": "hello world", "language": "en"}, {"id": "795", "text": "hello world", + "language": "en"}, {"id": "796", "text": "hello world", "language": "en"}, {"id": + "797", "text": "hello world", "language": "en"}, {"id": "798", "text": "hello + world", "language": "en"}, {"id": "799", "text": "hello world", "language": + "en"}, {"id": "800", "text": "hello world", "language": "en"}, {"id": "801", + "text": "hello world", "language": "en"}, {"id": "802", "text": "hello world", + "language": "en"}, {"id": "803", "text": "hello world", "language": "en"}, {"id": + "804", "text": "hello world", "language": "en"}, {"id": "805", "text": "hello + world", "language": "en"}, {"id": "806", "text": "hello world", "language": + "en"}, {"id": "807", "text": "hello world", "language": "en"}, {"id": "808", + "text": "hello world", "language": "en"}, {"id": "809", "text": "hello world", + "language": "en"}, {"id": "810", "text": "hello world", "language": "en"}, {"id": + "811", "text": "hello world", "language": "en"}, {"id": "812", "text": "hello + world", "language": "en"}, {"id": "813", "text": "hello world", "language": + "en"}, {"id": "814", "text": "hello world", "language": "en"}, {"id": "815", + "text": "hello world", "language": "en"}, {"id": "816", "text": "hello world", + "language": "en"}, {"id": "817", "text": "hello world", "language": "en"}, {"id": + "818", "text": "hello world", "language": "en"}, {"id": "819", "text": "hello + world", "language": "en"}, {"id": "820", "text": "hello world", "language": + "en"}, {"id": "821", "text": "hello world", "language": "en"}, {"id": "822", + "text": "hello world", "language": "en"}, {"id": "823", "text": "hello world", + "language": "en"}, {"id": "824", "text": "hello world", "language": "en"}, {"id": + "825", "text": "hello world", "language": "en"}, {"id": "826", "text": "hello + world", "language": "en"}, {"id": "827", "text": "hello world", "language": + "en"}, {"id": "828", "text": "hello world", "language": "en"}, {"id": "829", + "text": "hello world", "language": "en"}, {"id": "830", "text": "hello world", + "language": "en"}, {"id": "831", "text": "hello world", "language": "en"}, {"id": + "832", "text": "hello world", "language": "en"}, {"id": "833", "text": "hello + world", "language": "en"}, {"id": "834", "text": "hello world", "language": + "en"}, {"id": "835", "text": "hello world", "language": "en"}, {"id": "836", + "text": "hello world", "language": "en"}, {"id": "837", "text": "hello world", + "language": "en"}, {"id": "838", "text": "hello world", "language": "en"}, {"id": + "839", "text": "hello world", "language": "en"}, {"id": "840", "text": "hello + world", "language": "en"}, {"id": "841", "text": "hello world", "language": + "en"}, {"id": "842", "text": "hello world", "language": "en"}, {"id": "843", + "text": "hello world", "language": "en"}, {"id": "844", "text": "hello world", + "language": "en"}, {"id": "845", "text": "hello world", "language": "en"}, {"id": + "846", "text": "hello world", "language": "en"}, {"id": "847", "text": "hello + world", "language": "en"}, {"id": "848", "text": "hello world", "language": + "en"}, {"id": "849", "text": "hello world", "language": "en"}, {"id": "850", + "text": "hello world", "language": "en"}, {"id": "851", "text": "hello world", + "language": "en"}, {"id": "852", "text": "hello world", "language": "en"}, {"id": + "853", "text": "hello world", "language": "en"}, {"id": "854", "text": "hello + world", "language": "en"}, {"id": "855", "text": "hello world", "language": + "en"}, {"id": "856", "text": "hello world", "language": "en"}, {"id": "857", + "text": "hello world", "language": "en"}, {"id": "858", "text": "hello world", + "language": "en"}, {"id": "859", "text": "hello world", "language": "en"}, {"id": + "860", "text": "hello world", "language": "en"}, {"id": "861", "text": "hello + world", "language": "en"}, {"id": "862", "text": "hello world", "language": + "en"}, {"id": "863", "text": "hello world", "language": "en"}, {"id": "864", + "text": "hello world", "language": "en"}, {"id": "865", "text": "hello world", + "language": "en"}, {"id": "866", "text": "hello world", "language": "en"}, {"id": + "867", "text": "hello world", "language": "en"}, {"id": "868", "text": "hello + world", "language": "en"}, {"id": "869", "text": "hello world", "language": + "en"}, {"id": "870", "text": "hello world", "language": "en"}, {"id": "871", + "text": "hello world", "language": "en"}, {"id": "872", "text": "hello world", + "language": "en"}, {"id": "873", "text": "hello world", "language": "en"}, {"id": + "874", "text": "hello world", "language": "en"}, {"id": "875", "text": "hello + world", "language": "en"}, {"id": "876", "text": "hello world", "language": + "en"}, {"id": "877", "text": "hello world", "language": "en"}, {"id": "878", + "text": "hello world", "language": "en"}, {"id": "879", "text": "hello world", + "language": "en"}, {"id": "880", "text": "hello world", "language": "en"}, {"id": + "881", "text": "hello world", "language": "en"}, {"id": "882", "text": "hello + world", "language": "en"}, {"id": "883", "text": "hello world", "language": + "en"}, {"id": "884", "text": "hello world", "language": "en"}, {"id": "885", + "text": "hello world", "language": "en"}, {"id": "886", "text": "hello world", + "language": "en"}, {"id": "887", "text": "hello world", "language": "en"}, {"id": + "888", "text": "hello world", "language": "en"}, {"id": "889", "text": "hello + world", "language": "en"}, {"id": "890", "text": "hello world", "language": + "en"}, {"id": "891", "text": "hello world", "language": "en"}, {"id": "892", + "text": "hello world", "language": "en"}, {"id": "893", "text": "hello world", + "language": "en"}, {"id": "894", "text": "hello world", "language": "en"}, {"id": + "895", "text": "hello world", "language": "en"}, {"id": "896", "text": "hello + world", "language": "en"}, {"id": "897", "text": "hello world", "language": + "en"}, {"id": "898", "text": "hello world", "language": "en"}, {"id": "899", + "text": "hello world", "language": "en"}, {"id": "900", "text": "hello world", + "language": "en"}, {"id": "901", "text": "hello world", "language": "en"}, {"id": + "902", "text": "hello world", "language": "en"}, {"id": "903", "text": "hello + world", "language": "en"}, {"id": "904", "text": "hello world", "language": + "en"}, {"id": "905", "text": "hello world", "language": "en"}, {"id": "906", + "text": "hello world", "language": "en"}, {"id": "907", "text": "hello world", + "language": "en"}, {"id": "908", "text": "hello world", "language": "en"}, {"id": + "909", "text": "hello world", "language": "en"}, {"id": "910", "text": "hello + world", "language": "en"}, {"id": "911", "text": "hello world", "language": + "en"}, {"id": "912", "text": "hello world", "language": "en"}, {"id": "913", + "text": "hello world", "language": "en"}, {"id": "914", "text": "hello world", + "language": "en"}, {"id": "915", "text": "hello world", "language": "en"}, {"id": + "916", "text": "hello world", "language": "en"}, {"id": "917", "text": "hello + world", "language": "en"}, {"id": "918", "text": "hello world", "language": + "en"}, {"id": "919", "text": "hello world", "language": "en"}, {"id": "920", + "text": "hello world", "language": "en"}, {"id": "921", "text": "hello world", + "language": "en"}, {"id": "922", "text": "hello world", "language": "en"}, {"id": + "923", "text": "hello world", "language": "en"}, {"id": "924", "text": "hello + world", "language": "en"}, {"id": "925", "text": "hello world", "language": + "en"}, {"id": "926", "text": "hello world", "language": "en"}, {"id": "927", + "text": "hello world", "language": "en"}, {"id": "928", "text": "hello world", + "language": "en"}, {"id": "929", "text": "hello world", "language": "en"}, {"id": + "930", "text": "hello world", "language": "en"}, {"id": "931", "text": "hello + world", "language": "en"}, {"id": "932", "text": "hello world", "language": + "en"}, {"id": "933", "text": "hello world", "language": "en"}, {"id": "934", + "text": "hello world", "language": "en"}, {"id": "935", "text": "hello world", + "language": "en"}, {"id": "936", "text": "hello world", "language": "en"}, {"id": + "937", "text": "hello world", "language": "en"}, {"id": "938", "text": "hello + world", "language": "en"}, {"id": "939", "text": "hello world", "language": + "en"}, {"id": "940", "text": "hello world", "language": "en"}, {"id": "941", + "text": "hello world", "language": "en"}, {"id": "942", "text": "hello world", + "language": "en"}, {"id": "943", "text": "hello world", "language": "en"}, {"id": + "944", "text": "hello world", "language": "en"}, {"id": "945", "text": "hello + world", "language": "en"}, {"id": "946", "text": "hello world", "language": + "en"}, {"id": "947", "text": "hello world", "language": "en"}, {"id": "948", + "text": "hello world", "language": "en"}, {"id": "949", "text": "hello world", + "language": "en"}, {"id": "950", "text": "hello world", "language": "en"}, {"id": + "951", "text": "hello world", "language": "en"}, {"id": "952", "text": "hello + world", "language": "en"}, {"id": "953", "text": "hello world", "language": + "en"}, {"id": "954", "text": "hello world", "language": "en"}, {"id": "955", + "text": "hello world", "language": "en"}, {"id": "956", "text": "hello world", + "language": "en"}, {"id": "957", "text": "hello world", "language": "en"}, {"id": + "958", "text": "hello world", "language": "en"}, {"id": "959", "text": "hello + world", "language": "en"}, {"id": "960", "text": "hello world", "language": + "en"}, {"id": "961", "text": "hello world", "language": "en"}, {"id": "962", + "text": "hello world", "language": "en"}, {"id": "963", "text": "hello world", + "language": "en"}, {"id": "964", "text": "hello world", "language": "en"}, {"id": + "965", "text": "hello world", "language": "en"}, {"id": "966", "text": "hello + world", "language": "en"}, {"id": "967", "text": "hello world", "language": + "en"}, {"id": "968", "text": "hello world", "language": "en"}, {"id": "969", + "text": "hello world", "language": "en"}, {"id": "970", "text": "hello world", + "language": "en"}, {"id": "971", "text": "hello world", "language": "en"}, {"id": + "972", "text": "hello world", "language": "en"}, {"id": "973", "text": "hello + world", "language": "en"}, {"id": "974", "text": "hello world", "language": + "en"}, {"id": "975", "text": "hello world", "language": "en"}, {"id": "976", + "text": "hello world", "language": "en"}, {"id": "977", "text": "hello world", + "language": "en"}, {"id": "978", "text": "hello world", "language": "en"}, {"id": + "979", "text": "hello world", "language": "en"}, {"id": "980", "text": "hello + world", "language": "en"}, {"id": "981", "text": "hello world", "language": + "en"}, {"id": "982", "text": "hello world", "language": "en"}, {"id": "983", + "text": "hello world", "language": "en"}, {"id": "984", "text": "hello world", + "language": "en"}, {"id": "985", "text": "hello world", "language": "en"}, {"id": + "986", "text": "hello world", "language": "en"}, {"id": "987", "text": "hello + world", "language": "en"}, {"id": "988", "text": "hello world", "language": + "en"}, {"id": "989", "text": "hello world", "language": "en"}, {"id": "990", + "text": "hello world", "language": "en"}, {"id": "991", "text": "hello world", + "language": "en"}, {"id": "992", "text": "hello world", "language": "en"}, {"id": + "993", "text": "hello world", "language": "en"}, {"id": "994", "text": "hello + world", "language": "en"}, {"id": "995", "text": "hello world", "language": + "en"}, {"id": "996", "text": "hello world", "language": "en"}, {"id": "997", + "text": "hello world", "language": "en"}, {"id": "998", "text": "hello world", + "language": "en"}, {"id": "999", "text": "hello world", "language": "en"}, {"id": + "1000", "text": "hello world", "language": "en"}, {"id": "1001", "text": "hello + world", "language": "en"}, {"id": "1002", "text": "hello world", "language": + "en"}, {"id": "1003", "text": "hello world", "language": "en"}, {"id": "1004", + "text": "hello world", "language": "en"}, {"id": "1005", "text": "hello world", + "language": "en"}, {"id": "1006", "text": "hello world", "language": "en"}, + {"id": "1007", "text": "hello world", "language": "en"}, {"id": "1008", "text": + "hello world", "language": "en"}, {"id": "1009", "text": "hello world", "language": + "en"}, {"id": "1010", "text": "hello world", "language": "en"}, {"id": "1011", + "text": "hello world", "language": "en"}, {"id": "1012", "text": "hello world", + "language": "en"}, {"id": "1013", "text": "hello world", "language": "en"}, + {"id": "1014", "text": "hello world", "language": "en"}, {"id": "1015", "text": + "hello world", "language": "en"}, {"id": "1016", "text": "hello world", "language": + "en"}, {"id": "1017", "text": "hello world", "language": "en"}, {"id": "1018", + "text": "hello world", "language": "en"}, {"id": "1019", "text": "hello world", + "language": "en"}, {"id": "1020", "text": "hello world", "language": "en"}, + {"id": "1021", "text": "hello world", "language": "en"}, {"id": "1022", "text": + "hello world", "language": "en"}, {"id": "1023", "text": "hello world", "language": + "en"}, {"id": "1024", "text": "hello world", "language": "en"}, {"id": "1025", + "text": "hello world", "language": "en"}, {"id": "1026", "text": "hello world", + "language": "en"}, {"id": "1027", "text": "hello world", "language": "en"}, + {"id": "1028", "text": "hello world", "language": "en"}, {"id": "1029", "text": + "hello world", "language": "en"}, {"id": "1030", "text": "hello world", "language": + "en"}, {"id": "1031", "text": "hello world", "language": "en"}, {"id": "1032", + "text": "hello world", "language": "en"}, {"id": "1033", "text": "hello world", + "language": "en"}, {"id": "1034", "text": "hello world", "language": "en"}, + {"id": "1035", "text": "hello world", "language": "en"}, {"id": "1036", "text": + "hello world", "language": "en"}, {"id": "1037", "text": "hello world", "language": + "en"}, {"id": "1038", "text": "hello world", "language": "en"}, {"id": "1039", + "text": "hello world", "language": "en"}, {"id": "1040", "text": "hello world", + "language": "en"}, {"id": "1041", "text": "hello world", "language": "en"}, + {"id": "1042", "text": "hello world", "language": "en"}, {"id": "1043", "text": + "hello world", "language": "en"}, {"id": "1044", "text": "hello world", "language": + "en"}, {"id": "1045", "text": "hello world", "language": "en"}, {"id": "1046", + "text": "hello world", "language": "en"}, {"id": "1047", "text": "hello world", + "language": "en"}, {"id": "1048", "text": "hello world", "language": "en"}, + {"id": "1049", "text": "hello world", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '58755' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch + request contains too many records. Max 1000 records are permitted."}}}' + headers: + apim-request-id: + - e5020bb3-4385-4907-a1b3-61723f79cc79 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:44 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '12' + status: + code: 400 + message: Bad Request +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_batch_size_over_limit_error.yaml new file mode 100644 index 000000000000..6df091febc9b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_batch_size_over_limit_error.yaml @@ -0,0 +1,751 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "hello world", "language": "en"}, {"id": + "1", "text": "hello world", "language": "en"}, {"id": "2", "text": "hello world", + "language": "en"}, {"id": "3", "text": "hello world", "language": "en"}, {"id": + "4", "text": "hello world", "language": "en"}, {"id": "5", "text": "hello world", + "language": "en"}, {"id": "6", "text": "hello world", "language": "en"}, {"id": + "7", "text": "hello world", "language": "en"}, {"id": "8", "text": "hello world", + "language": "en"}, {"id": "9", "text": "hello world", "language": "en"}, {"id": + "10", "text": "hello world", "language": "en"}, {"id": "11", "text": "hello + world", "language": "en"}, {"id": "12", "text": "hello world", "language": "en"}, + {"id": "13", "text": "hello world", "language": "en"}, {"id": "14", "text": + "hello world", "language": "en"}, {"id": "15", "text": "hello world", "language": + "en"}, {"id": "16", "text": "hello world", "language": "en"}, {"id": "17", "text": + "hello world", "language": "en"}, {"id": "18", "text": "hello world", "language": + "en"}, {"id": "19", "text": "hello world", "language": "en"}, {"id": "20", "text": + "hello world", "language": "en"}, {"id": "21", "text": "hello world", "language": + "en"}, {"id": "22", "text": "hello world", "language": "en"}, {"id": "23", "text": + "hello world", "language": "en"}, {"id": "24", "text": "hello world", "language": + "en"}, {"id": "25", "text": "hello world", "language": "en"}, {"id": "26", "text": + "hello world", "language": "en"}, {"id": "27", "text": "hello world", "language": + "en"}, {"id": "28", "text": "hello world", "language": "en"}, {"id": "29", "text": + "hello world", "language": "en"}, {"id": "30", "text": "hello world", "language": + "en"}, {"id": "31", "text": "hello world", "language": "en"}, {"id": "32", "text": + "hello world", "language": "en"}, {"id": "33", "text": "hello world", "language": + "en"}, {"id": "34", "text": "hello world", "language": "en"}, {"id": "35", "text": + "hello world", "language": "en"}, {"id": "36", "text": "hello world", "language": + "en"}, {"id": "37", "text": "hello world", "language": "en"}, {"id": "38", "text": + "hello world", "language": "en"}, {"id": "39", "text": "hello world", "language": + "en"}, {"id": "40", "text": "hello world", "language": "en"}, {"id": "41", "text": + "hello world", "language": "en"}, {"id": "42", "text": "hello world", "language": + "en"}, {"id": "43", "text": "hello world", "language": "en"}, {"id": "44", "text": + "hello world", "language": "en"}, {"id": "45", "text": "hello world", "language": + "en"}, {"id": "46", "text": "hello world", "language": "en"}, {"id": "47", "text": + "hello world", "language": "en"}, {"id": "48", "text": "hello world", "language": + "en"}, {"id": "49", "text": "hello world", "language": "en"}, {"id": "50", "text": + "hello world", "language": "en"}, {"id": "51", "text": "hello world", "language": + "en"}, {"id": "52", "text": "hello world", "language": "en"}, {"id": "53", "text": + "hello world", "language": "en"}, {"id": "54", "text": "hello world", "language": + "en"}, {"id": "55", "text": "hello world", "language": "en"}, {"id": "56", "text": + "hello world", "language": "en"}, {"id": "57", "text": "hello world", "language": + "en"}, {"id": "58", "text": "hello world", "language": "en"}, {"id": "59", "text": + "hello world", "language": "en"}, {"id": "60", "text": "hello world", "language": + "en"}, {"id": "61", "text": "hello world", "language": "en"}, {"id": "62", "text": + "hello world", "language": "en"}, {"id": "63", "text": "hello world", "language": + "en"}, {"id": "64", "text": "hello world", "language": "en"}, {"id": "65", "text": + "hello world", "language": "en"}, {"id": "66", "text": "hello world", "language": + "en"}, {"id": "67", "text": "hello world", "language": "en"}, {"id": "68", "text": + "hello world", "language": "en"}, {"id": "69", "text": "hello world", "language": + "en"}, {"id": "70", "text": "hello world", "language": "en"}, {"id": "71", "text": + "hello world", "language": "en"}, {"id": "72", "text": "hello world", "language": + "en"}, {"id": "73", "text": "hello world", "language": "en"}, {"id": "74", "text": + "hello world", "language": "en"}, {"id": "75", "text": "hello world", "language": + "en"}, {"id": "76", "text": "hello world", "language": "en"}, {"id": "77", "text": + "hello world", "language": "en"}, {"id": "78", "text": "hello world", "language": + "en"}, {"id": "79", "text": "hello world", "language": "en"}, {"id": "80", "text": + "hello world", "language": "en"}, {"id": "81", "text": "hello world", "language": + "en"}, {"id": "82", "text": "hello world", "language": "en"}, {"id": "83", "text": + "hello world", "language": "en"}, {"id": "84", "text": "hello world", "language": + "en"}, {"id": "85", "text": "hello world", "language": "en"}, {"id": "86", "text": + "hello world", "language": "en"}, {"id": "87", "text": "hello world", "language": + "en"}, {"id": "88", "text": "hello world", "language": "en"}, {"id": "89", "text": + "hello world", "language": "en"}, {"id": "90", "text": "hello world", "language": + "en"}, {"id": "91", "text": "hello world", "language": "en"}, {"id": "92", "text": + "hello world", "language": "en"}, {"id": "93", "text": "hello world", "language": + "en"}, {"id": "94", "text": "hello world", "language": "en"}, {"id": "95", "text": + "hello world", "language": "en"}, {"id": "96", "text": "hello world", "language": + "en"}, {"id": "97", "text": "hello world", "language": "en"}, {"id": "98", "text": + "hello world", "language": "en"}, {"id": "99", "text": "hello world", "language": + "en"}, {"id": "100", "text": "hello world", "language": "en"}, {"id": "101", + "text": "hello world", "language": "en"}, {"id": "102", "text": "hello world", + "language": "en"}, {"id": "103", "text": "hello world", "language": "en"}, {"id": + "104", "text": "hello world", "language": "en"}, {"id": "105", "text": "hello + world", "language": "en"}, {"id": "106", "text": "hello world", "language": + "en"}, {"id": "107", "text": "hello world", "language": "en"}, {"id": "108", + "text": "hello world", "language": "en"}, {"id": "109", "text": "hello world", + "language": "en"}, {"id": "110", "text": "hello world", "language": "en"}, {"id": + "111", "text": "hello world", "language": "en"}, {"id": "112", "text": "hello + world", "language": "en"}, {"id": "113", "text": "hello world", "language": + "en"}, {"id": "114", "text": "hello world", "language": "en"}, {"id": "115", + "text": "hello world", "language": "en"}, {"id": "116", "text": "hello world", + "language": "en"}, {"id": "117", "text": "hello world", "language": "en"}, {"id": + "118", "text": "hello world", "language": "en"}, {"id": "119", "text": "hello + world", "language": "en"}, {"id": "120", "text": "hello world", "language": + "en"}, {"id": "121", "text": "hello world", "language": "en"}, {"id": "122", + "text": "hello world", "language": "en"}, {"id": "123", "text": "hello world", + "language": "en"}, {"id": "124", "text": "hello world", "language": "en"}, {"id": + "125", "text": "hello world", "language": "en"}, {"id": "126", "text": "hello + world", "language": "en"}, {"id": "127", "text": "hello world", "language": + "en"}, {"id": "128", "text": "hello world", "language": "en"}, {"id": "129", + "text": "hello world", "language": "en"}, {"id": "130", "text": "hello world", + "language": "en"}, {"id": "131", "text": "hello world", "language": "en"}, {"id": + "132", "text": "hello world", "language": "en"}, {"id": "133", "text": "hello + world", "language": "en"}, {"id": "134", "text": "hello world", "language": + "en"}, {"id": "135", "text": "hello world", "language": "en"}, {"id": "136", + "text": "hello world", "language": "en"}, {"id": "137", "text": "hello world", + "language": "en"}, {"id": "138", "text": "hello world", "language": "en"}, {"id": + "139", "text": "hello world", "language": "en"}, {"id": "140", "text": "hello + world", "language": "en"}, {"id": "141", "text": "hello world", "language": + "en"}, {"id": "142", "text": "hello world", "language": "en"}, {"id": "143", + "text": "hello world", "language": "en"}, {"id": "144", "text": "hello world", + "language": "en"}, {"id": "145", "text": "hello world", "language": "en"}, {"id": + "146", "text": "hello world", "language": "en"}, {"id": "147", "text": "hello + world", "language": "en"}, {"id": "148", "text": "hello world", "language": + "en"}, {"id": "149", "text": "hello world", "language": "en"}, {"id": "150", + "text": "hello world", "language": "en"}, {"id": "151", "text": "hello world", + "language": "en"}, {"id": "152", "text": "hello world", "language": "en"}, {"id": + "153", "text": "hello world", "language": "en"}, {"id": "154", "text": "hello + world", "language": "en"}, {"id": "155", "text": "hello world", "language": + "en"}, {"id": "156", "text": "hello world", "language": "en"}, {"id": "157", + "text": "hello world", "language": "en"}, {"id": "158", "text": "hello world", + "language": "en"}, {"id": "159", "text": "hello world", "language": "en"}, {"id": + "160", "text": "hello world", "language": "en"}, {"id": "161", "text": "hello + world", "language": "en"}, {"id": "162", "text": "hello world", "language": + "en"}, {"id": "163", "text": "hello world", "language": "en"}, {"id": "164", + "text": "hello world", "language": "en"}, {"id": "165", "text": "hello world", + "language": "en"}, {"id": "166", "text": "hello world", "language": "en"}, {"id": + "167", "text": "hello world", "language": "en"}, {"id": "168", "text": "hello + world", "language": "en"}, {"id": "169", "text": "hello world", "language": + "en"}, {"id": "170", "text": "hello world", "language": "en"}, {"id": "171", + "text": "hello world", "language": "en"}, {"id": "172", "text": "hello world", + "language": "en"}, {"id": "173", "text": "hello world", "language": "en"}, {"id": + "174", "text": "hello world", "language": "en"}, {"id": "175", "text": "hello + world", "language": "en"}, {"id": "176", "text": "hello world", "language": + "en"}, {"id": "177", "text": "hello world", "language": "en"}, {"id": "178", + "text": "hello world", "language": "en"}, {"id": "179", "text": "hello world", + "language": "en"}, {"id": "180", "text": "hello world", "language": "en"}, {"id": + "181", "text": "hello world", "language": "en"}, {"id": "182", "text": "hello + world", "language": "en"}, {"id": "183", "text": "hello world", "language": + "en"}, {"id": "184", "text": "hello world", "language": "en"}, {"id": "185", + "text": "hello world", "language": "en"}, {"id": "186", "text": "hello world", + "language": "en"}, {"id": "187", "text": "hello world", "language": "en"}, {"id": + "188", "text": "hello world", "language": "en"}, {"id": "189", "text": "hello + world", "language": "en"}, {"id": "190", "text": "hello world", "language": + "en"}, {"id": "191", "text": "hello world", "language": "en"}, {"id": "192", + "text": "hello world", "language": "en"}, {"id": "193", "text": "hello world", + "language": "en"}, {"id": "194", "text": "hello world", "language": "en"}, {"id": + "195", "text": "hello world", "language": "en"}, {"id": "196", "text": "hello + world", "language": "en"}, {"id": "197", "text": "hello world", "language": + "en"}, {"id": "198", "text": "hello world", "language": "en"}, {"id": "199", + "text": "hello world", "language": "en"}, {"id": "200", "text": "hello world", + "language": "en"}, {"id": "201", "text": "hello world", "language": "en"}, {"id": + "202", "text": "hello world", "language": "en"}, {"id": "203", "text": "hello + world", "language": "en"}, {"id": "204", "text": "hello world", "language": + "en"}, {"id": "205", "text": "hello world", "language": "en"}, {"id": "206", + "text": "hello world", "language": "en"}, {"id": "207", "text": "hello world", + "language": "en"}, {"id": "208", "text": "hello world", "language": "en"}, {"id": + "209", "text": "hello world", "language": "en"}, {"id": "210", "text": "hello + world", "language": "en"}, {"id": "211", "text": "hello world", "language": + "en"}, {"id": "212", "text": "hello world", "language": "en"}, {"id": "213", + "text": "hello world", "language": "en"}, {"id": "214", "text": "hello world", + "language": "en"}, {"id": "215", "text": "hello world", "language": "en"}, {"id": + "216", "text": "hello world", "language": "en"}, {"id": "217", "text": "hello + world", "language": "en"}, {"id": "218", "text": "hello world", "language": + "en"}, {"id": "219", "text": "hello world", "language": "en"}, {"id": "220", + "text": "hello world", "language": "en"}, {"id": "221", "text": "hello world", + "language": "en"}, {"id": "222", "text": "hello world", "language": "en"}, {"id": + "223", "text": "hello world", "language": "en"}, {"id": "224", "text": "hello + world", "language": "en"}, {"id": "225", "text": "hello world", "language": + "en"}, {"id": "226", "text": "hello world", "language": "en"}, {"id": "227", + "text": "hello world", "language": "en"}, {"id": "228", "text": "hello world", + "language": "en"}, {"id": "229", "text": "hello world", "language": "en"}, {"id": + "230", "text": "hello world", "language": "en"}, {"id": "231", "text": "hello + world", "language": "en"}, {"id": "232", "text": "hello world", "language": + "en"}, {"id": "233", "text": "hello world", "language": "en"}, {"id": "234", + "text": "hello world", "language": "en"}, {"id": "235", "text": "hello world", + "language": "en"}, {"id": "236", "text": "hello world", "language": "en"}, {"id": + "237", "text": "hello world", "language": "en"}, {"id": "238", "text": "hello + world", "language": "en"}, {"id": "239", "text": "hello world", "language": + "en"}, {"id": "240", "text": "hello world", "language": "en"}, {"id": "241", + "text": "hello world", "language": "en"}, {"id": "242", "text": "hello world", + "language": "en"}, {"id": "243", "text": "hello world", "language": "en"}, {"id": + "244", "text": "hello world", "language": "en"}, {"id": "245", "text": "hello + world", "language": "en"}, {"id": "246", "text": "hello world", "language": + "en"}, {"id": "247", "text": "hello world", "language": "en"}, {"id": "248", + "text": "hello world", "language": "en"}, {"id": "249", "text": "hello world", + "language": "en"}, {"id": "250", "text": "hello world", "language": "en"}, {"id": + "251", "text": "hello world", "language": "en"}, {"id": "252", "text": "hello + world", "language": "en"}, {"id": "253", "text": "hello world", "language": + "en"}, {"id": "254", "text": "hello world", "language": "en"}, {"id": "255", + "text": "hello world", "language": "en"}, {"id": "256", "text": "hello world", + "language": "en"}, {"id": "257", "text": "hello world", "language": "en"}, {"id": + "258", "text": "hello world", "language": "en"}, {"id": "259", "text": "hello + world", "language": "en"}, {"id": "260", "text": "hello world", "language": + "en"}, {"id": "261", "text": "hello world", "language": "en"}, {"id": "262", + "text": "hello world", "language": "en"}, {"id": "263", "text": "hello world", + "language": "en"}, {"id": "264", "text": "hello world", "language": "en"}, {"id": + "265", "text": "hello world", "language": "en"}, {"id": "266", "text": "hello + world", "language": "en"}, {"id": "267", "text": "hello world", "language": + "en"}, {"id": "268", "text": "hello world", "language": "en"}, {"id": "269", + "text": "hello world", "language": "en"}, {"id": "270", "text": "hello world", + "language": "en"}, {"id": "271", "text": "hello world", "language": "en"}, {"id": + "272", "text": "hello world", "language": "en"}, {"id": "273", "text": "hello + world", "language": "en"}, {"id": "274", "text": "hello world", "language": + "en"}, {"id": "275", "text": "hello world", "language": "en"}, {"id": "276", + "text": "hello world", "language": "en"}, {"id": "277", "text": "hello world", + "language": "en"}, {"id": "278", "text": "hello world", "language": "en"}, {"id": + "279", "text": "hello world", "language": "en"}, {"id": "280", "text": "hello + world", "language": "en"}, {"id": "281", "text": "hello world", "language": + "en"}, {"id": "282", "text": "hello world", "language": "en"}, {"id": "283", + "text": "hello world", "language": "en"}, {"id": "284", "text": "hello world", + "language": "en"}, {"id": "285", "text": "hello world", "language": "en"}, {"id": + "286", "text": "hello world", "language": "en"}, {"id": "287", "text": "hello + world", "language": "en"}, {"id": "288", "text": "hello world", "language": + "en"}, {"id": "289", "text": "hello world", "language": "en"}, {"id": "290", + "text": "hello world", "language": "en"}, {"id": "291", "text": "hello world", + "language": "en"}, {"id": "292", "text": "hello world", "language": "en"}, {"id": + "293", "text": "hello world", "language": "en"}, {"id": "294", "text": "hello + world", "language": "en"}, {"id": "295", "text": "hello world", "language": + "en"}, {"id": "296", "text": "hello world", "language": "en"}, {"id": "297", + "text": "hello world", "language": "en"}, {"id": "298", "text": "hello world", + "language": "en"}, {"id": "299", "text": "hello world", "language": "en"}, {"id": + "300", "text": "hello world", "language": "en"}, {"id": "301", "text": "hello + world", "language": "en"}, {"id": "302", "text": "hello world", "language": + "en"}, {"id": "303", "text": "hello world", "language": "en"}, {"id": "304", + "text": "hello world", "language": "en"}, {"id": "305", "text": "hello world", + "language": "en"}, {"id": "306", "text": "hello world", "language": "en"}, {"id": + "307", "text": "hello world", "language": "en"}, {"id": "308", "text": "hello + world", "language": "en"}, {"id": "309", "text": "hello world", "language": + "en"}, {"id": "310", "text": "hello world", "language": "en"}, {"id": "311", + "text": "hello world", "language": "en"}, {"id": "312", "text": "hello world", + "language": "en"}, {"id": "313", "text": "hello world", "language": "en"}, {"id": + "314", "text": "hello world", "language": "en"}, {"id": "315", "text": "hello + world", "language": "en"}, {"id": "316", "text": "hello world", "language": + "en"}, {"id": "317", "text": "hello world", "language": "en"}, {"id": "318", + "text": "hello world", "language": "en"}, {"id": "319", "text": "hello world", + "language": "en"}, {"id": "320", "text": "hello world", "language": "en"}, {"id": + "321", "text": "hello world", "language": "en"}, {"id": "322", "text": "hello + world", "language": "en"}, {"id": "323", "text": "hello world", "language": + "en"}, {"id": "324", "text": "hello world", "language": "en"}, {"id": "325", + "text": "hello world", "language": "en"}, {"id": "326", "text": "hello world", + "language": "en"}, {"id": "327", "text": "hello world", "language": "en"}, {"id": + "328", "text": "hello world", "language": "en"}, {"id": "329", "text": "hello + world", "language": "en"}, {"id": "330", "text": "hello world", "language": + "en"}, {"id": "331", "text": "hello world", "language": "en"}, {"id": "332", + "text": "hello world", "language": "en"}, {"id": "333", "text": "hello world", + "language": "en"}, {"id": "334", "text": "hello world", "language": "en"}, {"id": + "335", "text": "hello world", "language": "en"}, {"id": "336", "text": "hello + world", "language": "en"}, {"id": "337", "text": "hello world", "language": + "en"}, {"id": "338", "text": "hello world", "language": "en"}, {"id": "339", + "text": "hello world", "language": "en"}, {"id": "340", "text": "hello world", + "language": "en"}, {"id": "341", "text": "hello world", "language": "en"}, {"id": + "342", "text": "hello world", "language": "en"}, {"id": "343", "text": "hello + world", "language": "en"}, {"id": "344", "text": "hello world", "language": + "en"}, {"id": "345", "text": "hello world", "language": "en"}, {"id": "346", + "text": "hello world", "language": "en"}, {"id": "347", "text": "hello world", + "language": "en"}, {"id": "348", "text": "hello world", "language": "en"}, {"id": + "349", "text": "hello world", "language": "en"}, {"id": "350", "text": "hello + world", "language": "en"}, {"id": "351", "text": "hello world", "language": + "en"}, {"id": "352", "text": "hello world", "language": "en"}, {"id": "353", + "text": "hello world", "language": "en"}, {"id": "354", "text": "hello world", + "language": "en"}, {"id": "355", "text": "hello world", "language": "en"}, {"id": + "356", "text": "hello world", "language": "en"}, {"id": "357", "text": "hello + world", "language": "en"}, {"id": "358", "text": "hello world", "language": + "en"}, {"id": "359", "text": "hello world", "language": "en"}, {"id": "360", + "text": "hello world", "language": "en"}, {"id": "361", "text": "hello world", + "language": "en"}, {"id": "362", "text": "hello world", "language": "en"}, {"id": + "363", "text": "hello world", "language": "en"}, {"id": "364", "text": "hello + world", "language": "en"}, {"id": "365", "text": "hello world", "language": + "en"}, {"id": "366", "text": "hello world", "language": "en"}, {"id": "367", + "text": "hello world", "language": "en"}, {"id": "368", "text": "hello world", + "language": "en"}, {"id": "369", "text": "hello world", "language": "en"}, {"id": + "370", "text": "hello world", "language": "en"}, {"id": "371", "text": "hello + world", "language": "en"}, {"id": "372", "text": "hello world", "language": + "en"}, {"id": "373", "text": "hello world", "language": "en"}, {"id": "374", + "text": "hello world", "language": "en"}, {"id": "375", "text": "hello world", + "language": "en"}, {"id": "376", "text": "hello world", "language": "en"}, {"id": + "377", "text": "hello world", "language": "en"}, {"id": "378", "text": "hello + world", "language": "en"}, {"id": "379", "text": "hello world", "language": + "en"}, {"id": "380", "text": "hello world", "language": "en"}, {"id": "381", + "text": "hello world", "language": "en"}, {"id": "382", "text": "hello world", + "language": "en"}, {"id": "383", "text": "hello world", "language": "en"}, {"id": + "384", "text": "hello world", "language": "en"}, {"id": "385", "text": "hello + world", "language": "en"}, {"id": "386", "text": "hello world", "language": + "en"}, {"id": "387", "text": "hello world", "language": "en"}, {"id": "388", + "text": "hello world", "language": "en"}, {"id": "389", "text": "hello world", + "language": "en"}, {"id": "390", "text": "hello world", "language": "en"}, {"id": + "391", "text": "hello world", "language": "en"}, {"id": "392", "text": "hello + world", "language": "en"}, {"id": "393", "text": "hello world", "language": + "en"}, {"id": "394", "text": "hello world", "language": "en"}, {"id": "395", + "text": "hello world", "language": "en"}, {"id": "396", "text": "hello world", + "language": "en"}, {"id": "397", "text": "hello world", "language": "en"}, {"id": + "398", "text": "hello world", "language": "en"}, {"id": "399", "text": "hello + world", "language": "en"}, {"id": "400", "text": "hello world", "language": + "en"}, {"id": "401", "text": "hello world", "language": "en"}, {"id": "402", + "text": "hello world", "language": "en"}, {"id": "403", "text": "hello world", + "language": "en"}, {"id": "404", "text": "hello world", "language": "en"}, {"id": + "405", "text": "hello world", "language": "en"}, {"id": "406", "text": "hello + world", "language": "en"}, {"id": "407", "text": "hello world", "language": + "en"}, {"id": "408", "text": "hello world", "language": "en"}, {"id": "409", + "text": "hello world", "language": "en"}, {"id": "410", "text": "hello world", + "language": "en"}, {"id": "411", "text": "hello world", "language": "en"}, {"id": + "412", "text": "hello world", "language": "en"}, {"id": "413", "text": "hello + world", "language": "en"}, {"id": "414", "text": "hello world", "language": + "en"}, {"id": "415", "text": "hello world", "language": "en"}, {"id": "416", + "text": "hello world", "language": "en"}, {"id": "417", "text": "hello world", + "language": "en"}, {"id": "418", "text": "hello world", "language": "en"}, {"id": + "419", "text": "hello world", "language": "en"}, {"id": "420", "text": "hello + world", "language": "en"}, {"id": "421", "text": "hello world", "language": + "en"}, {"id": "422", "text": "hello world", "language": "en"}, {"id": "423", + "text": "hello world", "language": "en"}, {"id": "424", "text": "hello world", + "language": "en"}, {"id": "425", "text": "hello world", "language": "en"}, {"id": + "426", "text": "hello world", "language": "en"}, {"id": "427", "text": "hello + world", "language": "en"}, {"id": "428", "text": "hello world", "language": + "en"}, {"id": "429", "text": "hello world", "language": "en"}, {"id": "430", + "text": "hello world", "language": "en"}, {"id": "431", "text": "hello world", + "language": "en"}, {"id": "432", "text": "hello world", "language": "en"}, {"id": + "433", "text": "hello world", "language": "en"}, {"id": "434", "text": "hello + world", "language": "en"}, {"id": "435", "text": "hello world", "language": + "en"}, {"id": "436", "text": "hello world", "language": "en"}, {"id": "437", + "text": "hello world", "language": "en"}, {"id": "438", "text": "hello world", + "language": "en"}, {"id": "439", "text": "hello world", "language": "en"}, {"id": + "440", "text": "hello world", "language": "en"}, {"id": "441", "text": "hello + world", "language": "en"}, {"id": "442", "text": "hello world", "language": + "en"}, {"id": "443", "text": "hello world", "language": "en"}, {"id": "444", + "text": "hello world", "language": "en"}, {"id": "445", "text": "hello world", + "language": "en"}, {"id": "446", "text": "hello world", "language": "en"}, {"id": + "447", "text": "hello world", "language": "en"}, {"id": "448", "text": "hello + world", "language": "en"}, {"id": "449", "text": "hello world", "language": + "en"}, {"id": "450", "text": "hello world", "language": "en"}, {"id": "451", + "text": "hello world", "language": "en"}, {"id": "452", "text": "hello world", + "language": "en"}, {"id": "453", "text": "hello world", "language": "en"}, {"id": + "454", "text": "hello world", "language": "en"}, {"id": "455", "text": "hello + world", "language": "en"}, {"id": "456", "text": "hello world", "language": + "en"}, {"id": "457", "text": "hello world", "language": "en"}, {"id": "458", + "text": "hello world", "language": "en"}, {"id": "459", "text": "hello world", + "language": "en"}, {"id": "460", "text": "hello world", "language": "en"}, {"id": + "461", "text": "hello world", "language": "en"}, {"id": "462", "text": "hello + world", "language": "en"}, {"id": "463", "text": "hello world", "language": + "en"}, {"id": "464", "text": "hello world", "language": "en"}, {"id": "465", + "text": "hello world", "language": "en"}, {"id": "466", "text": "hello world", + "language": "en"}, {"id": "467", "text": "hello world", "language": "en"}, {"id": + "468", "text": "hello world", "language": "en"}, {"id": "469", "text": "hello + world", "language": "en"}, {"id": "470", "text": "hello world", "language": + "en"}, {"id": "471", "text": "hello world", "language": "en"}, {"id": "472", + "text": "hello world", "language": "en"}, {"id": "473", "text": "hello world", + "language": "en"}, {"id": "474", "text": "hello world", "language": "en"}, {"id": + "475", "text": "hello world", "language": "en"}, {"id": "476", "text": "hello + world", "language": "en"}, {"id": "477", "text": "hello world", "language": + "en"}, {"id": "478", "text": "hello world", "language": "en"}, {"id": "479", + "text": "hello world", "language": "en"}, {"id": "480", "text": "hello world", + "language": "en"}, {"id": "481", "text": "hello world", "language": "en"}, {"id": + "482", "text": "hello world", "language": "en"}, {"id": "483", "text": "hello + world", "language": "en"}, {"id": "484", "text": "hello world", "language": + "en"}, {"id": "485", "text": "hello world", "language": "en"}, {"id": "486", + "text": "hello world", "language": "en"}, {"id": "487", "text": "hello world", + "language": "en"}, {"id": "488", "text": "hello world", "language": "en"}, {"id": + "489", "text": "hello world", "language": "en"}, {"id": "490", "text": "hello + world", "language": "en"}, {"id": "491", "text": "hello world", "language": + "en"}, {"id": "492", "text": "hello world", "language": "en"}, {"id": "493", + "text": "hello world", "language": "en"}, {"id": "494", "text": "hello world", + "language": "en"}, {"id": "495", "text": "hello world", "language": "en"}, {"id": + "496", "text": "hello world", "language": "en"}, {"id": "497", "text": "hello + world", "language": "en"}, {"id": "498", "text": "hello world", "language": + "en"}, {"id": "499", "text": "hello world", "language": "en"}, {"id": "500", + "text": "hello world", "language": "en"}, {"id": "501", "text": "hello world", + "language": "en"}, {"id": "502", "text": "hello world", "language": "en"}, {"id": + "503", "text": "hello world", "language": "en"}, {"id": "504", "text": "hello + world", "language": "en"}, {"id": "505", "text": "hello world", "language": + "en"}, {"id": "506", "text": "hello world", "language": "en"}, {"id": "507", + "text": "hello world", "language": "en"}, {"id": "508", "text": "hello world", + "language": "en"}, {"id": "509", "text": "hello world", "language": "en"}, {"id": + "510", "text": "hello world", "language": "en"}, {"id": "511", "text": "hello + world", "language": "en"}, {"id": "512", "text": "hello world", "language": + "en"}, {"id": "513", "text": "hello world", "language": "en"}, {"id": "514", + "text": "hello world", "language": "en"}, {"id": "515", "text": "hello world", + "language": "en"}, {"id": "516", "text": "hello world", "language": "en"}, {"id": + "517", "text": "hello world", "language": "en"}, {"id": "518", "text": "hello + world", "language": "en"}, {"id": "519", "text": "hello world", "language": + "en"}, {"id": "520", "text": "hello world", "language": "en"}, {"id": "521", + "text": "hello world", "language": "en"}, {"id": "522", "text": "hello world", + "language": "en"}, {"id": "523", "text": "hello world", "language": "en"}, {"id": + "524", "text": "hello world", "language": "en"}, {"id": "525", "text": "hello + world", "language": "en"}, {"id": "526", "text": "hello world", "language": + "en"}, {"id": "527", "text": "hello world", "language": "en"}, {"id": "528", + "text": "hello world", "language": "en"}, {"id": "529", "text": "hello world", + "language": "en"}, {"id": "530", "text": "hello world", "language": "en"}, {"id": + "531", "text": "hello world", "language": "en"}, {"id": "532", "text": "hello + world", "language": "en"}, {"id": "533", "text": "hello world", "language": + "en"}, {"id": "534", "text": "hello world", "language": "en"}, {"id": "535", + "text": "hello world", "language": "en"}, {"id": "536", "text": "hello world", + "language": "en"}, {"id": "537", "text": "hello world", "language": "en"}, {"id": + "538", "text": "hello world", "language": "en"}, {"id": "539", "text": "hello + world", "language": "en"}, {"id": "540", "text": "hello world", "language": + "en"}, {"id": "541", "text": "hello world", "language": "en"}, {"id": "542", + "text": "hello world", "language": "en"}, {"id": "543", "text": "hello world", + "language": "en"}, {"id": "544", "text": "hello world", "language": "en"}, {"id": + "545", "text": "hello world", "language": "en"}, {"id": "546", "text": "hello + world", "language": "en"}, {"id": "547", "text": "hello world", "language": + "en"}, {"id": "548", "text": "hello world", "language": "en"}, {"id": "549", + "text": "hello world", "language": "en"}, {"id": "550", "text": "hello world", + "language": "en"}, {"id": "551", "text": "hello world", "language": "en"}, {"id": + "552", "text": "hello world", "language": "en"}, {"id": "553", "text": "hello + world", "language": "en"}, {"id": "554", "text": "hello world", "language": + "en"}, {"id": "555", "text": "hello world", "language": "en"}, {"id": "556", + "text": "hello world", "language": "en"}, {"id": "557", "text": "hello world", + "language": "en"}, {"id": "558", "text": "hello world", "language": "en"}, {"id": + "559", "text": "hello world", "language": "en"}, {"id": "560", "text": "hello + world", "language": "en"}, {"id": "561", "text": "hello world", "language": + "en"}, {"id": "562", "text": "hello world", "language": "en"}, {"id": "563", + "text": "hello world", "language": "en"}, {"id": "564", "text": "hello world", + "language": "en"}, {"id": "565", "text": "hello world", "language": "en"}, {"id": + "566", "text": "hello world", "language": "en"}, {"id": "567", "text": "hello + world", "language": "en"}, {"id": "568", "text": "hello world", "language": + "en"}, {"id": "569", "text": "hello world", "language": "en"}, {"id": "570", + "text": "hello world", "language": "en"}, {"id": "571", "text": "hello world", + "language": "en"}, {"id": "572", "text": "hello world", "language": "en"}, {"id": + "573", "text": "hello world", "language": "en"}, {"id": "574", "text": "hello + world", "language": "en"}, {"id": "575", "text": "hello world", "language": + "en"}, {"id": "576", "text": "hello world", "language": "en"}, {"id": "577", + "text": "hello world", "language": "en"}, {"id": "578", "text": "hello world", + "language": "en"}, {"id": "579", "text": "hello world", "language": "en"}, {"id": + "580", "text": "hello world", "language": "en"}, {"id": "581", "text": "hello + world", "language": "en"}, {"id": "582", "text": "hello world", "language": + "en"}, {"id": "583", "text": "hello world", "language": "en"}, {"id": "584", + "text": "hello world", "language": "en"}, {"id": "585", "text": "hello world", + "language": "en"}, {"id": "586", "text": "hello world", "language": "en"}, {"id": + "587", "text": "hello world", "language": "en"}, {"id": "588", "text": "hello + world", "language": "en"}, {"id": "589", "text": "hello world", "language": + "en"}, {"id": "590", "text": "hello world", "language": "en"}, {"id": "591", + "text": "hello world", "language": "en"}, {"id": "592", "text": "hello world", + "language": "en"}, {"id": "593", "text": "hello world", "language": "en"}, {"id": + "594", "text": "hello world", "language": "en"}, {"id": "595", "text": "hello + world", "language": "en"}, {"id": "596", "text": "hello world", "language": + "en"}, {"id": "597", "text": "hello world", "language": "en"}, {"id": "598", + "text": "hello world", "language": "en"}, {"id": "599", "text": "hello world", + "language": "en"}, {"id": "600", "text": "hello world", "language": "en"}, {"id": + "601", "text": "hello world", "language": "en"}, {"id": "602", "text": "hello + world", "language": "en"}, {"id": "603", "text": "hello world", "language": + "en"}, {"id": "604", "text": "hello world", "language": "en"}, {"id": "605", + "text": "hello world", "language": "en"}, {"id": "606", "text": "hello world", + "language": "en"}, {"id": "607", "text": "hello world", "language": "en"}, {"id": + "608", "text": "hello world", "language": "en"}, {"id": "609", "text": "hello + world", "language": "en"}, {"id": "610", "text": "hello world", "language": + "en"}, {"id": "611", "text": "hello world", "language": "en"}, {"id": "612", + "text": "hello world", "language": "en"}, {"id": "613", "text": "hello world", + "language": "en"}, {"id": "614", "text": "hello world", "language": "en"}, {"id": + "615", "text": "hello world", "language": "en"}, {"id": "616", "text": "hello + world", "language": "en"}, {"id": "617", "text": "hello world", "language": + "en"}, {"id": "618", "text": "hello world", "language": "en"}, {"id": "619", + "text": "hello world", "language": "en"}, {"id": "620", "text": "hello world", + "language": "en"}, {"id": "621", "text": "hello world", "language": "en"}, {"id": + "622", "text": "hello world", "language": "en"}, {"id": "623", "text": "hello + world", "language": "en"}, {"id": "624", "text": "hello world", "language": + "en"}, {"id": "625", "text": "hello world", "language": "en"}, {"id": "626", + "text": "hello world", "language": "en"}, {"id": "627", "text": "hello world", + "language": "en"}, {"id": "628", "text": "hello world", "language": "en"}, {"id": + "629", "text": "hello world", "language": "en"}, {"id": "630", "text": "hello + world", "language": "en"}, {"id": "631", "text": "hello world", "language": + "en"}, {"id": "632", "text": "hello world", "language": "en"}, {"id": "633", + "text": "hello world", "language": "en"}, {"id": "634", "text": "hello world", + "language": "en"}, {"id": "635", "text": "hello world", "language": "en"}, {"id": + "636", "text": "hello world", "language": "en"}, {"id": "637", "text": "hello + world", "language": "en"}, {"id": "638", "text": "hello world", "language": + "en"}, {"id": "639", "text": "hello world", "language": "en"}, {"id": "640", + "text": "hello world", "language": "en"}, {"id": "641", "text": "hello world", + "language": "en"}, {"id": "642", "text": "hello world", "language": "en"}, {"id": + "643", "text": "hello world", "language": "en"}, {"id": "644", "text": "hello + world", "language": "en"}, {"id": "645", "text": "hello world", "language": + "en"}, {"id": "646", "text": "hello world", "language": "en"}, {"id": "647", + "text": "hello world", "language": "en"}, {"id": "648", "text": "hello world", + "language": "en"}, {"id": "649", "text": "hello world", "language": "en"}, {"id": + "650", "text": "hello world", "language": "en"}, {"id": "651", "text": "hello + world", "language": "en"}, {"id": "652", "text": "hello world", "language": + "en"}, {"id": "653", "text": "hello world", "language": "en"}, {"id": "654", + "text": "hello world", "language": "en"}, {"id": "655", "text": "hello world", + "language": "en"}, {"id": "656", "text": "hello world", "language": "en"}, {"id": + "657", "text": "hello world", "language": "en"}, {"id": "658", "text": "hello + world", "language": "en"}, {"id": "659", "text": "hello world", "language": + "en"}, {"id": "660", "text": "hello world", "language": "en"}, {"id": "661", + "text": "hello world", "language": "en"}, {"id": "662", "text": "hello world", + "language": "en"}, {"id": "663", "text": "hello world", "language": "en"}, {"id": + "664", "text": "hello world", "language": "en"}, {"id": "665", "text": "hello + world", "language": "en"}, {"id": "666", "text": "hello world", "language": + "en"}, {"id": "667", "text": "hello world", "language": "en"}, {"id": "668", + "text": "hello world", "language": "en"}, {"id": "669", "text": "hello world", + "language": "en"}, {"id": "670", "text": "hello world", "language": "en"}, {"id": + "671", "text": "hello world", "language": "en"}, {"id": "672", "text": "hello + world", "language": "en"}, {"id": "673", "text": "hello world", "language": + "en"}, {"id": "674", "text": "hello world", "language": "en"}, {"id": "675", + "text": "hello world", "language": "en"}, {"id": "676", "text": "hello world", + "language": "en"}, {"id": "677", "text": "hello world", "language": "en"}, {"id": + "678", "text": "hello world", "language": "en"}, {"id": "679", "text": "hello + world", "language": "en"}, {"id": "680", "text": "hello world", "language": + "en"}, {"id": "681", "text": "hello world", "language": "en"}, {"id": "682", + "text": "hello world", "language": "en"}, {"id": "683", "text": "hello world", + "language": "en"}, {"id": "684", "text": "hello world", "language": "en"}, {"id": + "685", "text": "hello world", "language": "en"}, {"id": "686", "text": "hello + world", "language": "en"}, {"id": "687", "text": "hello world", "language": + "en"}, {"id": "688", "text": "hello world", "language": "en"}, {"id": "689", + "text": "hello world", "language": "en"}, {"id": "690", "text": "hello world", + "language": "en"}, {"id": "691", "text": "hello world", "language": "en"}, {"id": + "692", "text": "hello world", "language": "en"}, {"id": "693", "text": "hello + world", "language": "en"}, {"id": "694", "text": "hello world", "language": + "en"}, {"id": "695", "text": "hello world", "language": "en"}, {"id": "696", + "text": "hello world", "language": "en"}, {"id": "697", "text": "hello world", + "language": "en"}, {"id": "698", "text": "hello world", "language": "en"}, {"id": + "699", "text": "hello world", "language": "en"}, {"id": "700", "text": "hello + world", "language": "en"}, {"id": "701", "text": "hello world", "language": + "en"}, {"id": "702", "text": "hello world", "language": "en"}, {"id": "703", + "text": "hello world", "language": "en"}, {"id": "704", "text": "hello world", + "language": "en"}, {"id": "705", "text": "hello world", "language": "en"}, {"id": + "706", "text": "hello world", "language": "en"}, {"id": "707", "text": "hello + world", "language": "en"}, {"id": "708", "text": "hello world", "language": + "en"}, {"id": "709", "text": "hello world", "language": "en"}, {"id": "710", + "text": "hello world", "language": "en"}, {"id": "711", "text": "hello world", + "language": "en"}, {"id": "712", "text": "hello world", "language": "en"}, {"id": + "713", "text": "hello world", "language": "en"}, {"id": "714", "text": "hello + world", "language": "en"}, {"id": "715", "text": "hello world", "language": + "en"}, {"id": "716", "text": "hello world", "language": "en"}, {"id": "717", + "text": "hello world", "language": "en"}, {"id": "718", "text": "hello world", + "language": "en"}, {"id": "719", "text": "hello world", "language": "en"}, {"id": + "720", "text": "hello world", "language": "en"}, {"id": "721", "text": "hello + world", "language": "en"}, {"id": "722", "text": "hello world", "language": + "en"}, {"id": "723", "text": "hello world", "language": "en"}, {"id": "724", + "text": "hello world", "language": "en"}, {"id": "725", "text": "hello world", + "language": "en"}, {"id": "726", "text": "hello world", "language": "en"}, {"id": + "727", "text": "hello world", "language": "en"}, {"id": "728", "text": "hello + world", "language": "en"}, {"id": "729", "text": "hello world", "language": + "en"}, {"id": "730", "text": "hello world", "language": "en"}, {"id": "731", + "text": "hello world", "language": "en"}, {"id": "732", "text": "hello world", + "language": "en"}, {"id": "733", "text": "hello world", "language": "en"}, {"id": + "734", "text": "hello world", "language": "en"}, {"id": "735", "text": "hello + world", "language": "en"}, {"id": "736", "text": "hello world", "language": + "en"}, {"id": "737", "text": "hello world", "language": "en"}, {"id": "738", + "text": "hello world", "language": "en"}, {"id": "739", "text": "hello world", + "language": "en"}, {"id": "740", "text": "hello world", "language": "en"}, {"id": + "741", "text": "hello world", "language": "en"}, {"id": "742", "text": "hello + world", "language": "en"}, {"id": "743", "text": "hello world", "language": + "en"}, {"id": "744", "text": "hello world", "language": "en"}, {"id": "745", + "text": "hello world", "language": "en"}, {"id": "746", "text": "hello world", + "language": "en"}, {"id": "747", "text": "hello world", "language": "en"}, {"id": + "748", "text": "hello world", "language": "en"}, {"id": "749", "text": "hello + world", "language": "en"}, {"id": "750", "text": "hello world", "language": + "en"}, {"id": "751", "text": "hello world", "language": "en"}, {"id": "752", + "text": "hello world", "language": "en"}, {"id": "753", "text": "hello world", + "language": "en"}, {"id": "754", "text": "hello world", "language": "en"}, {"id": + "755", "text": "hello world", "language": "en"}, {"id": "756", "text": "hello + world", "language": "en"}, {"id": "757", "text": "hello world", "language": + "en"}, {"id": "758", "text": "hello world", "language": "en"}, {"id": "759", + "text": "hello world", "language": "en"}, {"id": "760", "text": "hello world", + "language": "en"}, {"id": "761", "text": "hello world", "language": "en"}, {"id": + "762", "text": "hello world", "language": "en"}, {"id": "763", "text": "hello + world", "language": "en"}, {"id": "764", "text": "hello world", "language": + "en"}, {"id": "765", "text": "hello world", "language": "en"}, {"id": "766", + "text": "hello world", "language": "en"}, {"id": "767", "text": "hello world", + "language": "en"}, {"id": "768", "text": "hello world", "language": "en"}, {"id": + "769", "text": "hello world", "language": "en"}, {"id": "770", "text": "hello + world", "language": "en"}, {"id": "771", "text": "hello world", "language": + "en"}, {"id": "772", "text": "hello world", "language": "en"}, {"id": "773", + "text": "hello world", "language": "en"}, {"id": "774", "text": "hello world", + "language": "en"}, {"id": "775", "text": "hello world", "language": "en"}, {"id": + "776", "text": "hello world", "language": "en"}, {"id": "777", "text": "hello + world", "language": "en"}, {"id": "778", "text": "hello world", "language": + "en"}, {"id": "779", "text": "hello world", "language": "en"}, {"id": "780", + "text": "hello world", "language": "en"}, {"id": "781", "text": "hello world", + "language": "en"}, {"id": "782", "text": "hello world", "language": "en"}, {"id": + "783", "text": "hello world", "language": "en"}, {"id": "784", "text": "hello + world", "language": "en"}, {"id": "785", "text": "hello world", "language": + "en"}, {"id": "786", "text": "hello world", "language": "en"}, {"id": "787", + "text": "hello world", "language": "en"}, {"id": "788", "text": "hello world", + "language": "en"}, {"id": "789", "text": "hello world", "language": "en"}, {"id": + "790", "text": "hello world", "language": "en"}, {"id": "791", "text": "hello + world", "language": "en"}, {"id": "792", "text": "hello world", "language": + "en"}, {"id": "793", "text": "hello world", "language": "en"}, {"id": "794", + "text": "hello world", "language": "en"}, {"id": "795", "text": "hello world", + "language": "en"}, {"id": "796", "text": "hello world", "language": "en"}, {"id": + "797", "text": "hello world", "language": "en"}, {"id": "798", "text": "hello + world", "language": "en"}, {"id": "799", "text": "hello world", "language": + "en"}, {"id": "800", "text": "hello world", "language": "en"}, {"id": "801", + "text": "hello world", "language": "en"}, {"id": "802", "text": "hello world", + "language": "en"}, {"id": "803", "text": "hello world", "language": "en"}, {"id": + "804", "text": "hello world", "language": "en"}, {"id": "805", "text": "hello + world", "language": "en"}, {"id": "806", "text": "hello world", "language": + "en"}, {"id": "807", "text": "hello world", "language": "en"}, {"id": "808", + "text": "hello world", "language": "en"}, {"id": "809", "text": "hello world", + "language": "en"}, {"id": "810", "text": "hello world", "language": "en"}, {"id": + "811", "text": "hello world", "language": "en"}, {"id": "812", "text": "hello + world", "language": "en"}, {"id": "813", "text": "hello world", "language": + "en"}, {"id": "814", "text": "hello world", "language": "en"}, {"id": "815", + "text": "hello world", "language": "en"}, {"id": "816", "text": "hello world", + "language": "en"}, {"id": "817", "text": "hello world", "language": "en"}, {"id": + "818", "text": "hello world", "language": "en"}, {"id": "819", "text": "hello + world", "language": "en"}, {"id": "820", "text": "hello world", "language": + "en"}, {"id": "821", "text": "hello world", "language": "en"}, {"id": "822", + "text": "hello world", "language": "en"}, {"id": "823", "text": "hello world", + "language": "en"}, {"id": "824", "text": "hello world", "language": "en"}, {"id": + "825", "text": "hello world", "language": "en"}, {"id": "826", "text": "hello + world", "language": "en"}, {"id": "827", "text": "hello world", "language": + "en"}, {"id": "828", "text": "hello world", "language": "en"}, {"id": "829", + "text": "hello world", "language": "en"}, {"id": "830", "text": "hello world", + "language": "en"}, {"id": "831", "text": "hello world", "language": "en"}, {"id": + "832", "text": "hello world", "language": "en"}, {"id": "833", "text": "hello + world", "language": "en"}, {"id": "834", "text": "hello world", "language": + "en"}, {"id": "835", "text": "hello world", "language": "en"}, {"id": "836", + "text": "hello world", "language": "en"}, {"id": "837", "text": "hello world", + "language": "en"}, {"id": "838", "text": "hello world", "language": "en"}, {"id": + "839", "text": "hello world", "language": "en"}, {"id": "840", "text": "hello + world", "language": "en"}, {"id": "841", "text": "hello world", "language": + "en"}, {"id": "842", "text": "hello world", "language": "en"}, {"id": "843", + "text": "hello world", "language": "en"}, {"id": "844", "text": "hello world", + "language": "en"}, {"id": "845", "text": "hello world", "language": "en"}, {"id": + "846", "text": "hello world", "language": "en"}, {"id": "847", "text": "hello + world", "language": "en"}, {"id": "848", "text": "hello world", "language": + "en"}, {"id": "849", "text": "hello world", "language": "en"}, {"id": "850", + "text": "hello world", "language": "en"}, {"id": "851", "text": "hello world", + "language": "en"}, {"id": "852", "text": "hello world", "language": "en"}, {"id": + "853", "text": "hello world", "language": "en"}, {"id": "854", "text": "hello + world", "language": "en"}, {"id": "855", "text": "hello world", "language": + "en"}, {"id": "856", "text": "hello world", "language": "en"}, {"id": "857", + "text": "hello world", "language": "en"}, {"id": "858", "text": "hello world", + "language": "en"}, {"id": "859", "text": "hello world", "language": "en"}, {"id": + "860", "text": "hello world", "language": "en"}, {"id": "861", "text": "hello + world", "language": "en"}, {"id": "862", "text": "hello world", "language": + "en"}, {"id": "863", "text": "hello world", "language": "en"}, {"id": "864", + "text": "hello world", "language": "en"}, {"id": "865", "text": "hello world", + "language": "en"}, {"id": "866", "text": "hello world", "language": "en"}, {"id": + "867", "text": "hello world", "language": "en"}, {"id": "868", "text": "hello + world", "language": "en"}, {"id": "869", "text": "hello world", "language": + "en"}, {"id": "870", "text": "hello world", "language": "en"}, {"id": "871", + "text": "hello world", "language": "en"}, {"id": "872", "text": "hello world", + "language": "en"}, {"id": "873", "text": "hello world", "language": "en"}, {"id": + "874", "text": "hello world", "language": "en"}, {"id": "875", "text": "hello + world", "language": "en"}, {"id": "876", "text": "hello world", "language": + "en"}, {"id": "877", "text": "hello world", "language": "en"}, {"id": "878", + "text": "hello world", "language": "en"}, {"id": "879", "text": "hello world", + "language": "en"}, {"id": "880", "text": "hello world", "language": "en"}, {"id": + "881", "text": "hello world", "language": "en"}, {"id": "882", "text": "hello + world", "language": "en"}, {"id": "883", "text": "hello world", "language": + "en"}, {"id": "884", "text": "hello world", "language": "en"}, {"id": "885", + "text": "hello world", "language": "en"}, {"id": "886", "text": "hello world", + "language": "en"}, {"id": "887", "text": "hello world", "language": "en"}, {"id": + "888", "text": "hello world", "language": "en"}, {"id": "889", "text": "hello + world", "language": "en"}, {"id": "890", "text": "hello world", "language": + "en"}, {"id": "891", "text": "hello world", "language": "en"}, {"id": "892", + "text": "hello world", "language": "en"}, {"id": "893", "text": "hello world", + "language": "en"}, {"id": "894", "text": "hello world", "language": "en"}, {"id": + "895", "text": "hello world", "language": "en"}, {"id": "896", "text": "hello + world", "language": "en"}, {"id": "897", "text": "hello world", "language": + "en"}, {"id": "898", "text": "hello world", "language": "en"}, {"id": "899", + "text": "hello world", "language": "en"}, {"id": "900", "text": "hello world", + "language": "en"}, {"id": "901", "text": "hello world", "language": "en"}, {"id": + "902", "text": "hello world", "language": "en"}, {"id": "903", "text": "hello + world", "language": "en"}, {"id": "904", "text": "hello world", "language": + "en"}, {"id": "905", "text": "hello world", "language": "en"}, {"id": "906", + "text": "hello world", "language": "en"}, {"id": "907", "text": "hello world", + "language": "en"}, {"id": "908", "text": "hello world", "language": "en"}, {"id": + "909", "text": "hello world", "language": "en"}, {"id": "910", "text": "hello + world", "language": "en"}, {"id": "911", "text": "hello world", "language": + "en"}, {"id": "912", "text": "hello world", "language": "en"}, {"id": "913", + "text": "hello world", "language": "en"}, {"id": "914", "text": "hello world", + "language": "en"}, {"id": "915", "text": "hello world", "language": "en"}, {"id": + "916", "text": "hello world", "language": "en"}, {"id": "917", "text": "hello + world", "language": "en"}, {"id": "918", "text": "hello world", "language": + "en"}, {"id": "919", "text": "hello world", "language": "en"}, {"id": "920", + "text": "hello world", "language": "en"}, {"id": "921", "text": "hello world", + "language": "en"}, {"id": "922", "text": "hello world", "language": "en"}, {"id": + "923", "text": "hello world", "language": "en"}, {"id": "924", "text": "hello + world", "language": "en"}, {"id": "925", "text": "hello world", "language": + "en"}, {"id": "926", "text": "hello world", "language": "en"}, {"id": "927", + "text": "hello world", "language": "en"}, {"id": "928", "text": "hello world", + "language": "en"}, {"id": "929", "text": "hello world", "language": "en"}, {"id": + "930", "text": "hello world", "language": "en"}, {"id": "931", "text": "hello + world", "language": "en"}, {"id": "932", "text": "hello world", "language": + "en"}, {"id": "933", "text": "hello world", "language": "en"}, {"id": "934", + "text": "hello world", "language": "en"}, {"id": "935", "text": "hello world", + "language": "en"}, {"id": "936", "text": "hello world", "language": "en"}, {"id": + "937", "text": "hello world", "language": "en"}, {"id": "938", "text": "hello + world", "language": "en"}, {"id": "939", "text": "hello world", "language": + "en"}, {"id": "940", "text": "hello world", "language": "en"}, {"id": "941", + "text": "hello world", "language": "en"}, {"id": "942", "text": "hello world", + "language": "en"}, {"id": "943", "text": "hello world", "language": "en"}, {"id": + "944", "text": "hello world", "language": "en"}, {"id": "945", "text": "hello + world", "language": "en"}, {"id": "946", "text": "hello world", "language": + "en"}, {"id": "947", "text": "hello world", "language": "en"}, {"id": "948", + "text": "hello world", "language": "en"}, {"id": "949", "text": "hello world", + "language": "en"}, {"id": "950", "text": "hello world", "language": "en"}, {"id": + "951", "text": "hello world", "language": "en"}, {"id": "952", "text": "hello + world", "language": "en"}, {"id": "953", "text": "hello world", "language": + "en"}, {"id": "954", "text": "hello world", "language": "en"}, {"id": "955", + "text": "hello world", "language": "en"}, {"id": "956", "text": "hello world", + "language": "en"}, {"id": "957", "text": "hello world", "language": "en"}, {"id": + "958", "text": "hello world", "language": "en"}, {"id": "959", "text": "hello + world", "language": "en"}, {"id": "960", "text": "hello world", "language": + "en"}, {"id": "961", "text": "hello world", "language": "en"}, {"id": "962", + "text": "hello world", "language": "en"}, {"id": "963", "text": "hello world", + "language": "en"}, {"id": "964", "text": "hello world", "language": "en"}, {"id": + "965", "text": "hello world", "language": "en"}, {"id": "966", "text": "hello + world", "language": "en"}, {"id": "967", "text": "hello world", "language": + "en"}, {"id": "968", "text": "hello world", "language": "en"}, {"id": "969", + "text": "hello world", "language": "en"}, {"id": "970", "text": "hello world", + "language": "en"}, {"id": "971", "text": "hello world", "language": "en"}, {"id": + "972", "text": "hello world", "language": "en"}, {"id": "973", "text": "hello + world", "language": "en"}, {"id": "974", "text": "hello world", "language": + "en"}, {"id": "975", "text": "hello world", "language": "en"}, {"id": "976", + "text": "hello world", "language": "en"}, {"id": "977", "text": "hello world", + "language": "en"}, {"id": "978", "text": "hello world", "language": "en"}, {"id": + "979", "text": "hello world", "language": "en"}, {"id": "980", "text": "hello + world", "language": "en"}, {"id": "981", "text": "hello world", "language": + "en"}, {"id": "982", "text": "hello world", "language": "en"}, {"id": "983", + "text": "hello world", "language": "en"}, {"id": "984", "text": "hello world", + "language": "en"}, {"id": "985", "text": "hello world", "language": "en"}, {"id": + "986", "text": "hello world", "language": "en"}, {"id": "987", "text": "hello + world", "language": "en"}, {"id": "988", "text": "hello world", "language": + "en"}, {"id": "989", "text": "hello world", "language": "en"}, {"id": "990", + "text": "hello world", "language": "en"}, {"id": "991", "text": "hello world", + "language": "en"}, {"id": "992", "text": "hello world", "language": "en"}, {"id": + "993", "text": "hello world", "language": "en"}, {"id": "994", "text": "hello + world", "language": "en"}, {"id": "995", "text": "hello world", "language": + "en"}, {"id": "996", "text": "hello world", "language": "en"}, {"id": "997", + "text": "hello world", "language": "en"}, {"id": "998", "text": "hello world", + "language": "en"}, {"id": "999", "text": "hello world", "language": "en"}, {"id": + "1000", "text": "hello world", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '55962' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch + request contains too many records. Max 1000 records are permitted."}}}' + headers: + apim-request-id: + - 6218bc52-cde1-4519-8dc8-4b4092efdf08 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:44 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '12' + status: + code: 400 + message: Bad Request +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_client_passed_default_language_hint.yaml new file mode 100644 index 000000000000..3c9c62ee0c6a --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_client_passed_default_language_hint.yaml @@ -0,0 +1,139 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "es"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "es"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - e517622a-4ba2-4b27-8be3-ffd90abfb08a + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:44 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 8e0ca8ea-a7f1-4d04-842d-754d62659c85 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:46 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '105' + status: + code: 200 + message: OK +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "es"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "es"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - e78f6c84-2db5-49ed-8225-d4cde4b86ffe + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:46 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_attribute_error_no_result_attribute.yaml new file mode 100644 index 000000000000..0bb07ba438d7 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_attribute_error_no_result_attribute.yaml @@ -0,0 +1,42 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '58' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 4dba7af2-29bb-432a-9178-13ef624f7d00 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:45 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_attribute_error_nonexistent_attribute.yaml new file mode 100644 index 000000000000..bf373a45aa29 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_attribute_error_nonexistent_attribute.yaml @@ -0,0 +1,42 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '58' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 166e1ed8-b99e-4510-b4d1-5d75ea2f8657 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:46 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_errors.yaml new file mode 100644 index 000000000000..33172475a45f --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_errors.yaml @@ -0,0 +1,51 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "", "language": "en"}, {"id": "2", "text": + "I did not like the hotel we stayed at.", "language": "english"}, {"id": "3", + "text": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '5308' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"A + document within the request was too large to be processed. Limit document + size to: 5120 text elements. For additional details on the data limitations + see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 860c6f8f-a447-4ec6-9b05-97c5608db3be + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:47 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_warnings.yaml new file mode 100644 index 000000000000..b71ea37404f9 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_document_warnings.yaml @@ -0,0 +1,43 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "This won''t actually create a warning + :''(", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '98' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - ae9db402-9b0d-4553-b16c-253ece9ed33d + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=1 + date: + - Thu, 23 Jul 2020 17:18:47 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '89' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_duplicate_ids_error.yaml new file mode 100644 index 000000000000..a99d43e7817f --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_duplicate_ids_error.yaml @@ -0,0 +1,42 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "hello world", "language": "en"}, {"id": + "1", "text": "I did not like the hotel we stayed at.", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '150' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request + contains duplicated Ids. Make sure each document has a unique Id."}}}' + headers: + apim-request-id: + - 30ffe8c5-5001-4d47-800f-eaabba1d0476 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:47 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '5' + status: + code: 400 + message: Bad Request +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_empty_credential_class.yaml new file mode 100644 index 000000000000..e1b1c1696e6d --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_empty_credential_class.yaml @@ -0,0 +1,33 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This is written in English.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '85' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"401","message":"Access denied due to invalid subscription + key or wrong API endpoint. Make sure to provide a valid key for an active + subscription and use a correct regional API endpoint for your resource."}}' + headers: + content-length: + - '224' + date: + - Thu, 23 Jul 2020 17:18:47 GMT + status: + code: 401 + message: PermissionDenied +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_input_with_all_errors.yaml new file mode 100644 index 000000000000..2cb6dac5da50 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_input_with_all_errors.yaml @@ -0,0 +1,47 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "", "language": "en"}, {"id": "2", "text": + "Hola", "language": "Spanish"}, {"id": "3", "text": "", "language": "de"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '153' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 7fe78d0f-6593-4b2f-9ae1-b60130cd536e + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:48 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_input_with_some_errors.yaml new file mode 100644 index 000000000000..8919d3d7bcdb --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_input_with_some_errors.yaml @@ -0,0 +1,49 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "hola", "language": "es"}, {"id": "2", + "text": "", "language": "en"}, {"id": "3", "text": "Is 998.214.865-68 your Brazilian + CPF number?", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '192' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"3","entities":[{"text":"998.214.865-68","category":"Brazil + CPF Number","offset":3,"length":14,"confidenceScore":0.85}],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 51708468-566e-4842-8040-bba767c70b62 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=1 + date: + - Thu, 23 Jul 2020 17:18:49 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '81' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_invalid_language_hint_docs.yaml new file mode 100644 index 000000000000..9aab4df07b0d --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_invalid_language_hint_docs.yaml @@ -0,0 +1,43 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "This should fail because we''re passing + in an invalid language hint", "language": "notalanguage"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '134' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 12a8aace-0a2e-4d2f-8f8f-eda36292b9c4 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:48 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_invalid_language_hint_method.yaml new file mode 100644 index 000000000000..e12d677551cf --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_invalid_language_hint_method.yaml @@ -0,0 +1,43 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This should fail because we''re passing + in an invalid language hint", "language": "notalanguage"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '134' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 091a3f26-8289-46b5-84e9-53e768af8099 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:49 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_language_kwarg_english.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_language_kwarg_english.yaml new file mode 100644 index 000000000000..630dc3868ef0 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_language_kwarg_english.yaml @@ -0,0 +1,44 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "Bill Gates is the CEO of Microsoft.", + "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=latest&showStats=true + response: + body: + string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","statistics":{"charactersCount":35,"transactionsCount":1},"entities":[{"text":"Bill + Gates","category":"Person","offset":0,"length":10,"confidenceScore":0.81},{"text":"Microsoft","category":"Organization","offset":25,"length":9,"confidenceScore":0.64}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 985c402a-0b74-4e08-99b6-c3e7bd65cb6c + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=1 + date: + - Thu, 23 Jul 2020 17:18:50 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '76' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_language_kwarg_spanish.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_language_kwarg_spanish.yaml new file mode 100644 index 000000000000..16708cb52ae7 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_language_kwarg_spanish.yaml @@ -0,0 +1,43 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "Bill Gates is the CEO of Microsoft.", + "language": "es"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=latest&showStats=true + response: + body: + string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 3e6f5b79-e64a-4267-a8e4-16c9017c5843 + content-type: + - application/json; charset=utf-8 + date: + - Wed, 22 Jul 2020 14:50:20 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '420' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_length_with_emoji.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_length_with_emoji.yaml new file mode 100644 index 000000000000..e075ff77154d --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_length_with_emoji.yaml @@ -0,0 +1,44 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "\ud83d\udc69 SSN: 123-12-1234", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '87' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"0","entities":[{"text":"123-12-1234","category":"U.S. + Social Security Number (SSN)","offset":7,"length":11,"confidenceScore":0.85}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - f3e0cf88-545b-44f3-818e-55313dec114e + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=1 + date: + - Thu, 23 Jul 2020 17:18:50 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '82' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_out_of_order_ids.yaml new file mode 100644 index 000000000000..915900cec00e --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_out_of_order_ids.yaml @@ -0,0 +1,47 @@ +interactions: +- request: + body: '{"documents": [{"id": "56", "text": ":)", "language": "en"}, {"id": "0", + "text": ":(", "language": "en"}, {"id": "22", "text": "", "language": "en"}, + {"id": "19", "text": ":P", "language": "en"}, {"id": "1", "text": ":D", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '241' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"56","entities":[],"warnings":[]},{"id":"0","entities":[],"warnings":[]},{"id":"19","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - f418d976-9a1d-470a-bf54-f651eae438f4 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=4 + date: + - Thu, 23 Jul 2020 17:18:51 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '71' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_output_same_order_as_input.yaml new file mode 100644 index 000000000000..52010d6d45cd --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_output_same_order_as_input.yaml @@ -0,0 +1,45 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "one", "language": "en"}, {"id": "2", + "text": "two", "language": "en"}, {"id": "3", "text": "three", "language": "en"}, + {"id": "4", "text": "four", "language": "en"}, {"id": "5", "text": "five", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '249' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"5","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - b73d414c-77b4-4732-985f-8429761f6f6e + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=5 + date: + - Thu, 23 Jul 2020 17:18:51 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '64' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_pass_cls.yaml new file mode 100644 index 000000000000..8a11ff62aa8b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_pass_cls.yaml @@ -0,0 +1,43 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "Test passing cls to endpoint", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '86' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"0","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 610f90f1-6b0e-4da9-b901-a49a0446cb6d + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=1 + date: + - Thu, 23 Jul 2020 17:18:52 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '77' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_passing_only_string.yaml new file mode 100644 index 000000000000..caf22991e8a1 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_passing_only_string.yaml @@ -0,0 +1,52 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "My SSN is 859-98-0987.", "language": + "en"}, {"id": "1", "text": "Your ABA number - 111000025 - is the first 9 digits + in the lower left hand corner of your personal check.", "language": "en"}, {"id": + "2", "text": "Is 998.214.865-68 your Brazilian CPF number?", "language": "en"}, + {"id": "3", "text": "", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '358' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true + response: + body: + string: '{"statistics":{"documentsCount":4,"validDocumentsCount":3,"erroneousDocumentsCount":1,"transactionsCount":3},"documents":[{"id":"0","statistics":{"charactersCount":22,"transactionsCount":1},"entities":[{"text":"859-98-0987","category":"U.S. + Social Security Number (SSN)","offset":10,"length":11,"confidenceScore":0.65}],"warnings":[]},{"id":"1","statistics":{"charactersCount":105,"transactionsCount":1},"entities":[{"text":"111000025","category":"Phone + Number","offset":18,"length":9,"confidenceScore":0.8},{"text":"111000025","category":"ABA + Routing Number","offset":18,"length":9,"confidenceScore":0.75}],"warnings":[]},{"id":"2","statistics":{"charactersCount":44,"transactionsCount":1},"entities":[{"text":"998.214.865-68","category":"Brazil + CPF Number","offset":3,"length":14,"confidenceScore":0.85}],"warnings":[]}],"errors":[{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 09bb7695-a0b3-4468-8dde-4be27d7a2b82 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:52 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '110' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_per_item_dont_use_language_hint.yaml new file mode 100644 index 000000000000..4f1f295bfaab --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_per_item_dont_use_language_hint.yaml @@ -0,0 +1,45 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + ""}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + ""}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '236' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - f3aaa4c2-89dd-49e8-9da7-df2a929da79d + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:53 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '78' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_rotate_subscription_key.yaml new file mode 100644 index 000000000000..16bc09074252 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_rotate_subscription_key.yaml @@ -0,0 +1,121 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 62420b86-ba2f-4072-8b84-a38812d95461 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:53 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '77' + status: + code: 200 + message: OK +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"401","message":"Access denied due to invalid subscription + key or wrong API endpoint. Make sure to provide a valid key for an active + subscription and use a correct regional API endpoint for your resource."}}' + headers: + content-length: + - '224' + date: + - Thu, 23 Jul 2020 17:18:53 GMT + status: + code: 401 + message: PermissionDenied +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 88eb6c1d-7ae6-4cde-b702-c5b9c966fa0d + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:53 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '73' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_show_stats_and_model_version.yaml new file mode 100644 index 000000000000..a479942ee575 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_show_stats_and_model_version.yaml @@ -0,0 +1,47 @@ +interactions: +- request: + body: '{"documents": [{"id": "56", "text": ":)", "language": "en"}, {"id": "0", + "text": ":(", "language": "en"}, {"id": "22", "text": "", "language": "en"}, + {"id": "19", "text": ":P", "language": "en"}, {"id": "1", "text": ":D", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '241' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=latest&showStats=true + response: + body: + string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"0","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"19","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"1","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 8b7f87bf-9f61-49a9-8922-df3b7eae9483 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=4 + date: + - Thu, 23 Jul 2020 17:18:54 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '61' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_too_many_documents.yaml new file mode 100644 index 000000000000..420bbcc096da --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_too_many_documents.yaml @@ -0,0 +1,48 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "One", "language": "en"}, {"id": "1", + "text": "Two", "language": "en"}, {"id": "2", "text": "Three", "language": "en"}, + {"id": "3", "text": "Four", "language": "en"}, {"id": "4", "text": "Five", "language": + "en"}, {"id": "5", "text": "Six", "language": "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '295' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"5","entities":[],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The + request has exceeded the allowed document limits.","innererror":{"code":"InvalidDocumentBatch","message":"The + number of documents in the request have exceeded the data limitations. See + https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 83d12e97-5e75-482f-ac1b-877e700662b8 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=6 + date: + - Thu, 23 Jul 2020 17:18:54 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '69' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_user_agent.yaml new file mode 100644 index 000000000000..8c49dbc2c0ba --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_user_agent.yaml @@ -0,0 +1,45 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 739b9ff6-e3f2-4041-b78b-c2d390ca9ed6 + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:54 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '77' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_dont_use_language_hint.yaml new file mode 100644 index 000000000000..ebedb39b5cbb --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_dont_use_language_hint.yaml @@ -0,0 +1,45 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This was the best day of my life.", + "language": ""}, {"id": "1", "text": "I did not like the hotel we stayed at. + It was too expensive.", "language": ""}, {"id": "2", "text": "The restaurant + was not as good as I hoped.", "language": ""}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '273' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 0f25d1cb-0166-4738-8795-84c423d91cea + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=3 + date: + - Thu, 23 Jul 2020 17:18:55 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '89' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint.yaml new file mode 100644 index 000000000000..3662a1b3e496 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint.yaml @@ -0,0 +1,49 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This was the best day of my life.", + "language": "fr"}, {"id": "1", "text": "I did not like the hotel we stayed at. + It was too expensive.", "language": "fr"}, {"id": "2", "text": "The restaurant + was not as good as I hoped.", "language": "fr"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - cb56e9a0-cd4c-4993-8dfd-73de11e11b05 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:55 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml new file mode 100644 index 000000000000..4ae9d2f8c7b1 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -0,0 +1,49 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "es"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"3","entities":[],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 1fbd838e-78e4-4f31-82ab-a938eadcc52a + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=1 + date: + - Thu, 23 Jul 2020 17:18:55 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '68' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_obj_input.yaml new file mode 100644 index 000000000000..ce527caa8a66 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_obj_input.yaml @@ -0,0 +1,49 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I should take my cat to the veterinarian.", + "language": "de"}, {"id": "4", "text": "Este es un document escrito en Espa\u00f1ol.", + "language": "de"}, {"id": "3", "text": "\u732b\u306f\u5e78\u305b", "language": + "de"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '253' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"4","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - bd493308-10ac-4a0c-a559-9f7a74ac4850 + content-type: + - application/json; charset=utf-8 + date: + - Thu, 23 Jul 2020 17:18:56 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml new file mode 100644 index 000000000000..c1da00e77783 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -0,0 +1,49 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I should take my cat to the veterinarian.", + "language": "es"}, {"id": "2", "text": "Este es un document escrito en Espa\u00f1ol.", + "language": "es"}, {"id": "3", "text": "\u732b\u306f\u5e78\u305b", "language": + "en"}]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '253' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"3","entities":[],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: + - 29a834cb-81ac-47dd-951a-5662f273892f + content-type: + - application/json; charset=utf-8 + csp-billing-usage: + - CognitiveServices.TextAnalytics.BatchScoring=1 + date: + - Thu, 23 Jul 2020 17:18:56 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '60' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_all_successful_passing_dict.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_all_successful_passing_dict.yaml new file mode 100644 index 000000000000..04a4bc7abfd3 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_all_successful_passing_dict.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "My SSN is 859-98-0987.", "language": + "en"}, {"id": "2", "text": "Your ABA number - 111000025 - is the first 9 digits + in the lower left hand corner of your personal check.", "language": "en"}, {"id": + "3", "text": "Is 998.214.865-68 your Brazilian CPF number?", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '315' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true + response: + body: + string: '{"statistics":{"documentsCount":3,"validDocumentsCount":3,"erroneousDocumentsCount":0,"transactionsCount":3},"documents":[{"id":"1","statistics":{"charactersCount":22,"transactionsCount":1},"entities":[{"text":"859-98-0987","category":"U.S. + Social Security Number (SSN)","offset":10,"length":11,"confidenceScore":0.65}],"warnings":[]},{"id":"2","statistics":{"charactersCount":105,"transactionsCount":1},"entities":[{"text":"111000025","category":"Phone + Number","offset":18,"length":9,"confidenceScore":0.8},{"text":"111000025","category":"ABA + Routing Number","offset":18,"length":9,"confidenceScore":0.75}],"warnings":[]},{"id":"3","statistics":{"charactersCount":44,"transactionsCount":1},"entities":[{"text":"998.214.865-68","category":"Brazil + CPF Number","offset":3,"length":14,"confidenceScore":0.85}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: c4e0391d-522b-418c-a87e-f72c6c97f98b + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:44 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '108' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_all_successful_passing_text_document_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_all_successful_passing_text_document_input.yaml new file mode 100644 index 000000000000..6d1ee80da1d7 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_all_successful_passing_text_document_input.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "My SSN is 859-98-0987.", "language": + "en"}, {"id": "2", "text": "Your ABA number - 111000025 - is the first 9 digits + in the lower left hand corner of your personal check.", "language": "en"}, {"id": + "3", "text": "Is 998.214.865-68 your Brazilian CPF number?", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '315' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true + response: + body: + string: '{"statistics":{"documentsCount":3,"validDocumentsCount":3,"erroneousDocumentsCount":0,"transactionsCount":3},"documents":[{"id":"1","statistics":{"charactersCount":22,"transactionsCount":1},"entities":[{"text":"859-98-0987","category":"U.S. + Social Security Number (SSN)","offset":10,"length":11,"confidenceScore":0.65}],"warnings":[]},{"id":"2","statistics":{"charactersCount":105,"transactionsCount":1},"entities":[{"text":"111000025","category":"Phone + Number","offset":18,"length":9,"confidenceScore":0.8},{"text":"111000025","category":"ABA + Routing Number","offset":18,"length":9,"confidenceScore":0.75}],"warnings":[]},{"id":"3","statistics":{"charactersCount":44,"transactionsCount":1},"entities":[{"text":"998.214.865-68","category":"Brazil + CPF Number","offset":3,"length":14,"confidenceScore":0.85}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 4d0ae1a3-25c0-4790-ab39-081afa0a43a3 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:45 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '109' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_bad_credentials.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_bad_credentials.yaml new file mode 100644 index 000000000000..96d6c3d4a0b8 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_bad_credentials.yaml @@ -0,0 +1,28 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This is written in English.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '85' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"401","message":"Access denied due to invalid subscription + key or wrong API endpoint. Make sure to provide a valid key for an active + subscription and use a correct regional API endpoint for your resource."}}' + headers: + content-length: '224' + date: Thu, 23 Jul 2020 17:19:45 GMT + status: + code: 401 + message: PermissionDenied + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_bad_model_version_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_bad_model_version_error.yaml new file mode 100644 index 000000000000..4e1306e98bde --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_bad_model_version_error.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I did not like the hotel we stayed + at.", "language": "english"}]}' + headers: + Accept: + - application/json + Content-Length: + - '101' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=bad&showStats=false + response: + body: + string: '{"error":{"code":"InvalidRequest","message":"Invalid Request.","innererror":{"code":"ModelVersionIncorrect","message":"Invalid + model version. Possible values are: latest,2020-04-01,2019-10-01,2020-02-01"}}}' + headers: + apim-request-id: ba42b7a5-d3b0-4c87-a0f5-0436156f76b1 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:45 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '4' + status: + code: 400 + message: Bad Request + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=bad&showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_batch_size_over_limit.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_batch_size_over_limit.yaml new file mode 100644 index 000000000000..0fe34da57c2b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_batch_size_over_limit.yaml @@ -0,0 +1,776 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "hello world", "language": "en"}, {"id": + "1", "text": "hello world", "language": "en"}, {"id": "2", "text": "hello world", + "language": "en"}, {"id": "3", "text": "hello world", "language": "en"}, {"id": + "4", "text": "hello world", "language": "en"}, {"id": "5", "text": "hello world", + "language": "en"}, {"id": "6", "text": "hello world", "language": "en"}, {"id": + "7", "text": "hello world", "language": "en"}, {"id": "8", "text": "hello world", + "language": "en"}, {"id": "9", "text": "hello world", "language": "en"}, {"id": + "10", "text": "hello world", "language": "en"}, {"id": "11", "text": "hello + world", "language": "en"}, {"id": "12", "text": "hello world", "language": "en"}, + {"id": "13", "text": "hello world", "language": "en"}, {"id": "14", "text": + "hello world", "language": "en"}, {"id": "15", "text": "hello world", "language": + "en"}, {"id": "16", "text": "hello world", "language": "en"}, {"id": "17", "text": + "hello world", "language": "en"}, {"id": "18", "text": "hello world", "language": + "en"}, {"id": "19", "text": "hello world", "language": "en"}, {"id": "20", "text": + "hello world", "language": "en"}, {"id": "21", "text": "hello world", "language": + "en"}, {"id": "22", "text": "hello world", "language": "en"}, {"id": "23", "text": + "hello world", "language": "en"}, {"id": "24", "text": "hello world", "language": + "en"}, {"id": "25", "text": "hello world", "language": "en"}, {"id": "26", "text": + "hello world", "language": "en"}, {"id": "27", "text": "hello world", "language": + "en"}, {"id": "28", "text": "hello world", "language": "en"}, {"id": "29", "text": + "hello world", "language": "en"}, {"id": "30", "text": "hello world", "language": + "en"}, {"id": "31", "text": "hello world", "language": "en"}, {"id": "32", "text": + "hello world", "language": "en"}, {"id": "33", "text": "hello world", "language": + "en"}, {"id": "34", "text": "hello world", "language": "en"}, {"id": "35", "text": + "hello world", "language": "en"}, {"id": "36", "text": "hello world", "language": + "en"}, {"id": "37", "text": "hello world", "language": "en"}, {"id": "38", "text": + "hello world", "language": "en"}, {"id": "39", "text": "hello world", "language": + "en"}, {"id": "40", "text": "hello world", "language": "en"}, {"id": "41", "text": + "hello world", "language": "en"}, {"id": "42", "text": "hello world", "language": + "en"}, {"id": "43", "text": "hello world", "language": "en"}, {"id": "44", "text": + "hello world", "language": "en"}, {"id": "45", "text": "hello world", "language": + "en"}, {"id": "46", "text": "hello world", "language": "en"}, {"id": "47", "text": + "hello world", "language": "en"}, {"id": "48", "text": "hello world", "language": + "en"}, {"id": "49", "text": "hello world", "language": "en"}, {"id": "50", "text": + "hello world", "language": "en"}, {"id": "51", "text": "hello world", "language": + "en"}, {"id": "52", "text": "hello world", "language": "en"}, {"id": "53", "text": + "hello world", "language": "en"}, {"id": "54", "text": "hello world", "language": + "en"}, {"id": "55", "text": "hello world", "language": "en"}, {"id": "56", "text": + "hello world", "language": "en"}, {"id": "57", "text": "hello world", "language": + "en"}, {"id": "58", "text": "hello world", "language": "en"}, {"id": "59", "text": + "hello world", "language": "en"}, {"id": "60", "text": "hello world", "language": + "en"}, {"id": "61", "text": "hello world", "language": "en"}, {"id": "62", "text": + "hello world", "language": "en"}, {"id": "63", "text": "hello world", "language": + "en"}, {"id": "64", "text": "hello world", "language": "en"}, {"id": "65", "text": + "hello world", "language": "en"}, {"id": "66", "text": "hello world", "language": + "en"}, {"id": "67", "text": "hello world", "language": "en"}, {"id": "68", "text": + "hello world", "language": "en"}, {"id": "69", "text": "hello world", "language": + "en"}, {"id": "70", "text": "hello world", "language": "en"}, {"id": "71", "text": + "hello world", "language": "en"}, {"id": "72", "text": "hello world", "language": + "en"}, {"id": "73", "text": "hello world", "language": "en"}, {"id": "74", "text": + "hello world", "language": "en"}, {"id": "75", "text": "hello world", "language": + "en"}, {"id": "76", "text": "hello world", "language": "en"}, {"id": "77", "text": + "hello world", "language": "en"}, {"id": "78", "text": "hello world", "language": + "en"}, {"id": "79", "text": "hello world", "language": "en"}, {"id": "80", "text": + "hello world", "language": "en"}, {"id": "81", "text": "hello world", "language": + "en"}, {"id": "82", "text": "hello world", "language": "en"}, {"id": "83", "text": + "hello world", "language": "en"}, {"id": "84", "text": "hello world", "language": + "en"}, {"id": "85", "text": "hello world", "language": "en"}, {"id": "86", "text": + "hello world", "language": "en"}, {"id": "87", "text": "hello world", "language": + "en"}, {"id": "88", "text": "hello world", "language": "en"}, {"id": "89", "text": + "hello world", "language": "en"}, {"id": "90", "text": "hello world", "language": + "en"}, {"id": "91", "text": "hello world", "language": "en"}, {"id": "92", "text": + "hello world", "language": "en"}, {"id": "93", "text": "hello world", "language": + "en"}, {"id": "94", "text": "hello world", "language": "en"}, {"id": "95", "text": + "hello world", "language": "en"}, {"id": "96", "text": "hello world", "language": + "en"}, {"id": "97", "text": "hello world", "language": "en"}, {"id": "98", "text": + "hello world", "language": "en"}, {"id": "99", "text": "hello world", "language": + "en"}, {"id": "100", "text": "hello world", "language": "en"}, {"id": "101", + "text": "hello world", "language": "en"}, {"id": "102", "text": "hello world", + "language": "en"}, {"id": "103", "text": "hello world", "language": "en"}, {"id": + "104", "text": "hello world", "language": "en"}, {"id": "105", "text": "hello + world", "language": "en"}, {"id": "106", "text": "hello world", "language": + "en"}, {"id": "107", "text": "hello world", "language": "en"}, {"id": "108", + "text": "hello world", "language": "en"}, {"id": "109", "text": "hello world", + "language": "en"}, {"id": "110", "text": "hello world", "language": "en"}, {"id": + "111", "text": "hello world", "language": "en"}, {"id": "112", "text": "hello + world", "language": "en"}, {"id": "113", "text": "hello world", "language": + "en"}, {"id": "114", "text": "hello world", "language": "en"}, {"id": "115", + "text": "hello world", "language": "en"}, {"id": "116", "text": "hello world", + "language": "en"}, {"id": "117", "text": "hello world", "language": "en"}, {"id": + "118", "text": "hello world", "language": "en"}, {"id": "119", "text": "hello + world", "language": "en"}, {"id": "120", "text": "hello world", "language": + "en"}, {"id": "121", "text": "hello world", "language": "en"}, {"id": "122", + "text": "hello world", "language": "en"}, {"id": "123", "text": "hello world", + "language": "en"}, {"id": "124", "text": "hello world", "language": "en"}, {"id": + "125", "text": "hello world", "language": "en"}, {"id": "126", "text": "hello + world", "language": "en"}, {"id": "127", "text": "hello world", "language": + "en"}, {"id": "128", "text": "hello world", "language": "en"}, {"id": "129", + "text": "hello world", "language": "en"}, {"id": "130", "text": "hello world", + "language": "en"}, {"id": "131", "text": "hello world", "language": "en"}, {"id": + "132", "text": "hello world", "language": "en"}, {"id": "133", "text": "hello + world", "language": "en"}, {"id": "134", "text": "hello world", "language": + "en"}, {"id": "135", "text": "hello world", "language": "en"}, {"id": "136", + "text": "hello world", "language": "en"}, {"id": "137", "text": "hello world", + "language": "en"}, {"id": "138", "text": "hello world", "language": "en"}, {"id": + "139", "text": "hello world", "language": "en"}, {"id": "140", "text": "hello + world", "language": "en"}, {"id": "141", "text": "hello world", "language": + "en"}, {"id": "142", "text": "hello world", "language": "en"}, {"id": "143", + "text": "hello world", "language": "en"}, {"id": "144", "text": "hello world", + "language": "en"}, {"id": "145", "text": "hello world", "language": "en"}, {"id": + "146", "text": "hello world", "language": "en"}, {"id": "147", "text": "hello + world", "language": "en"}, {"id": "148", "text": "hello world", "language": + "en"}, {"id": "149", "text": "hello world", "language": "en"}, {"id": "150", + "text": "hello world", "language": "en"}, {"id": "151", "text": "hello world", + "language": "en"}, {"id": "152", "text": "hello world", "language": "en"}, {"id": + "153", "text": "hello world", "language": "en"}, {"id": "154", "text": "hello + world", "language": "en"}, {"id": "155", "text": "hello world", "language": + "en"}, {"id": "156", "text": "hello world", "language": "en"}, {"id": "157", + "text": "hello world", "language": "en"}, {"id": "158", "text": "hello world", + "language": "en"}, {"id": "159", "text": "hello world", "language": "en"}, {"id": + "160", "text": "hello world", "language": "en"}, {"id": "161", "text": "hello + world", "language": "en"}, {"id": "162", "text": "hello world", "language": + "en"}, {"id": "163", "text": "hello world", "language": "en"}, {"id": "164", + "text": "hello world", "language": "en"}, {"id": "165", "text": "hello world", + "language": "en"}, {"id": "166", "text": "hello world", "language": "en"}, {"id": + "167", "text": "hello world", "language": "en"}, {"id": "168", "text": "hello + world", "language": "en"}, {"id": "169", "text": "hello world", "language": + "en"}, {"id": "170", "text": "hello world", "language": "en"}, {"id": "171", + "text": "hello world", "language": "en"}, {"id": "172", "text": "hello world", + "language": "en"}, {"id": "173", "text": "hello world", "language": "en"}, {"id": + "174", "text": "hello world", "language": "en"}, {"id": "175", "text": "hello + world", "language": "en"}, {"id": "176", "text": "hello world", "language": + "en"}, {"id": "177", "text": "hello world", "language": "en"}, {"id": "178", + "text": "hello world", "language": "en"}, {"id": "179", "text": "hello world", + "language": "en"}, {"id": "180", "text": "hello world", "language": "en"}, {"id": + "181", "text": "hello world", "language": "en"}, {"id": "182", "text": "hello + world", "language": "en"}, {"id": "183", "text": "hello world", "language": + "en"}, {"id": "184", "text": "hello world", "language": "en"}, {"id": "185", + "text": "hello world", "language": "en"}, {"id": "186", "text": "hello world", + "language": "en"}, {"id": "187", "text": "hello world", "language": "en"}, {"id": + "188", "text": "hello world", "language": "en"}, {"id": "189", "text": "hello + world", "language": "en"}, {"id": "190", "text": "hello world", "language": + "en"}, {"id": "191", "text": "hello world", "language": "en"}, {"id": "192", + "text": "hello world", "language": "en"}, {"id": "193", "text": "hello world", + "language": "en"}, {"id": "194", "text": "hello world", "language": "en"}, {"id": + "195", "text": "hello world", "language": "en"}, {"id": "196", "text": "hello + world", "language": "en"}, {"id": "197", "text": "hello world", "language": + "en"}, {"id": "198", "text": "hello world", "language": "en"}, {"id": "199", + "text": "hello world", "language": "en"}, {"id": "200", "text": "hello world", + "language": "en"}, {"id": "201", "text": "hello world", "language": "en"}, {"id": + "202", "text": "hello world", "language": "en"}, {"id": "203", "text": "hello + world", "language": "en"}, {"id": "204", "text": "hello world", "language": + "en"}, {"id": "205", "text": "hello world", "language": "en"}, {"id": "206", + "text": "hello world", "language": "en"}, {"id": "207", "text": "hello world", + "language": "en"}, {"id": "208", "text": "hello world", "language": "en"}, {"id": + "209", "text": "hello world", "language": "en"}, {"id": "210", "text": "hello + world", "language": "en"}, {"id": "211", "text": "hello world", "language": + "en"}, {"id": "212", "text": "hello world", "language": "en"}, {"id": "213", + "text": "hello world", "language": "en"}, {"id": "214", "text": "hello world", + "language": "en"}, {"id": "215", "text": "hello world", "language": "en"}, {"id": + "216", "text": "hello world", "language": "en"}, {"id": "217", "text": "hello + world", "language": "en"}, {"id": "218", "text": "hello world", "language": + "en"}, {"id": "219", "text": "hello world", "language": "en"}, {"id": "220", + "text": "hello world", "language": "en"}, {"id": "221", "text": "hello world", + "language": "en"}, {"id": "222", "text": "hello world", "language": "en"}, {"id": + "223", "text": "hello world", "language": "en"}, {"id": "224", "text": "hello + world", "language": "en"}, {"id": "225", "text": "hello world", "language": + "en"}, {"id": "226", "text": "hello world", "language": "en"}, {"id": "227", + "text": "hello world", "language": "en"}, {"id": "228", "text": "hello world", + "language": "en"}, {"id": "229", "text": "hello world", "language": "en"}, {"id": + "230", "text": "hello world", "language": "en"}, {"id": "231", "text": "hello + world", "language": "en"}, {"id": "232", "text": "hello world", "language": + "en"}, {"id": "233", "text": "hello world", "language": "en"}, {"id": "234", + "text": "hello world", "language": "en"}, {"id": "235", "text": "hello world", + "language": "en"}, {"id": "236", "text": "hello world", "language": "en"}, {"id": + "237", "text": "hello world", "language": "en"}, {"id": "238", "text": "hello + world", "language": "en"}, {"id": "239", "text": "hello world", "language": + "en"}, {"id": "240", "text": "hello world", "language": "en"}, {"id": "241", + "text": "hello world", "language": "en"}, {"id": "242", "text": "hello world", + "language": "en"}, {"id": "243", "text": "hello world", "language": "en"}, {"id": + "244", "text": "hello world", "language": "en"}, {"id": "245", "text": "hello + world", "language": "en"}, {"id": "246", "text": "hello world", "language": + "en"}, {"id": "247", "text": "hello world", "language": "en"}, {"id": "248", + "text": "hello world", "language": "en"}, {"id": "249", "text": "hello world", + "language": "en"}, {"id": "250", "text": "hello world", "language": "en"}, {"id": + "251", "text": "hello world", "language": "en"}, {"id": "252", "text": "hello + world", "language": "en"}, {"id": "253", "text": "hello world", "language": + "en"}, {"id": "254", "text": "hello world", "language": "en"}, {"id": "255", + "text": "hello world", "language": "en"}, {"id": "256", "text": "hello world", + "language": "en"}, {"id": "257", "text": "hello world", "language": "en"}, {"id": + "258", "text": "hello world", "language": "en"}, {"id": "259", "text": "hello + world", "language": "en"}, {"id": "260", "text": "hello world", "language": + "en"}, {"id": "261", "text": "hello world", "language": "en"}, {"id": "262", + "text": "hello world", "language": "en"}, {"id": "263", "text": "hello world", + "language": "en"}, {"id": "264", "text": "hello world", "language": "en"}, {"id": + "265", "text": "hello world", "language": "en"}, {"id": "266", "text": "hello + world", "language": "en"}, {"id": "267", "text": "hello world", "language": + "en"}, {"id": "268", "text": "hello world", "language": "en"}, {"id": "269", + "text": "hello world", "language": "en"}, {"id": "270", "text": "hello world", + "language": "en"}, {"id": "271", "text": "hello world", "language": "en"}, {"id": + "272", "text": "hello world", "language": "en"}, {"id": "273", "text": "hello + world", "language": "en"}, {"id": "274", "text": "hello world", "language": + "en"}, {"id": "275", "text": "hello world", "language": "en"}, {"id": "276", + "text": "hello world", "language": "en"}, {"id": "277", "text": "hello world", + "language": "en"}, {"id": "278", "text": "hello world", "language": "en"}, {"id": + "279", "text": "hello world", "language": "en"}, {"id": "280", "text": "hello + world", "language": "en"}, {"id": "281", "text": "hello world", "language": + "en"}, {"id": "282", "text": "hello world", "language": "en"}, {"id": "283", + "text": "hello world", "language": "en"}, {"id": "284", "text": "hello world", + "language": "en"}, {"id": "285", "text": "hello world", "language": "en"}, {"id": + "286", "text": "hello world", "language": "en"}, {"id": "287", "text": "hello + world", "language": "en"}, {"id": "288", "text": "hello world", "language": + "en"}, {"id": "289", "text": "hello world", "language": "en"}, {"id": "290", + "text": "hello world", "language": "en"}, {"id": "291", "text": "hello world", + "language": "en"}, {"id": "292", "text": "hello world", "language": "en"}, {"id": + "293", "text": "hello world", "language": "en"}, {"id": "294", "text": "hello + world", "language": "en"}, {"id": "295", "text": "hello world", "language": + "en"}, {"id": "296", "text": "hello world", "language": "en"}, {"id": "297", + "text": "hello world", "language": "en"}, {"id": "298", "text": "hello world", + "language": "en"}, {"id": "299", "text": "hello world", "language": "en"}, {"id": + "300", "text": "hello world", "language": "en"}, {"id": "301", "text": "hello + world", "language": "en"}, {"id": "302", "text": "hello world", "language": + "en"}, {"id": "303", "text": "hello world", "language": "en"}, {"id": "304", + "text": "hello world", "language": "en"}, {"id": "305", "text": "hello world", + "language": "en"}, {"id": "306", "text": "hello world", "language": "en"}, {"id": + "307", "text": "hello world", "language": "en"}, {"id": "308", "text": "hello + world", "language": "en"}, {"id": "309", "text": "hello world", "language": + "en"}, {"id": "310", "text": "hello world", "language": "en"}, {"id": "311", + "text": "hello world", "language": "en"}, {"id": "312", "text": "hello world", + "language": "en"}, {"id": "313", "text": "hello world", "language": "en"}, {"id": + "314", "text": "hello world", "language": "en"}, {"id": "315", "text": "hello + world", "language": "en"}, {"id": "316", "text": "hello world", "language": + "en"}, {"id": "317", "text": "hello world", "language": "en"}, {"id": "318", + "text": "hello world", "language": "en"}, {"id": "319", "text": "hello world", + "language": "en"}, {"id": "320", "text": "hello world", "language": "en"}, {"id": + "321", "text": "hello world", "language": "en"}, {"id": "322", "text": "hello + world", "language": "en"}, {"id": "323", "text": "hello world", "language": + "en"}, {"id": "324", "text": "hello world", "language": "en"}, {"id": "325", + "text": "hello world", "language": "en"}, {"id": "326", "text": "hello world", + "language": "en"}, {"id": "327", "text": "hello world", "language": "en"}, {"id": + "328", "text": "hello world", "language": "en"}, {"id": "329", "text": "hello + world", "language": "en"}, {"id": "330", "text": "hello world", "language": + "en"}, {"id": "331", "text": "hello world", "language": "en"}, {"id": "332", + "text": "hello world", "language": "en"}, {"id": "333", "text": "hello world", + "language": "en"}, {"id": "334", "text": "hello world", "language": "en"}, {"id": + "335", "text": "hello world", "language": "en"}, {"id": "336", "text": "hello + world", "language": "en"}, {"id": "337", "text": "hello world", "language": + "en"}, {"id": "338", "text": "hello world", "language": "en"}, {"id": "339", + "text": "hello world", "language": "en"}, {"id": "340", "text": "hello world", + "language": "en"}, {"id": "341", "text": "hello world", "language": "en"}, {"id": + "342", "text": "hello world", "language": "en"}, {"id": "343", "text": "hello + world", "language": "en"}, {"id": "344", "text": "hello world", "language": + "en"}, {"id": "345", "text": "hello world", "language": "en"}, {"id": "346", + "text": "hello world", "language": "en"}, {"id": "347", "text": "hello world", + "language": "en"}, {"id": "348", "text": "hello world", "language": "en"}, {"id": + "349", "text": "hello world", "language": "en"}, {"id": "350", "text": "hello + world", "language": "en"}, {"id": "351", "text": "hello world", "language": + "en"}, {"id": "352", "text": "hello world", "language": "en"}, {"id": "353", + "text": "hello world", "language": "en"}, {"id": "354", "text": "hello world", + "language": "en"}, {"id": "355", "text": "hello world", "language": "en"}, {"id": + "356", "text": "hello world", "language": "en"}, {"id": "357", "text": "hello + world", "language": "en"}, {"id": "358", "text": "hello world", "language": + "en"}, {"id": "359", "text": "hello world", "language": "en"}, {"id": "360", + "text": "hello world", "language": "en"}, {"id": "361", "text": "hello world", + "language": "en"}, {"id": "362", "text": "hello world", "language": "en"}, {"id": + "363", "text": "hello world", "language": "en"}, {"id": "364", "text": "hello + world", "language": "en"}, {"id": "365", "text": "hello world", "language": + "en"}, {"id": "366", "text": "hello world", "language": "en"}, {"id": "367", + "text": "hello world", "language": "en"}, {"id": "368", "text": "hello world", + "language": "en"}, {"id": "369", "text": "hello world", "language": "en"}, {"id": + "370", "text": "hello world", "language": "en"}, {"id": "371", "text": "hello + world", "language": "en"}, {"id": "372", "text": "hello world", "language": + "en"}, {"id": "373", "text": "hello world", "language": "en"}, {"id": "374", + "text": "hello world", "language": "en"}, {"id": "375", "text": "hello world", + "language": "en"}, {"id": "376", "text": "hello world", "language": "en"}, {"id": + "377", "text": "hello world", "language": "en"}, {"id": "378", "text": "hello + world", "language": "en"}, {"id": "379", "text": "hello world", "language": + "en"}, {"id": "380", "text": "hello world", "language": "en"}, {"id": "381", + "text": "hello world", "language": "en"}, {"id": "382", "text": "hello world", + "language": "en"}, {"id": "383", "text": "hello world", "language": "en"}, {"id": + "384", "text": "hello world", "language": "en"}, {"id": "385", "text": "hello + world", "language": "en"}, {"id": "386", "text": "hello world", "language": + "en"}, {"id": "387", "text": "hello world", "language": "en"}, {"id": "388", + "text": "hello world", "language": "en"}, {"id": "389", "text": "hello world", + "language": "en"}, {"id": "390", "text": "hello world", "language": "en"}, {"id": + "391", "text": "hello world", "language": "en"}, {"id": "392", "text": "hello + world", "language": "en"}, {"id": "393", "text": "hello world", "language": + "en"}, {"id": "394", "text": "hello world", "language": "en"}, {"id": "395", + "text": "hello world", "language": "en"}, {"id": "396", "text": "hello world", + "language": "en"}, {"id": "397", "text": "hello world", "language": "en"}, {"id": + "398", "text": "hello world", "language": "en"}, {"id": "399", "text": "hello + world", "language": "en"}, {"id": "400", "text": "hello world", "language": + "en"}, {"id": "401", "text": "hello world", "language": "en"}, {"id": "402", + "text": "hello world", "language": "en"}, {"id": "403", "text": "hello world", + "language": "en"}, {"id": "404", "text": "hello world", "language": "en"}, {"id": + "405", "text": "hello world", "language": "en"}, {"id": "406", "text": "hello + world", "language": "en"}, {"id": "407", "text": "hello world", "language": + "en"}, {"id": "408", "text": "hello world", "language": "en"}, {"id": "409", + "text": "hello world", "language": "en"}, {"id": "410", "text": "hello world", + "language": "en"}, {"id": "411", "text": "hello world", "language": "en"}, {"id": + "412", "text": "hello world", "language": "en"}, {"id": "413", "text": "hello + world", "language": "en"}, {"id": "414", "text": "hello world", "language": + "en"}, {"id": "415", "text": "hello world", "language": "en"}, {"id": "416", + "text": "hello world", "language": "en"}, {"id": "417", "text": "hello world", + "language": "en"}, {"id": "418", "text": "hello world", "language": "en"}, {"id": + "419", "text": "hello world", "language": "en"}, {"id": "420", "text": "hello + world", "language": "en"}, {"id": "421", "text": "hello world", "language": + "en"}, {"id": "422", "text": "hello world", "language": "en"}, {"id": "423", + "text": "hello world", "language": "en"}, {"id": "424", "text": "hello world", + "language": "en"}, {"id": "425", "text": "hello world", "language": "en"}, {"id": + "426", "text": "hello world", "language": "en"}, {"id": "427", "text": "hello + world", "language": "en"}, {"id": "428", "text": "hello world", "language": + "en"}, {"id": "429", "text": "hello world", "language": "en"}, {"id": "430", + "text": "hello world", "language": "en"}, {"id": "431", "text": "hello world", + "language": "en"}, {"id": "432", "text": "hello world", "language": "en"}, {"id": + "433", "text": "hello world", "language": "en"}, {"id": "434", "text": "hello + world", "language": "en"}, {"id": "435", "text": "hello world", "language": + "en"}, {"id": "436", "text": "hello world", "language": "en"}, {"id": "437", + "text": "hello world", "language": "en"}, {"id": "438", "text": "hello world", + "language": "en"}, {"id": "439", "text": "hello world", "language": "en"}, {"id": + "440", "text": "hello world", "language": "en"}, {"id": "441", "text": "hello + world", "language": "en"}, {"id": "442", "text": "hello world", "language": + "en"}, {"id": "443", "text": "hello world", "language": "en"}, {"id": "444", + "text": "hello world", "language": "en"}, {"id": "445", "text": "hello world", + "language": "en"}, {"id": "446", "text": "hello world", "language": "en"}, {"id": + "447", "text": "hello world", "language": "en"}, {"id": "448", "text": "hello + world", "language": "en"}, {"id": "449", "text": "hello world", "language": + "en"}, {"id": "450", "text": "hello world", "language": "en"}, {"id": "451", + "text": "hello world", "language": "en"}, {"id": "452", "text": "hello world", + "language": "en"}, {"id": "453", "text": "hello world", "language": "en"}, {"id": + "454", "text": "hello world", "language": "en"}, {"id": "455", "text": "hello + world", "language": "en"}, {"id": "456", "text": "hello world", "language": + "en"}, {"id": "457", "text": "hello world", "language": "en"}, {"id": "458", + "text": "hello world", "language": "en"}, {"id": "459", "text": "hello world", + "language": "en"}, {"id": "460", "text": "hello world", "language": "en"}, {"id": + "461", "text": "hello world", "language": "en"}, {"id": "462", "text": "hello + world", "language": "en"}, {"id": "463", "text": "hello world", "language": + "en"}, {"id": "464", "text": "hello world", "language": "en"}, {"id": "465", + "text": "hello world", "language": "en"}, {"id": "466", "text": "hello world", + "language": "en"}, {"id": "467", "text": "hello world", "language": "en"}, {"id": + "468", "text": "hello world", "language": "en"}, {"id": "469", "text": "hello + world", "language": "en"}, {"id": "470", "text": "hello world", "language": + "en"}, {"id": "471", "text": "hello world", "language": "en"}, {"id": "472", + "text": "hello world", "language": "en"}, {"id": "473", "text": "hello world", + "language": "en"}, {"id": "474", "text": "hello world", "language": "en"}, {"id": + "475", "text": "hello world", "language": "en"}, {"id": "476", "text": "hello + world", "language": "en"}, {"id": "477", "text": "hello world", "language": + "en"}, {"id": "478", "text": "hello world", "language": "en"}, {"id": "479", + "text": "hello world", "language": "en"}, {"id": "480", "text": "hello world", + "language": "en"}, {"id": "481", "text": "hello world", "language": "en"}, {"id": + "482", "text": "hello world", "language": "en"}, {"id": "483", "text": "hello + world", "language": "en"}, {"id": "484", "text": "hello world", "language": + "en"}, {"id": "485", "text": "hello world", "language": "en"}, {"id": "486", + "text": "hello world", "language": "en"}, {"id": "487", "text": "hello world", + "language": "en"}, {"id": "488", "text": "hello world", "language": "en"}, {"id": + "489", "text": "hello world", "language": "en"}, {"id": "490", "text": "hello + world", "language": "en"}, {"id": "491", "text": "hello world", "language": + "en"}, {"id": "492", "text": "hello world", "language": "en"}, {"id": "493", + "text": "hello world", "language": "en"}, {"id": "494", "text": "hello world", + "language": "en"}, {"id": "495", "text": "hello world", "language": "en"}, {"id": + "496", "text": "hello world", "language": "en"}, {"id": "497", "text": "hello + world", "language": "en"}, {"id": "498", "text": "hello world", "language": + "en"}, {"id": "499", "text": "hello world", "language": "en"}, {"id": "500", + "text": "hello world", "language": "en"}, {"id": "501", "text": "hello world", + "language": "en"}, {"id": "502", "text": "hello world", "language": "en"}, {"id": + "503", "text": "hello world", "language": "en"}, {"id": "504", "text": "hello + world", "language": "en"}, {"id": "505", "text": "hello world", "language": + "en"}, {"id": "506", "text": "hello world", "language": "en"}, {"id": "507", + "text": "hello world", "language": "en"}, {"id": "508", "text": "hello world", + "language": "en"}, {"id": "509", "text": "hello world", "language": "en"}, {"id": + "510", "text": "hello world", "language": "en"}, {"id": "511", "text": "hello + world", "language": "en"}, {"id": "512", "text": "hello world", "language": + "en"}, {"id": "513", "text": "hello world", "language": "en"}, {"id": "514", + "text": "hello world", "language": "en"}, {"id": "515", "text": "hello world", + "language": "en"}, {"id": "516", "text": "hello world", "language": "en"}, {"id": + "517", "text": "hello world", "language": "en"}, {"id": "518", "text": "hello + world", "language": "en"}, {"id": "519", "text": "hello world", "language": + "en"}, {"id": "520", "text": "hello world", "language": "en"}, {"id": "521", + "text": "hello world", "language": "en"}, {"id": "522", "text": "hello world", + "language": "en"}, {"id": "523", "text": "hello world", "language": "en"}, {"id": + "524", "text": "hello world", "language": "en"}, {"id": "525", "text": "hello + world", "language": "en"}, {"id": "526", "text": "hello world", "language": + "en"}, {"id": "527", "text": "hello world", "language": "en"}, {"id": "528", + "text": "hello world", "language": "en"}, {"id": "529", "text": "hello world", + "language": "en"}, {"id": "530", "text": "hello world", "language": "en"}, {"id": + "531", "text": "hello world", "language": "en"}, {"id": "532", "text": "hello + world", "language": "en"}, {"id": "533", "text": "hello world", "language": + "en"}, {"id": "534", "text": "hello world", "language": "en"}, {"id": "535", + "text": "hello world", "language": "en"}, {"id": "536", "text": "hello world", + "language": "en"}, {"id": "537", "text": "hello world", "language": "en"}, {"id": + "538", "text": "hello world", "language": "en"}, {"id": "539", "text": "hello + world", "language": "en"}, {"id": "540", "text": "hello world", "language": + "en"}, {"id": "541", "text": "hello world", "language": "en"}, {"id": "542", + "text": "hello world", "language": "en"}, {"id": "543", "text": "hello world", + "language": "en"}, {"id": "544", "text": "hello world", "language": "en"}, {"id": + "545", "text": "hello world", "language": "en"}, {"id": "546", "text": "hello + world", "language": "en"}, {"id": "547", "text": "hello world", "language": + "en"}, {"id": "548", "text": "hello world", "language": "en"}, {"id": "549", + "text": "hello world", "language": "en"}, {"id": "550", "text": "hello world", + "language": "en"}, {"id": "551", "text": "hello world", "language": "en"}, {"id": + "552", "text": "hello world", "language": "en"}, {"id": "553", "text": "hello + world", "language": "en"}, {"id": "554", "text": "hello world", "language": + "en"}, {"id": "555", "text": "hello world", "language": "en"}, {"id": "556", + "text": "hello world", "language": "en"}, {"id": "557", "text": "hello world", + "language": "en"}, {"id": "558", "text": "hello world", "language": "en"}, {"id": + "559", "text": "hello world", "language": "en"}, {"id": "560", "text": "hello + world", "language": "en"}, {"id": "561", "text": "hello world", "language": + "en"}, {"id": "562", "text": "hello world", "language": "en"}, {"id": "563", + "text": "hello world", "language": "en"}, {"id": "564", "text": "hello world", + "language": "en"}, {"id": "565", "text": "hello world", "language": "en"}, {"id": + "566", "text": "hello world", "language": "en"}, {"id": "567", "text": "hello + world", "language": "en"}, {"id": "568", "text": "hello world", "language": + "en"}, {"id": "569", "text": "hello world", "language": "en"}, {"id": "570", + "text": "hello world", "language": "en"}, {"id": "571", "text": "hello world", + "language": "en"}, {"id": "572", "text": "hello world", "language": "en"}, {"id": + "573", "text": "hello world", "language": "en"}, {"id": "574", "text": "hello + world", "language": "en"}, {"id": "575", "text": "hello world", "language": + "en"}, {"id": "576", "text": "hello world", "language": "en"}, {"id": "577", + "text": "hello world", "language": "en"}, {"id": "578", "text": "hello world", + "language": "en"}, {"id": "579", "text": "hello world", "language": "en"}, {"id": + "580", "text": "hello world", "language": "en"}, {"id": "581", "text": "hello + world", "language": "en"}, {"id": "582", "text": "hello world", "language": + "en"}, {"id": "583", "text": "hello world", "language": "en"}, {"id": "584", + "text": "hello world", "language": "en"}, {"id": "585", "text": "hello world", + "language": "en"}, {"id": "586", "text": "hello world", "language": "en"}, {"id": + "587", "text": "hello world", "language": "en"}, {"id": "588", "text": "hello + world", "language": "en"}, {"id": "589", "text": "hello world", "language": + "en"}, {"id": "590", "text": "hello world", "language": "en"}, {"id": "591", + "text": "hello world", "language": "en"}, {"id": "592", "text": "hello world", + "language": "en"}, {"id": "593", "text": "hello world", "language": "en"}, {"id": + "594", "text": "hello world", "language": "en"}, {"id": "595", "text": "hello + world", "language": "en"}, {"id": "596", "text": "hello world", "language": + "en"}, {"id": "597", "text": "hello world", "language": "en"}, {"id": "598", + "text": "hello world", "language": "en"}, {"id": "599", "text": "hello world", + "language": "en"}, {"id": "600", "text": "hello world", "language": "en"}, {"id": + "601", "text": "hello world", "language": "en"}, {"id": "602", "text": "hello + world", "language": "en"}, {"id": "603", "text": "hello world", "language": + "en"}, {"id": "604", "text": "hello world", "language": "en"}, {"id": "605", + "text": "hello world", "language": "en"}, {"id": "606", "text": "hello world", + "language": "en"}, {"id": "607", "text": "hello world", "language": "en"}, {"id": + "608", "text": "hello world", "language": "en"}, {"id": "609", "text": "hello + world", "language": "en"}, {"id": "610", "text": "hello world", "language": + "en"}, {"id": "611", "text": "hello world", "language": "en"}, {"id": "612", + "text": "hello world", "language": "en"}, {"id": "613", "text": "hello world", + "language": "en"}, {"id": "614", "text": "hello world", "language": "en"}, {"id": + "615", "text": "hello world", "language": "en"}, {"id": "616", "text": "hello + world", "language": "en"}, {"id": "617", "text": "hello world", "language": + "en"}, {"id": "618", "text": "hello world", "language": "en"}, {"id": "619", + "text": "hello world", "language": "en"}, {"id": "620", "text": "hello world", + "language": "en"}, {"id": "621", "text": "hello world", "language": "en"}, {"id": + "622", "text": "hello world", "language": "en"}, {"id": "623", "text": "hello + world", "language": "en"}, {"id": "624", "text": "hello world", "language": + "en"}, {"id": "625", "text": "hello world", "language": "en"}, {"id": "626", + "text": "hello world", "language": "en"}, {"id": "627", "text": "hello world", + "language": "en"}, {"id": "628", "text": "hello world", "language": "en"}, {"id": + "629", "text": "hello world", "language": "en"}, {"id": "630", "text": "hello + world", "language": "en"}, {"id": "631", "text": "hello world", "language": + "en"}, {"id": "632", "text": "hello world", "language": "en"}, {"id": "633", + "text": "hello world", "language": "en"}, {"id": "634", "text": "hello world", + "language": "en"}, {"id": "635", "text": "hello world", "language": "en"}, {"id": + "636", "text": "hello world", "language": "en"}, {"id": "637", "text": "hello + world", "language": "en"}, {"id": "638", "text": "hello world", "language": + "en"}, {"id": "639", "text": "hello world", "language": "en"}, {"id": "640", + "text": "hello world", "language": "en"}, {"id": "641", "text": "hello world", + "language": "en"}, {"id": "642", "text": "hello world", "language": "en"}, {"id": + "643", "text": "hello world", "language": "en"}, {"id": "644", "text": "hello + world", "language": "en"}, {"id": "645", "text": "hello world", "language": + "en"}, {"id": "646", "text": "hello world", "language": "en"}, {"id": "647", + "text": "hello world", "language": "en"}, {"id": "648", "text": "hello world", + "language": "en"}, {"id": "649", "text": "hello world", "language": "en"}, {"id": + "650", "text": "hello world", "language": "en"}, {"id": "651", "text": "hello + world", "language": "en"}, {"id": "652", "text": "hello world", "language": + "en"}, {"id": "653", "text": "hello world", "language": "en"}, {"id": "654", + "text": "hello world", "language": "en"}, {"id": "655", "text": "hello world", + "language": "en"}, {"id": "656", "text": "hello world", "language": "en"}, {"id": + "657", "text": "hello world", "language": "en"}, {"id": "658", "text": "hello + world", "language": "en"}, {"id": "659", "text": "hello world", "language": + "en"}, {"id": "660", "text": "hello world", "language": "en"}, {"id": "661", + "text": "hello world", "language": "en"}, {"id": "662", "text": "hello world", + "language": "en"}, {"id": "663", "text": "hello world", "language": "en"}, {"id": + "664", "text": "hello world", "language": "en"}, {"id": "665", "text": "hello + world", "language": "en"}, {"id": "666", "text": "hello world", "language": + "en"}, {"id": "667", "text": "hello world", "language": "en"}, {"id": "668", + "text": "hello world", "language": "en"}, {"id": "669", "text": "hello world", + "language": "en"}, {"id": "670", "text": "hello world", "language": "en"}, {"id": + "671", "text": "hello world", "language": "en"}, {"id": "672", "text": "hello + world", "language": "en"}, {"id": "673", "text": "hello world", "language": + "en"}, {"id": "674", "text": "hello world", "language": "en"}, {"id": "675", + "text": "hello world", "language": "en"}, {"id": "676", "text": "hello world", + "language": "en"}, {"id": "677", "text": "hello world", "language": "en"}, {"id": + "678", "text": "hello world", "language": "en"}, {"id": "679", "text": "hello + world", "language": "en"}, {"id": "680", "text": "hello world", "language": + "en"}, {"id": "681", "text": "hello world", "language": "en"}, {"id": "682", + "text": "hello world", "language": "en"}, {"id": "683", "text": "hello world", + "language": "en"}, {"id": "684", "text": "hello world", "language": "en"}, {"id": + "685", "text": "hello world", "language": "en"}, {"id": "686", "text": "hello + world", "language": "en"}, {"id": "687", "text": "hello world", "language": + "en"}, {"id": "688", "text": "hello world", "language": "en"}, {"id": "689", + "text": "hello world", "language": "en"}, {"id": "690", "text": "hello world", + "language": "en"}, {"id": "691", "text": "hello world", "language": "en"}, {"id": + "692", "text": "hello world", "language": "en"}, {"id": "693", "text": "hello + world", "language": "en"}, {"id": "694", "text": "hello world", "language": + "en"}, {"id": "695", "text": "hello world", "language": "en"}, {"id": "696", + "text": "hello world", "language": "en"}, {"id": "697", "text": "hello world", + "language": "en"}, {"id": "698", "text": "hello world", "language": "en"}, {"id": + "699", "text": "hello world", "language": "en"}, {"id": "700", "text": "hello + world", "language": "en"}, {"id": "701", "text": "hello world", "language": + "en"}, {"id": "702", "text": "hello world", "language": "en"}, {"id": "703", + "text": "hello world", "language": "en"}, {"id": "704", "text": "hello world", + "language": "en"}, {"id": "705", "text": "hello world", "language": "en"}, {"id": + "706", "text": "hello world", "language": "en"}, {"id": "707", "text": "hello + world", "language": "en"}, {"id": "708", "text": "hello world", "language": + "en"}, {"id": "709", "text": "hello world", "language": "en"}, {"id": "710", + "text": "hello world", "language": "en"}, {"id": "711", "text": "hello world", + "language": "en"}, {"id": "712", "text": "hello world", "language": "en"}, {"id": + "713", "text": "hello world", "language": "en"}, {"id": "714", "text": "hello + world", "language": "en"}, {"id": "715", "text": "hello world", "language": + "en"}, {"id": "716", "text": "hello world", "language": "en"}, {"id": "717", + "text": "hello world", "language": "en"}, {"id": "718", "text": "hello world", + "language": "en"}, {"id": "719", "text": "hello world", "language": "en"}, {"id": + "720", "text": "hello world", "language": "en"}, {"id": "721", "text": "hello + world", "language": "en"}, {"id": "722", "text": "hello world", "language": + "en"}, {"id": "723", "text": "hello world", "language": "en"}, {"id": "724", + "text": "hello world", "language": "en"}, {"id": "725", "text": "hello world", + "language": "en"}, {"id": "726", "text": "hello world", "language": "en"}, {"id": + "727", "text": "hello world", "language": "en"}, {"id": "728", "text": "hello + world", "language": "en"}, {"id": "729", "text": "hello world", "language": + "en"}, {"id": "730", "text": "hello world", "language": "en"}, {"id": "731", + "text": "hello world", "language": "en"}, {"id": "732", "text": "hello world", + "language": "en"}, {"id": "733", "text": "hello world", "language": "en"}, {"id": + "734", "text": "hello world", "language": "en"}, {"id": "735", "text": "hello + world", "language": "en"}, {"id": "736", "text": "hello world", "language": + "en"}, {"id": "737", "text": "hello world", "language": "en"}, {"id": "738", + "text": "hello world", "language": "en"}, {"id": "739", "text": "hello world", + "language": "en"}, {"id": "740", "text": "hello world", "language": "en"}, {"id": + "741", "text": "hello world", "language": "en"}, {"id": "742", "text": "hello + world", "language": "en"}, {"id": "743", "text": "hello world", "language": + "en"}, {"id": "744", "text": "hello world", "language": "en"}, {"id": "745", + "text": "hello world", "language": "en"}, {"id": "746", "text": "hello world", + "language": "en"}, {"id": "747", "text": "hello world", "language": "en"}, {"id": + "748", "text": "hello world", "language": "en"}, {"id": "749", "text": "hello + world", "language": "en"}, {"id": "750", "text": "hello world", "language": + "en"}, {"id": "751", "text": "hello world", "language": "en"}, {"id": "752", + "text": "hello world", "language": "en"}, {"id": "753", "text": "hello world", + "language": "en"}, {"id": "754", "text": "hello world", "language": "en"}, {"id": + "755", "text": "hello world", "language": "en"}, {"id": "756", "text": "hello + world", "language": "en"}, {"id": "757", "text": "hello world", "language": + "en"}, {"id": "758", "text": "hello world", "language": "en"}, {"id": "759", + "text": "hello world", "language": "en"}, {"id": "760", "text": "hello world", + "language": "en"}, {"id": "761", "text": "hello world", "language": "en"}, {"id": + "762", "text": "hello world", "language": "en"}, {"id": "763", "text": "hello + world", "language": "en"}, {"id": "764", "text": "hello world", "language": + "en"}, {"id": "765", "text": "hello world", "language": "en"}, {"id": "766", + "text": "hello world", "language": "en"}, {"id": "767", "text": "hello world", + "language": "en"}, {"id": "768", "text": "hello world", "language": "en"}, {"id": + "769", "text": "hello world", "language": "en"}, {"id": "770", "text": "hello + world", "language": "en"}, {"id": "771", "text": "hello world", "language": + "en"}, {"id": "772", "text": "hello world", "language": "en"}, {"id": "773", + "text": "hello world", "language": "en"}, {"id": "774", "text": "hello world", + "language": "en"}, {"id": "775", "text": "hello world", "language": "en"}, {"id": + "776", "text": "hello world", "language": "en"}, {"id": "777", "text": "hello + world", "language": "en"}, {"id": "778", "text": "hello world", "language": + "en"}, {"id": "779", "text": "hello world", "language": "en"}, {"id": "780", + "text": "hello world", "language": "en"}, {"id": "781", "text": "hello world", + "language": "en"}, {"id": "782", "text": "hello world", "language": "en"}, {"id": + "783", "text": "hello world", "language": "en"}, {"id": "784", "text": "hello + world", "language": "en"}, {"id": "785", "text": "hello world", "language": + "en"}, {"id": "786", "text": "hello world", "language": "en"}, {"id": "787", + "text": "hello world", "language": "en"}, {"id": "788", "text": "hello world", + "language": "en"}, {"id": "789", "text": "hello world", "language": "en"}, {"id": + "790", "text": "hello world", "language": "en"}, {"id": "791", "text": "hello + world", "language": "en"}, {"id": "792", "text": "hello world", "language": + "en"}, {"id": "793", "text": "hello world", "language": "en"}, {"id": "794", + "text": "hello world", "language": "en"}, {"id": "795", "text": "hello world", + "language": "en"}, {"id": "796", "text": "hello world", "language": "en"}, {"id": + "797", "text": "hello world", "language": "en"}, {"id": "798", "text": "hello + world", "language": "en"}, {"id": "799", "text": "hello world", "language": + "en"}, {"id": "800", "text": "hello world", "language": "en"}, {"id": "801", + "text": "hello world", "language": "en"}, {"id": "802", "text": "hello world", + "language": "en"}, {"id": "803", "text": "hello world", "language": "en"}, {"id": + "804", "text": "hello world", "language": "en"}, {"id": "805", "text": "hello + world", "language": "en"}, {"id": "806", "text": "hello world", "language": + "en"}, {"id": "807", "text": "hello world", "language": "en"}, {"id": "808", + "text": "hello world", "language": "en"}, {"id": "809", "text": "hello world", + "language": "en"}, {"id": "810", "text": "hello world", "language": "en"}, {"id": + "811", "text": "hello world", "language": "en"}, {"id": "812", "text": "hello + world", "language": "en"}, {"id": "813", "text": "hello world", "language": + "en"}, {"id": "814", "text": "hello world", "language": "en"}, {"id": "815", + "text": "hello world", "language": "en"}, {"id": "816", "text": "hello world", + "language": "en"}, {"id": "817", "text": "hello world", "language": "en"}, {"id": + "818", "text": "hello world", "language": "en"}, {"id": "819", "text": "hello + world", "language": "en"}, {"id": "820", "text": "hello world", "language": + "en"}, {"id": "821", "text": "hello world", "language": "en"}, {"id": "822", + "text": "hello world", "language": "en"}, {"id": "823", "text": "hello world", + "language": "en"}, {"id": "824", "text": "hello world", "language": "en"}, {"id": + "825", "text": "hello world", "language": "en"}, {"id": "826", "text": "hello + world", "language": "en"}, {"id": "827", "text": "hello world", "language": + "en"}, {"id": "828", "text": "hello world", "language": "en"}, {"id": "829", + "text": "hello world", "language": "en"}, {"id": "830", "text": "hello world", + "language": "en"}, {"id": "831", "text": "hello world", "language": "en"}, {"id": + "832", "text": "hello world", "language": "en"}, {"id": "833", "text": "hello + world", "language": "en"}, {"id": "834", "text": "hello world", "language": + "en"}, {"id": "835", "text": "hello world", "language": "en"}, {"id": "836", + "text": "hello world", "language": "en"}, {"id": "837", "text": "hello world", + "language": "en"}, {"id": "838", "text": "hello world", "language": "en"}, {"id": + "839", "text": "hello world", "language": "en"}, {"id": "840", "text": "hello + world", "language": "en"}, {"id": "841", "text": "hello world", "language": + "en"}, {"id": "842", "text": "hello world", "language": "en"}, {"id": "843", + "text": "hello world", "language": "en"}, {"id": "844", "text": "hello world", + "language": "en"}, {"id": "845", "text": "hello world", "language": "en"}, {"id": + "846", "text": "hello world", "language": "en"}, {"id": "847", "text": "hello + world", "language": "en"}, {"id": "848", "text": "hello world", "language": + "en"}, {"id": "849", "text": "hello world", "language": "en"}, {"id": "850", + "text": "hello world", "language": "en"}, {"id": "851", "text": "hello world", + "language": "en"}, {"id": "852", "text": "hello world", "language": "en"}, {"id": + "853", "text": "hello world", "language": "en"}, {"id": "854", "text": "hello + world", "language": "en"}, {"id": "855", "text": "hello world", "language": + "en"}, {"id": "856", "text": "hello world", "language": "en"}, {"id": "857", + "text": "hello world", "language": "en"}, {"id": "858", "text": "hello world", + "language": "en"}, {"id": "859", "text": "hello world", "language": "en"}, {"id": + "860", "text": "hello world", "language": "en"}, {"id": "861", "text": "hello + world", "language": "en"}, {"id": "862", "text": "hello world", "language": + "en"}, {"id": "863", "text": "hello world", "language": "en"}, {"id": "864", + "text": "hello world", "language": "en"}, {"id": "865", "text": "hello world", + "language": "en"}, {"id": "866", "text": "hello world", "language": "en"}, {"id": + "867", "text": "hello world", "language": "en"}, {"id": "868", "text": "hello + world", "language": "en"}, {"id": "869", "text": "hello world", "language": + "en"}, {"id": "870", "text": "hello world", "language": "en"}, {"id": "871", + "text": "hello world", "language": "en"}, {"id": "872", "text": "hello world", + "language": "en"}, {"id": "873", "text": "hello world", "language": "en"}, {"id": + "874", "text": "hello world", "language": "en"}, {"id": "875", "text": "hello + world", "language": "en"}, {"id": "876", "text": "hello world", "language": + "en"}, {"id": "877", "text": "hello world", "language": "en"}, {"id": "878", + "text": "hello world", "language": "en"}, {"id": "879", "text": "hello world", + "language": "en"}, {"id": "880", "text": "hello world", "language": "en"}, {"id": + "881", "text": "hello world", "language": "en"}, {"id": "882", "text": "hello + world", "language": "en"}, {"id": "883", "text": "hello world", "language": + "en"}, {"id": "884", "text": "hello world", "language": "en"}, {"id": "885", + "text": "hello world", "language": "en"}, {"id": "886", "text": "hello world", + "language": "en"}, {"id": "887", "text": "hello world", "language": "en"}, {"id": + "888", "text": "hello world", "language": "en"}, {"id": "889", "text": "hello + world", "language": "en"}, {"id": "890", "text": "hello world", "language": + "en"}, {"id": "891", "text": "hello world", "language": "en"}, {"id": "892", + "text": "hello world", "language": "en"}, {"id": "893", "text": "hello world", + "language": "en"}, {"id": "894", "text": "hello world", "language": "en"}, {"id": + "895", "text": "hello world", "language": "en"}, {"id": "896", "text": "hello + world", "language": "en"}, {"id": "897", "text": "hello world", "language": + "en"}, {"id": "898", "text": "hello world", "language": "en"}, {"id": "899", + "text": "hello world", "language": "en"}, {"id": "900", "text": "hello world", + "language": "en"}, {"id": "901", "text": "hello world", "language": "en"}, {"id": + "902", "text": "hello world", "language": "en"}, {"id": "903", "text": "hello + world", "language": "en"}, {"id": "904", "text": "hello world", "language": + "en"}, {"id": "905", "text": "hello world", "language": "en"}, {"id": "906", + "text": "hello world", "language": "en"}, {"id": "907", "text": "hello world", + "language": "en"}, {"id": "908", "text": "hello world", "language": "en"}, {"id": + "909", "text": "hello world", "language": "en"}, {"id": "910", "text": "hello + world", "language": "en"}, {"id": "911", "text": "hello world", "language": + "en"}, {"id": "912", "text": "hello world", "language": "en"}, {"id": "913", + "text": "hello world", "language": "en"}, {"id": "914", "text": "hello world", + "language": "en"}, {"id": "915", "text": "hello world", "language": "en"}, {"id": + "916", "text": "hello world", "language": "en"}, {"id": "917", "text": "hello + world", "language": "en"}, {"id": "918", "text": "hello world", "language": + "en"}, {"id": "919", "text": "hello world", "language": "en"}, {"id": "920", + "text": "hello world", "language": "en"}, {"id": "921", "text": "hello world", + "language": "en"}, {"id": "922", "text": "hello world", "language": "en"}, {"id": + "923", "text": "hello world", "language": "en"}, {"id": "924", "text": "hello + world", "language": "en"}, {"id": "925", "text": "hello world", "language": + "en"}, {"id": "926", "text": "hello world", "language": "en"}, {"id": "927", + "text": "hello world", "language": "en"}, {"id": "928", "text": "hello world", + "language": "en"}, {"id": "929", "text": "hello world", "language": "en"}, {"id": + "930", "text": "hello world", "language": "en"}, {"id": "931", "text": "hello + world", "language": "en"}, {"id": "932", "text": "hello world", "language": + "en"}, {"id": "933", "text": "hello world", "language": "en"}, {"id": "934", + "text": "hello world", "language": "en"}, {"id": "935", "text": "hello world", + "language": "en"}, {"id": "936", "text": "hello world", "language": "en"}, {"id": + "937", "text": "hello world", "language": "en"}, {"id": "938", "text": "hello + world", "language": "en"}, {"id": "939", "text": "hello world", "language": + "en"}, {"id": "940", "text": "hello world", "language": "en"}, {"id": "941", + "text": "hello world", "language": "en"}, {"id": "942", "text": "hello world", + "language": "en"}, {"id": "943", "text": "hello world", "language": "en"}, {"id": + "944", "text": "hello world", "language": "en"}, {"id": "945", "text": "hello + world", "language": "en"}, {"id": "946", "text": "hello world", "language": + "en"}, {"id": "947", "text": "hello world", "language": "en"}, {"id": "948", + "text": "hello world", "language": "en"}, {"id": "949", "text": "hello world", + "language": "en"}, {"id": "950", "text": "hello world", "language": "en"}, {"id": + "951", "text": "hello world", "language": "en"}, {"id": "952", "text": "hello + world", "language": "en"}, {"id": "953", "text": "hello world", "language": + "en"}, {"id": "954", "text": "hello world", "language": "en"}, {"id": "955", + "text": "hello world", "language": "en"}, {"id": "956", "text": "hello world", + "language": "en"}, {"id": "957", "text": "hello world", "language": "en"}, {"id": + "958", "text": "hello world", "language": "en"}, {"id": "959", "text": "hello + world", "language": "en"}, {"id": "960", "text": "hello world", "language": + "en"}, {"id": "961", "text": "hello world", "language": "en"}, {"id": "962", + "text": "hello world", "language": "en"}, {"id": "963", "text": "hello world", + "language": "en"}, {"id": "964", "text": "hello world", "language": "en"}, {"id": + "965", "text": "hello world", "language": "en"}, {"id": "966", "text": "hello + world", "language": "en"}, {"id": "967", "text": "hello world", "language": + "en"}, {"id": "968", "text": "hello world", "language": "en"}, {"id": "969", + "text": "hello world", "language": "en"}, {"id": "970", "text": "hello world", + "language": "en"}, {"id": "971", "text": "hello world", "language": "en"}, {"id": + "972", "text": "hello world", "language": "en"}, {"id": "973", "text": "hello + world", "language": "en"}, {"id": "974", "text": "hello world", "language": + "en"}, {"id": "975", "text": "hello world", "language": "en"}, {"id": "976", + "text": "hello world", "language": "en"}, {"id": "977", "text": "hello world", + "language": "en"}, {"id": "978", "text": "hello world", "language": "en"}, {"id": + "979", "text": "hello world", "language": "en"}, {"id": "980", "text": "hello + world", "language": "en"}, {"id": "981", "text": "hello world", "language": + "en"}, {"id": "982", "text": "hello world", "language": "en"}, {"id": "983", + "text": "hello world", "language": "en"}, {"id": "984", "text": "hello world", + "language": "en"}, {"id": "985", "text": "hello world", "language": "en"}, {"id": + "986", "text": "hello world", "language": "en"}, {"id": "987", "text": "hello + world", "language": "en"}, {"id": "988", "text": "hello world", "language": + "en"}, {"id": "989", "text": "hello world", "language": "en"}, {"id": "990", + "text": "hello world", "language": "en"}, {"id": "991", "text": "hello world", + "language": "en"}, {"id": "992", "text": "hello world", "language": "en"}, {"id": + "993", "text": "hello world", "language": "en"}, {"id": "994", "text": "hello + world", "language": "en"}, {"id": "995", "text": "hello world", "language": + "en"}, {"id": "996", "text": "hello world", "language": "en"}, {"id": "997", + "text": "hello world", "language": "en"}, {"id": "998", "text": "hello world", + "language": "en"}, {"id": "999", "text": "hello world", "language": "en"}, {"id": + "1000", "text": "hello world", "language": "en"}, {"id": "1001", "text": "hello + world", "language": "en"}, {"id": "1002", "text": "hello world", "language": + "en"}, {"id": "1003", "text": "hello world", "language": "en"}, {"id": "1004", + "text": "hello world", "language": "en"}, {"id": "1005", "text": "hello world", + "language": "en"}, {"id": "1006", "text": "hello world", "language": "en"}, + {"id": "1007", "text": "hello world", "language": "en"}, {"id": "1008", "text": + "hello world", "language": "en"}, {"id": "1009", "text": "hello world", "language": + "en"}, {"id": "1010", "text": "hello world", "language": "en"}, {"id": "1011", + "text": "hello world", "language": "en"}, {"id": "1012", "text": "hello world", + "language": "en"}, {"id": "1013", "text": "hello world", "language": "en"}, + {"id": "1014", "text": "hello world", "language": "en"}, {"id": "1015", "text": + "hello world", "language": "en"}, {"id": "1016", "text": "hello world", "language": + "en"}, {"id": "1017", "text": "hello world", "language": "en"}, {"id": "1018", + "text": "hello world", "language": "en"}, {"id": "1019", "text": "hello world", + "language": "en"}, {"id": "1020", "text": "hello world", "language": "en"}, + {"id": "1021", "text": "hello world", "language": "en"}, {"id": "1022", "text": + "hello world", "language": "en"}, {"id": "1023", "text": "hello world", "language": + "en"}, {"id": "1024", "text": "hello world", "language": "en"}, {"id": "1025", + "text": "hello world", "language": "en"}, {"id": "1026", "text": "hello world", + "language": "en"}, {"id": "1027", "text": "hello world", "language": "en"}, + {"id": "1028", "text": "hello world", "language": "en"}, {"id": "1029", "text": + "hello world", "language": "en"}, {"id": "1030", "text": "hello world", "language": + "en"}, {"id": "1031", "text": "hello world", "language": "en"}, {"id": "1032", + "text": "hello world", "language": "en"}, {"id": "1033", "text": "hello world", + "language": "en"}, {"id": "1034", "text": "hello world", "language": "en"}, + {"id": "1035", "text": "hello world", "language": "en"}, {"id": "1036", "text": + "hello world", "language": "en"}, {"id": "1037", "text": "hello world", "language": + "en"}, {"id": "1038", "text": "hello world", "language": "en"}, {"id": "1039", + "text": "hello world", "language": "en"}, {"id": "1040", "text": "hello world", + "language": "en"}, {"id": "1041", "text": "hello world", "language": "en"}, + {"id": "1042", "text": "hello world", "language": "en"}, {"id": "1043", "text": + "hello world", "language": "en"}, {"id": "1044", "text": "hello world", "language": + "en"}, {"id": "1045", "text": "hello world", "language": "en"}, {"id": "1046", + "text": "hello world", "language": "en"}, {"id": "1047", "text": "hello world", + "language": "en"}, {"id": "1048", "text": "hello world", "language": "en"}, + {"id": "1049", "text": "hello world", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '58755' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch + request contains too many records. Max 1000 records are permitted."}}}' + headers: + apim-request-id: 995c6d23-0bc5-4396-b3af-96c997a2e97c + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:46 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '11' + status: + code: 400 + message: Bad Request + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_batch_size_over_limit_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_batch_size_over_limit_error.yaml new file mode 100644 index 000000000000..3f1f1d23f729 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_batch_size_over_limit_error.yaml @@ -0,0 +1,741 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "hello world", "language": "en"}, {"id": + "1", "text": "hello world", "language": "en"}, {"id": "2", "text": "hello world", + "language": "en"}, {"id": "3", "text": "hello world", "language": "en"}, {"id": + "4", "text": "hello world", "language": "en"}, {"id": "5", "text": "hello world", + "language": "en"}, {"id": "6", "text": "hello world", "language": "en"}, {"id": + "7", "text": "hello world", "language": "en"}, {"id": "8", "text": "hello world", + "language": "en"}, {"id": "9", "text": "hello world", "language": "en"}, {"id": + "10", "text": "hello world", "language": "en"}, {"id": "11", "text": "hello + world", "language": "en"}, {"id": "12", "text": "hello world", "language": "en"}, + {"id": "13", "text": "hello world", "language": "en"}, {"id": "14", "text": + "hello world", "language": "en"}, {"id": "15", "text": "hello world", "language": + "en"}, {"id": "16", "text": "hello world", "language": "en"}, {"id": "17", "text": + "hello world", "language": "en"}, {"id": "18", "text": "hello world", "language": + "en"}, {"id": "19", "text": "hello world", "language": "en"}, {"id": "20", "text": + "hello world", "language": "en"}, {"id": "21", "text": "hello world", "language": + "en"}, {"id": "22", "text": "hello world", "language": "en"}, {"id": "23", "text": + "hello world", "language": "en"}, {"id": "24", "text": "hello world", "language": + "en"}, {"id": "25", "text": "hello world", "language": "en"}, {"id": "26", "text": + "hello world", "language": "en"}, {"id": "27", "text": "hello world", "language": + "en"}, {"id": "28", "text": "hello world", "language": "en"}, {"id": "29", "text": + "hello world", "language": "en"}, {"id": "30", "text": "hello world", "language": + "en"}, {"id": "31", "text": "hello world", "language": "en"}, {"id": "32", "text": + "hello world", "language": "en"}, {"id": "33", "text": "hello world", "language": + "en"}, {"id": "34", "text": "hello world", "language": "en"}, {"id": "35", "text": + "hello world", "language": "en"}, {"id": "36", "text": "hello world", "language": + "en"}, {"id": "37", "text": "hello world", "language": "en"}, {"id": "38", "text": + "hello world", "language": "en"}, {"id": "39", "text": "hello world", "language": + "en"}, {"id": "40", "text": "hello world", "language": "en"}, {"id": "41", "text": + "hello world", "language": "en"}, {"id": "42", "text": "hello world", "language": + "en"}, {"id": "43", "text": "hello world", "language": "en"}, {"id": "44", "text": + "hello world", "language": "en"}, {"id": "45", "text": "hello world", "language": + "en"}, {"id": "46", "text": "hello world", "language": "en"}, {"id": "47", "text": + "hello world", "language": "en"}, {"id": "48", "text": "hello world", "language": + "en"}, {"id": "49", "text": "hello world", "language": "en"}, {"id": "50", "text": + "hello world", "language": "en"}, {"id": "51", "text": "hello world", "language": + "en"}, {"id": "52", "text": "hello world", "language": "en"}, {"id": "53", "text": + "hello world", "language": "en"}, {"id": "54", "text": "hello world", "language": + "en"}, {"id": "55", "text": "hello world", "language": "en"}, {"id": "56", "text": + "hello world", "language": "en"}, {"id": "57", "text": "hello world", "language": + "en"}, {"id": "58", "text": "hello world", "language": "en"}, {"id": "59", "text": + "hello world", "language": "en"}, {"id": "60", "text": "hello world", "language": + "en"}, {"id": "61", "text": "hello world", "language": "en"}, {"id": "62", "text": + "hello world", "language": "en"}, {"id": "63", "text": "hello world", "language": + "en"}, {"id": "64", "text": "hello world", "language": "en"}, {"id": "65", "text": + "hello world", "language": "en"}, {"id": "66", "text": "hello world", "language": + "en"}, {"id": "67", "text": "hello world", "language": "en"}, {"id": "68", "text": + "hello world", "language": "en"}, {"id": "69", "text": "hello world", "language": + "en"}, {"id": "70", "text": "hello world", "language": "en"}, {"id": "71", "text": + "hello world", "language": "en"}, {"id": "72", "text": "hello world", "language": + "en"}, {"id": "73", "text": "hello world", "language": "en"}, {"id": "74", "text": + "hello world", "language": "en"}, {"id": "75", "text": "hello world", "language": + "en"}, {"id": "76", "text": "hello world", "language": "en"}, {"id": "77", "text": + "hello world", "language": "en"}, {"id": "78", "text": "hello world", "language": + "en"}, {"id": "79", "text": "hello world", "language": "en"}, {"id": "80", "text": + "hello world", "language": "en"}, {"id": "81", "text": "hello world", "language": + "en"}, {"id": "82", "text": "hello world", "language": "en"}, {"id": "83", "text": + "hello world", "language": "en"}, {"id": "84", "text": "hello world", "language": + "en"}, {"id": "85", "text": "hello world", "language": "en"}, {"id": "86", "text": + "hello world", "language": "en"}, {"id": "87", "text": "hello world", "language": + "en"}, {"id": "88", "text": "hello world", "language": "en"}, {"id": "89", "text": + "hello world", "language": "en"}, {"id": "90", "text": "hello world", "language": + "en"}, {"id": "91", "text": "hello world", "language": "en"}, {"id": "92", "text": + "hello world", "language": "en"}, {"id": "93", "text": "hello world", "language": + "en"}, {"id": "94", "text": "hello world", "language": "en"}, {"id": "95", "text": + "hello world", "language": "en"}, {"id": "96", "text": "hello world", "language": + "en"}, {"id": "97", "text": "hello world", "language": "en"}, {"id": "98", "text": + "hello world", "language": "en"}, {"id": "99", "text": "hello world", "language": + "en"}, {"id": "100", "text": "hello world", "language": "en"}, {"id": "101", + "text": "hello world", "language": "en"}, {"id": "102", "text": "hello world", + "language": "en"}, {"id": "103", "text": "hello world", "language": "en"}, {"id": + "104", "text": "hello world", "language": "en"}, {"id": "105", "text": "hello + world", "language": "en"}, {"id": "106", "text": "hello world", "language": + "en"}, {"id": "107", "text": "hello world", "language": "en"}, {"id": "108", + "text": "hello world", "language": "en"}, {"id": "109", "text": "hello world", + "language": "en"}, {"id": "110", "text": "hello world", "language": "en"}, {"id": + "111", "text": "hello world", "language": "en"}, {"id": "112", "text": "hello + world", "language": "en"}, {"id": "113", "text": "hello world", "language": + "en"}, {"id": "114", "text": "hello world", "language": "en"}, {"id": "115", + "text": "hello world", "language": "en"}, {"id": "116", "text": "hello world", + "language": "en"}, {"id": "117", "text": "hello world", "language": "en"}, {"id": + "118", "text": "hello world", "language": "en"}, {"id": "119", "text": "hello + world", "language": "en"}, {"id": "120", "text": "hello world", "language": + "en"}, {"id": "121", "text": "hello world", "language": "en"}, {"id": "122", + "text": "hello world", "language": "en"}, {"id": "123", "text": "hello world", + "language": "en"}, {"id": "124", "text": "hello world", "language": "en"}, {"id": + "125", "text": "hello world", "language": "en"}, {"id": "126", "text": "hello + world", "language": "en"}, {"id": "127", "text": "hello world", "language": + "en"}, {"id": "128", "text": "hello world", "language": "en"}, {"id": "129", + "text": "hello world", "language": "en"}, {"id": "130", "text": "hello world", + "language": "en"}, {"id": "131", "text": "hello world", "language": "en"}, {"id": + "132", "text": "hello world", "language": "en"}, {"id": "133", "text": "hello + world", "language": "en"}, {"id": "134", "text": "hello world", "language": + "en"}, {"id": "135", "text": "hello world", "language": "en"}, {"id": "136", + "text": "hello world", "language": "en"}, {"id": "137", "text": "hello world", + "language": "en"}, {"id": "138", "text": "hello world", "language": "en"}, {"id": + "139", "text": "hello world", "language": "en"}, {"id": "140", "text": "hello + world", "language": "en"}, {"id": "141", "text": "hello world", "language": + "en"}, {"id": "142", "text": "hello world", "language": "en"}, {"id": "143", + "text": "hello world", "language": "en"}, {"id": "144", "text": "hello world", + "language": "en"}, {"id": "145", "text": "hello world", "language": "en"}, {"id": + "146", "text": "hello world", "language": "en"}, {"id": "147", "text": "hello + world", "language": "en"}, {"id": "148", "text": "hello world", "language": + "en"}, {"id": "149", "text": "hello world", "language": "en"}, {"id": "150", + "text": "hello world", "language": "en"}, {"id": "151", "text": "hello world", + "language": "en"}, {"id": "152", "text": "hello world", "language": "en"}, {"id": + "153", "text": "hello world", "language": "en"}, {"id": "154", "text": "hello + world", "language": "en"}, {"id": "155", "text": "hello world", "language": + "en"}, {"id": "156", "text": "hello world", "language": "en"}, {"id": "157", + "text": "hello world", "language": "en"}, {"id": "158", "text": "hello world", + "language": "en"}, {"id": "159", "text": "hello world", "language": "en"}, {"id": + "160", "text": "hello world", "language": "en"}, {"id": "161", "text": "hello + world", "language": "en"}, {"id": "162", "text": "hello world", "language": + "en"}, {"id": "163", "text": "hello world", "language": "en"}, {"id": "164", + "text": "hello world", "language": "en"}, {"id": "165", "text": "hello world", + "language": "en"}, {"id": "166", "text": "hello world", "language": "en"}, {"id": + "167", "text": "hello world", "language": "en"}, {"id": "168", "text": "hello + world", "language": "en"}, {"id": "169", "text": "hello world", "language": + "en"}, {"id": "170", "text": "hello world", "language": "en"}, {"id": "171", + "text": "hello world", "language": "en"}, {"id": "172", "text": "hello world", + "language": "en"}, {"id": "173", "text": "hello world", "language": "en"}, {"id": + "174", "text": "hello world", "language": "en"}, {"id": "175", "text": "hello + world", "language": "en"}, {"id": "176", "text": "hello world", "language": + "en"}, {"id": "177", "text": "hello world", "language": "en"}, {"id": "178", + "text": "hello world", "language": "en"}, {"id": "179", "text": "hello world", + "language": "en"}, {"id": "180", "text": "hello world", "language": "en"}, {"id": + "181", "text": "hello world", "language": "en"}, {"id": "182", "text": "hello + world", "language": "en"}, {"id": "183", "text": "hello world", "language": + "en"}, {"id": "184", "text": "hello world", "language": "en"}, {"id": "185", + "text": "hello world", "language": "en"}, {"id": "186", "text": "hello world", + "language": "en"}, {"id": "187", "text": "hello world", "language": "en"}, {"id": + "188", "text": "hello world", "language": "en"}, {"id": "189", "text": "hello + world", "language": "en"}, {"id": "190", "text": "hello world", "language": + "en"}, {"id": "191", "text": "hello world", "language": "en"}, {"id": "192", + "text": "hello world", "language": "en"}, {"id": "193", "text": "hello world", + "language": "en"}, {"id": "194", "text": "hello world", "language": "en"}, {"id": + "195", "text": "hello world", "language": "en"}, {"id": "196", "text": "hello + world", "language": "en"}, {"id": "197", "text": "hello world", "language": + "en"}, {"id": "198", "text": "hello world", "language": "en"}, {"id": "199", + "text": "hello world", "language": "en"}, {"id": "200", "text": "hello world", + "language": "en"}, {"id": "201", "text": "hello world", "language": "en"}, {"id": + "202", "text": "hello world", "language": "en"}, {"id": "203", "text": "hello + world", "language": "en"}, {"id": "204", "text": "hello world", "language": + "en"}, {"id": "205", "text": "hello world", "language": "en"}, {"id": "206", + "text": "hello world", "language": "en"}, {"id": "207", "text": "hello world", + "language": "en"}, {"id": "208", "text": "hello world", "language": "en"}, {"id": + "209", "text": "hello world", "language": "en"}, {"id": "210", "text": "hello + world", "language": "en"}, {"id": "211", "text": "hello world", "language": + "en"}, {"id": "212", "text": "hello world", "language": "en"}, {"id": "213", + "text": "hello world", "language": "en"}, {"id": "214", "text": "hello world", + "language": "en"}, {"id": "215", "text": "hello world", "language": "en"}, {"id": + "216", "text": "hello world", "language": "en"}, {"id": "217", "text": "hello + world", "language": "en"}, {"id": "218", "text": "hello world", "language": + "en"}, {"id": "219", "text": "hello world", "language": "en"}, {"id": "220", + "text": "hello world", "language": "en"}, {"id": "221", "text": "hello world", + "language": "en"}, {"id": "222", "text": "hello world", "language": "en"}, {"id": + "223", "text": "hello world", "language": "en"}, {"id": "224", "text": "hello + world", "language": "en"}, {"id": "225", "text": "hello world", "language": + "en"}, {"id": "226", "text": "hello world", "language": "en"}, {"id": "227", + "text": "hello world", "language": "en"}, {"id": "228", "text": "hello world", + "language": "en"}, {"id": "229", "text": "hello world", "language": "en"}, {"id": + "230", "text": "hello world", "language": "en"}, {"id": "231", "text": "hello + world", "language": "en"}, {"id": "232", "text": "hello world", "language": + "en"}, {"id": "233", "text": "hello world", "language": "en"}, {"id": "234", + "text": "hello world", "language": "en"}, {"id": "235", "text": "hello world", + "language": "en"}, {"id": "236", "text": "hello world", "language": "en"}, {"id": + "237", "text": "hello world", "language": "en"}, {"id": "238", "text": "hello + world", "language": "en"}, {"id": "239", "text": "hello world", "language": + "en"}, {"id": "240", "text": "hello world", "language": "en"}, {"id": "241", + "text": "hello world", "language": "en"}, {"id": "242", "text": "hello world", + "language": "en"}, {"id": "243", "text": "hello world", "language": "en"}, {"id": + "244", "text": "hello world", "language": "en"}, {"id": "245", "text": "hello + world", "language": "en"}, {"id": "246", "text": "hello world", "language": + "en"}, {"id": "247", "text": "hello world", "language": "en"}, {"id": "248", + "text": "hello world", "language": "en"}, {"id": "249", "text": "hello world", + "language": "en"}, {"id": "250", "text": "hello world", "language": "en"}, {"id": + "251", "text": "hello world", "language": "en"}, {"id": "252", "text": "hello + world", "language": "en"}, {"id": "253", "text": "hello world", "language": + "en"}, {"id": "254", "text": "hello world", "language": "en"}, {"id": "255", + "text": "hello world", "language": "en"}, {"id": "256", "text": "hello world", + "language": "en"}, {"id": "257", "text": "hello world", "language": "en"}, {"id": + "258", "text": "hello world", "language": "en"}, {"id": "259", "text": "hello + world", "language": "en"}, {"id": "260", "text": "hello world", "language": + "en"}, {"id": "261", "text": "hello world", "language": "en"}, {"id": "262", + "text": "hello world", "language": "en"}, {"id": "263", "text": "hello world", + "language": "en"}, {"id": "264", "text": "hello world", "language": "en"}, {"id": + "265", "text": "hello world", "language": "en"}, {"id": "266", "text": "hello + world", "language": "en"}, {"id": "267", "text": "hello world", "language": + "en"}, {"id": "268", "text": "hello world", "language": "en"}, {"id": "269", + "text": "hello world", "language": "en"}, {"id": "270", "text": "hello world", + "language": "en"}, {"id": "271", "text": "hello world", "language": "en"}, {"id": + "272", "text": "hello world", "language": "en"}, {"id": "273", "text": "hello + world", "language": "en"}, {"id": "274", "text": "hello world", "language": + "en"}, {"id": "275", "text": "hello world", "language": "en"}, {"id": "276", + "text": "hello world", "language": "en"}, {"id": "277", "text": "hello world", + "language": "en"}, {"id": "278", "text": "hello world", "language": "en"}, {"id": + "279", "text": "hello world", "language": "en"}, {"id": "280", "text": "hello + world", "language": "en"}, {"id": "281", "text": "hello world", "language": + "en"}, {"id": "282", "text": "hello world", "language": "en"}, {"id": "283", + "text": "hello world", "language": "en"}, {"id": "284", "text": "hello world", + "language": "en"}, {"id": "285", "text": "hello world", "language": "en"}, {"id": + "286", "text": "hello world", "language": "en"}, {"id": "287", "text": "hello + world", "language": "en"}, {"id": "288", "text": "hello world", "language": + "en"}, {"id": "289", "text": "hello world", "language": "en"}, {"id": "290", + "text": "hello world", "language": "en"}, {"id": "291", "text": "hello world", + "language": "en"}, {"id": "292", "text": "hello world", "language": "en"}, {"id": + "293", "text": "hello world", "language": "en"}, {"id": "294", "text": "hello + world", "language": "en"}, {"id": "295", "text": "hello world", "language": + "en"}, {"id": "296", "text": "hello world", "language": "en"}, {"id": "297", + "text": "hello world", "language": "en"}, {"id": "298", "text": "hello world", + "language": "en"}, {"id": "299", "text": "hello world", "language": "en"}, {"id": + "300", "text": "hello world", "language": "en"}, {"id": "301", "text": "hello + world", "language": "en"}, {"id": "302", "text": "hello world", "language": + "en"}, {"id": "303", "text": "hello world", "language": "en"}, {"id": "304", + "text": "hello world", "language": "en"}, {"id": "305", "text": "hello world", + "language": "en"}, {"id": "306", "text": "hello world", "language": "en"}, {"id": + "307", "text": "hello world", "language": "en"}, {"id": "308", "text": "hello + world", "language": "en"}, {"id": "309", "text": "hello world", "language": + "en"}, {"id": "310", "text": "hello world", "language": "en"}, {"id": "311", + "text": "hello world", "language": "en"}, {"id": "312", "text": "hello world", + "language": "en"}, {"id": "313", "text": "hello world", "language": "en"}, {"id": + "314", "text": "hello world", "language": "en"}, {"id": "315", "text": "hello + world", "language": "en"}, {"id": "316", "text": "hello world", "language": + "en"}, {"id": "317", "text": "hello world", "language": "en"}, {"id": "318", + "text": "hello world", "language": "en"}, {"id": "319", "text": "hello world", + "language": "en"}, {"id": "320", "text": "hello world", "language": "en"}, {"id": + "321", "text": "hello world", "language": "en"}, {"id": "322", "text": "hello + world", "language": "en"}, {"id": "323", "text": "hello world", "language": + "en"}, {"id": "324", "text": "hello world", "language": "en"}, {"id": "325", + "text": "hello world", "language": "en"}, {"id": "326", "text": "hello world", + "language": "en"}, {"id": "327", "text": "hello world", "language": "en"}, {"id": + "328", "text": "hello world", "language": "en"}, {"id": "329", "text": "hello + world", "language": "en"}, {"id": "330", "text": "hello world", "language": + "en"}, {"id": "331", "text": "hello world", "language": "en"}, {"id": "332", + "text": "hello world", "language": "en"}, {"id": "333", "text": "hello world", + "language": "en"}, {"id": "334", "text": "hello world", "language": "en"}, {"id": + "335", "text": "hello world", "language": "en"}, {"id": "336", "text": "hello + world", "language": "en"}, {"id": "337", "text": "hello world", "language": + "en"}, {"id": "338", "text": "hello world", "language": "en"}, {"id": "339", + "text": "hello world", "language": "en"}, {"id": "340", "text": "hello world", + "language": "en"}, {"id": "341", "text": "hello world", "language": "en"}, {"id": + "342", "text": "hello world", "language": "en"}, {"id": "343", "text": "hello + world", "language": "en"}, {"id": "344", "text": "hello world", "language": + "en"}, {"id": "345", "text": "hello world", "language": "en"}, {"id": "346", + "text": "hello world", "language": "en"}, {"id": "347", "text": "hello world", + "language": "en"}, {"id": "348", "text": "hello world", "language": "en"}, {"id": + "349", "text": "hello world", "language": "en"}, {"id": "350", "text": "hello + world", "language": "en"}, {"id": "351", "text": "hello world", "language": + "en"}, {"id": "352", "text": "hello world", "language": "en"}, {"id": "353", + "text": "hello world", "language": "en"}, {"id": "354", "text": "hello world", + "language": "en"}, {"id": "355", "text": "hello world", "language": "en"}, {"id": + "356", "text": "hello world", "language": "en"}, {"id": "357", "text": "hello + world", "language": "en"}, {"id": "358", "text": "hello world", "language": + "en"}, {"id": "359", "text": "hello world", "language": "en"}, {"id": "360", + "text": "hello world", "language": "en"}, {"id": "361", "text": "hello world", + "language": "en"}, {"id": "362", "text": "hello world", "language": "en"}, {"id": + "363", "text": "hello world", "language": "en"}, {"id": "364", "text": "hello + world", "language": "en"}, {"id": "365", "text": "hello world", "language": + "en"}, {"id": "366", "text": "hello world", "language": "en"}, {"id": "367", + "text": "hello world", "language": "en"}, {"id": "368", "text": "hello world", + "language": "en"}, {"id": "369", "text": "hello world", "language": "en"}, {"id": + "370", "text": "hello world", "language": "en"}, {"id": "371", "text": "hello + world", "language": "en"}, {"id": "372", "text": "hello world", "language": + "en"}, {"id": "373", "text": "hello world", "language": "en"}, {"id": "374", + "text": "hello world", "language": "en"}, {"id": "375", "text": "hello world", + "language": "en"}, {"id": "376", "text": "hello world", "language": "en"}, {"id": + "377", "text": "hello world", "language": "en"}, {"id": "378", "text": "hello + world", "language": "en"}, {"id": "379", "text": "hello world", "language": + "en"}, {"id": "380", "text": "hello world", "language": "en"}, {"id": "381", + "text": "hello world", "language": "en"}, {"id": "382", "text": "hello world", + "language": "en"}, {"id": "383", "text": "hello world", "language": "en"}, {"id": + "384", "text": "hello world", "language": "en"}, {"id": "385", "text": "hello + world", "language": "en"}, {"id": "386", "text": "hello world", "language": + "en"}, {"id": "387", "text": "hello world", "language": "en"}, {"id": "388", + "text": "hello world", "language": "en"}, {"id": "389", "text": "hello world", + "language": "en"}, {"id": "390", "text": "hello world", "language": "en"}, {"id": + "391", "text": "hello world", "language": "en"}, {"id": "392", "text": "hello + world", "language": "en"}, {"id": "393", "text": "hello world", "language": + "en"}, {"id": "394", "text": "hello world", "language": "en"}, {"id": "395", + "text": "hello world", "language": "en"}, {"id": "396", "text": "hello world", + "language": "en"}, {"id": "397", "text": "hello world", "language": "en"}, {"id": + "398", "text": "hello world", "language": "en"}, {"id": "399", "text": "hello + world", "language": "en"}, {"id": "400", "text": "hello world", "language": + "en"}, {"id": "401", "text": "hello world", "language": "en"}, {"id": "402", + "text": "hello world", "language": "en"}, {"id": "403", "text": "hello world", + "language": "en"}, {"id": "404", "text": "hello world", "language": "en"}, {"id": + "405", "text": "hello world", "language": "en"}, {"id": "406", "text": "hello + world", "language": "en"}, {"id": "407", "text": "hello world", "language": + "en"}, {"id": "408", "text": "hello world", "language": "en"}, {"id": "409", + "text": "hello world", "language": "en"}, {"id": "410", "text": "hello world", + "language": "en"}, {"id": "411", "text": "hello world", "language": "en"}, {"id": + "412", "text": "hello world", "language": "en"}, {"id": "413", "text": "hello + world", "language": "en"}, {"id": "414", "text": "hello world", "language": + "en"}, {"id": "415", "text": "hello world", "language": "en"}, {"id": "416", + "text": "hello world", "language": "en"}, {"id": "417", "text": "hello world", + "language": "en"}, {"id": "418", "text": "hello world", "language": "en"}, {"id": + "419", "text": "hello world", "language": "en"}, {"id": "420", "text": "hello + world", "language": "en"}, {"id": "421", "text": "hello world", "language": + "en"}, {"id": "422", "text": "hello world", "language": "en"}, {"id": "423", + "text": "hello world", "language": "en"}, {"id": "424", "text": "hello world", + "language": "en"}, {"id": "425", "text": "hello world", "language": "en"}, {"id": + "426", "text": "hello world", "language": "en"}, {"id": "427", "text": "hello + world", "language": "en"}, {"id": "428", "text": "hello world", "language": + "en"}, {"id": "429", "text": "hello world", "language": "en"}, {"id": "430", + "text": "hello world", "language": "en"}, {"id": "431", "text": "hello world", + "language": "en"}, {"id": "432", "text": "hello world", "language": "en"}, {"id": + "433", "text": "hello world", "language": "en"}, {"id": "434", "text": "hello + world", "language": "en"}, {"id": "435", "text": "hello world", "language": + "en"}, {"id": "436", "text": "hello world", "language": "en"}, {"id": "437", + "text": "hello world", "language": "en"}, {"id": "438", "text": "hello world", + "language": "en"}, {"id": "439", "text": "hello world", "language": "en"}, {"id": + "440", "text": "hello world", "language": "en"}, {"id": "441", "text": "hello + world", "language": "en"}, {"id": "442", "text": "hello world", "language": + "en"}, {"id": "443", "text": "hello world", "language": "en"}, {"id": "444", + "text": "hello world", "language": "en"}, {"id": "445", "text": "hello world", + "language": "en"}, {"id": "446", "text": "hello world", "language": "en"}, {"id": + "447", "text": "hello world", "language": "en"}, {"id": "448", "text": "hello + world", "language": "en"}, {"id": "449", "text": "hello world", "language": + "en"}, {"id": "450", "text": "hello world", "language": "en"}, {"id": "451", + "text": "hello world", "language": "en"}, {"id": "452", "text": "hello world", + "language": "en"}, {"id": "453", "text": "hello world", "language": "en"}, {"id": + "454", "text": "hello world", "language": "en"}, {"id": "455", "text": "hello + world", "language": "en"}, {"id": "456", "text": "hello world", "language": + "en"}, {"id": "457", "text": "hello world", "language": "en"}, {"id": "458", + "text": "hello world", "language": "en"}, {"id": "459", "text": "hello world", + "language": "en"}, {"id": "460", "text": "hello world", "language": "en"}, {"id": + "461", "text": "hello world", "language": "en"}, {"id": "462", "text": "hello + world", "language": "en"}, {"id": "463", "text": "hello world", "language": + "en"}, {"id": "464", "text": "hello world", "language": "en"}, {"id": "465", + "text": "hello world", "language": "en"}, {"id": "466", "text": "hello world", + "language": "en"}, {"id": "467", "text": "hello world", "language": "en"}, {"id": + "468", "text": "hello world", "language": "en"}, {"id": "469", "text": "hello + world", "language": "en"}, {"id": "470", "text": "hello world", "language": + "en"}, {"id": "471", "text": "hello world", "language": "en"}, {"id": "472", + "text": "hello world", "language": "en"}, {"id": "473", "text": "hello world", + "language": "en"}, {"id": "474", "text": "hello world", "language": "en"}, {"id": + "475", "text": "hello world", "language": "en"}, {"id": "476", "text": "hello + world", "language": "en"}, {"id": "477", "text": "hello world", "language": + "en"}, {"id": "478", "text": "hello world", "language": "en"}, {"id": "479", + "text": "hello world", "language": "en"}, {"id": "480", "text": "hello world", + "language": "en"}, {"id": "481", "text": "hello world", "language": "en"}, {"id": + "482", "text": "hello world", "language": "en"}, {"id": "483", "text": "hello + world", "language": "en"}, {"id": "484", "text": "hello world", "language": + "en"}, {"id": "485", "text": "hello world", "language": "en"}, {"id": "486", + "text": "hello world", "language": "en"}, {"id": "487", "text": "hello world", + "language": "en"}, {"id": "488", "text": "hello world", "language": "en"}, {"id": + "489", "text": "hello world", "language": "en"}, {"id": "490", "text": "hello + world", "language": "en"}, {"id": "491", "text": "hello world", "language": + "en"}, {"id": "492", "text": "hello world", "language": "en"}, {"id": "493", + "text": "hello world", "language": "en"}, {"id": "494", "text": "hello world", + "language": "en"}, {"id": "495", "text": "hello world", "language": "en"}, {"id": + "496", "text": "hello world", "language": "en"}, {"id": "497", "text": "hello + world", "language": "en"}, {"id": "498", "text": "hello world", "language": + "en"}, {"id": "499", "text": "hello world", "language": "en"}, {"id": "500", + "text": "hello world", "language": "en"}, {"id": "501", "text": "hello world", + "language": "en"}, {"id": "502", "text": "hello world", "language": "en"}, {"id": + "503", "text": "hello world", "language": "en"}, {"id": "504", "text": "hello + world", "language": "en"}, {"id": "505", "text": "hello world", "language": + "en"}, {"id": "506", "text": "hello world", "language": "en"}, {"id": "507", + "text": "hello world", "language": "en"}, {"id": "508", "text": "hello world", + "language": "en"}, {"id": "509", "text": "hello world", "language": "en"}, {"id": + "510", "text": "hello world", "language": "en"}, {"id": "511", "text": "hello + world", "language": "en"}, {"id": "512", "text": "hello world", "language": + "en"}, {"id": "513", "text": "hello world", "language": "en"}, {"id": "514", + "text": "hello world", "language": "en"}, {"id": "515", "text": "hello world", + "language": "en"}, {"id": "516", "text": "hello world", "language": "en"}, {"id": + "517", "text": "hello world", "language": "en"}, {"id": "518", "text": "hello + world", "language": "en"}, {"id": "519", "text": "hello world", "language": + "en"}, {"id": "520", "text": "hello world", "language": "en"}, {"id": "521", + "text": "hello world", "language": "en"}, {"id": "522", "text": "hello world", + "language": "en"}, {"id": "523", "text": "hello world", "language": "en"}, {"id": + "524", "text": "hello world", "language": "en"}, {"id": "525", "text": "hello + world", "language": "en"}, {"id": "526", "text": "hello world", "language": + "en"}, {"id": "527", "text": "hello world", "language": "en"}, {"id": "528", + "text": "hello world", "language": "en"}, {"id": "529", "text": "hello world", + "language": "en"}, {"id": "530", "text": "hello world", "language": "en"}, {"id": + "531", "text": "hello world", "language": "en"}, {"id": "532", "text": "hello + world", "language": "en"}, {"id": "533", "text": "hello world", "language": + "en"}, {"id": "534", "text": "hello world", "language": "en"}, {"id": "535", + "text": "hello world", "language": "en"}, {"id": "536", "text": "hello world", + "language": "en"}, {"id": "537", "text": "hello world", "language": "en"}, {"id": + "538", "text": "hello world", "language": "en"}, {"id": "539", "text": "hello + world", "language": "en"}, {"id": "540", "text": "hello world", "language": + "en"}, {"id": "541", "text": "hello world", "language": "en"}, {"id": "542", + "text": "hello world", "language": "en"}, {"id": "543", "text": "hello world", + "language": "en"}, {"id": "544", "text": "hello world", "language": "en"}, {"id": + "545", "text": "hello world", "language": "en"}, {"id": "546", "text": "hello + world", "language": "en"}, {"id": "547", "text": "hello world", "language": + "en"}, {"id": "548", "text": "hello world", "language": "en"}, {"id": "549", + "text": "hello world", "language": "en"}, {"id": "550", "text": "hello world", + "language": "en"}, {"id": "551", "text": "hello world", "language": "en"}, {"id": + "552", "text": "hello world", "language": "en"}, {"id": "553", "text": "hello + world", "language": "en"}, {"id": "554", "text": "hello world", "language": + "en"}, {"id": "555", "text": "hello world", "language": "en"}, {"id": "556", + "text": "hello world", "language": "en"}, {"id": "557", "text": "hello world", + "language": "en"}, {"id": "558", "text": "hello world", "language": "en"}, {"id": + "559", "text": "hello world", "language": "en"}, {"id": "560", "text": "hello + world", "language": "en"}, {"id": "561", "text": "hello world", "language": + "en"}, {"id": "562", "text": "hello world", "language": "en"}, {"id": "563", + "text": "hello world", "language": "en"}, {"id": "564", "text": "hello world", + "language": "en"}, {"id": "565", "text": "hello world", "language": "en"}, {"id": + "566", "text": "hello world", "language": "en"}, {"id": "567", "text": "hello + world", "language": "en"}, {"id": "568", "text": "hello world", "language": + "en"}, {"id": "569", "text": "hello world", "language": "en"}, {"id": "570", + "text": "hello world", "language": "en"}, {"id": "571", "text": "hello world", + "language": "en"}, {"id": "572", "text": "hello world", "language": "en"}, {"id": + "573", "text": "hello world", "language": "en"}, {"id": "574", "text": "hello + world", "language": "en"}, {"id": "575", "text": "hello world", "language": + "en"}, {"id": "576", "text": "hello world", "language": "en"}, {"id": "577", + "text": "hello world", "language": "en"}, {"id": "578", "text": "hello world", + "language": "en"}, {"id": "579", "text": "hello world", "language": "en"}, {"id": + "580", "text": "hello world", "language": "en"}, {"id": "581", "text": "hello + world", "language": "en"}, {"id": "582", "text": "hello world", "language": + "en"}, {"id": "583", "text": "hello world", "language": "en"}, {"id": "584", + "text": "hello world", "language": "en"}, {"id": "585", "text": "hello world", + "language": "en"}, {"id": "586", "text": "hello world", "language": "en"}, {"id": + "587", "text": "hello world", "language": "en"}, {"id": "588", "text": "hello + world", "language": "en"}, {"id": "589", "text": "hello world", "language": + "en"}, {"id": "590", "text": "hello world", "language": "en"}, {"id": "591", + "text": "hello world", "language": "en"}, {"id": "592", "text": "hello world", + "language": "en"}, {"id": "593", "text": "hello world", "language": "en"}, {"id": + "594", "text": "hello world", "language": "en"}, {"id": "595", "text": "hello + world", "language": "en"}, {"id": "596", "text": "hello world", "language": + "en"}, {"id": "597", "text": "hello world", "language": "en"}, {"id": "598", + "text": "hello world", "language": "en"}, {"id": "599", "text": "hello world", + "language": "en"}, {"id": "600", "text": "hello world", "language": "en"}, {"id": + "601", "text": "hello world", "language": "en"}, {"id": "602", "text": "hello + world", "language": "en"}, {"id": "603", "text": "hello world", "language": + "en"}, {"id": "604", "text": "hello world", "language": "en"}, {"id": "605", + "text": "hello world", "language": "en"}, {"id": "606", "text": "hello world", + "language": "en"}, {"id": "607", "text": "hello world", "language": "en"}, {"id": + "608", "text": "hello world", "language": "en"}, {"id": "609", "text": "hello + world", "language": "en"}, {"id": "610", "text": "hello world", "language": + "en"}, {"id": "611", "text": "hello world", "language": "en"}, {"id": "612", + "text": "hello world", "language": "en"}, {"id": "613", "text": "hello world", + "language": "en"}, {"id": "614", "text": "hello world", "language": "en"}, {"id": + "615", "text": "hello world", "language": "en"}, {"id": "616", "text": "hello + world", "language": "en"}, {"id": "617", "text": "hello world", "language": + "en"}, {"id": "618", "text": "hello world", "language": "en"}, {"id": "619", + "text": "hello world", "language": "en"}, {"id": "620", "text": "hello world", + "language": "en"}, {"id": "621", "text": "hello world", "language": "en"}, {"id": + "622", "text": "hello world", "language": "en"}, {"id": "623", "text": "hello + world", "language": "en"}, {"id": "624", "text": "hello world", "language": + "en"}, {"id": "625", "text": "hello world", "language": "en"}, {"id": "626", + "text": "hello world", "language": "en"}, {"id": "627", "text": "hello world", + "language": "en"}, {"id": "628", "text": "hello world", "language": "en"}, {"id": + "629", "text": "hello world", "language": "en"}, {"id": "630", "text": "hello + world", "language": "en"}, {"id": "631", "text": "hello world", "language": + "en"}, {"id": "632", "text": "hello world", "language": "en"}, {"id": "633", + "text": "hello world", "language": "en"}, {"id": "634", "text": "hello world", + "language": "en"}, {"id": "635", "text": "hello world", "language": "en"}, {"id": + "636", "text": "hello world", "language": "en"}, {"id": "637", "text": "hello + world", "language": "en"}, {"id": "638", "text": "hello world", "language": + "en"}, {"id": "639", "text": "hello world", "language": "en"}, {"id": "640", + "text": "hello world", "language": "en"}, {"id": "641", "text": "hello world", + "language": "en"}, {"id": "642", "text": "hello world", "language": "en"}, {"id": + "643", "text": "hello world", "language": "en"}, {"id": "644", "text": "hello + world", "language": "en"}, {"id": "645", "text": "hello world", "language": + "en"}, {"id": "646", "text": "hello world", "language": "en"}, {"id": "647", + "text": "hello world", "language": "en"}, {"id": "648", "text": "hello world", + "language": "en"}, {"id": "649", "text": "hello world", "language": "en"}, {"id": + "650", "text": "hello world", "language": "en"}, {"id": "651", "text": "hello + world", "language": "en"}, {"id": "652", "text": "hello world", "language": + "en"}, {"id": "653", "text": "hello world", "language": "en"}, {"id": "654", + "text": "hello world", "language": "en"}, {"id": "655", "text": "hello world", + "language": "en"}, {"id": "656", "text": "hello world", "language": "en"}, {"id": + "657", "text": "hello world", "language": "en"}, {"id": "658", "text": "hello + world", "language": "en"}, {"id": "659", "text": "hello world", "language": + "en"}, {"id": "660", "text": "hello world", "language": "en"}, {"id": "661", + "text": "hello world", "language": "en"}, {"id": "662", "text": "hello world", + "language": "en"}, {"id": "663", "text": "hello world", "language": "en"}, {"id": + "664", "text": "hello world", "language": "en"}, {"id": "665", "text": "hello + world", "language": "en"}, {"id": "666", "text": "hello world", "language": + "en"}, {"id": "667", "text": "hello world", "language": "en"}, {"id": "668", + "text": "hello world", "language": "en"}, {"id": "669", "text": "hello world", + "language": "en"}, {"id": "670", "text": "hello world", "language": "en"}, {"id": + "671", "text": "hello world", "language": "en"}, {"id": "672", "text": "hello + world", "language": "en"}, {"id": "673", "text": "hello world", "language": + "en"}, {"id": "674", "text": "hello world", "language": "en"}, {"id": "675", + "text": "hello world", "language": "en"}, {"id": "676", "text": "hello world", + "language": "en"}, {"id": "677", "text": "hello world", "language": "en"}, {"id": + "678", "text": "hello world", "language": "en"}, {"id": "679", "text": "hello + world", "language": "en"}, {"id": "680", "text": "hello world", "language": + "en"}, {"id": "681", "text": "hello world", "language": "en"}, {"id": "682", + "text": "hello world", "language": "en"}, {"id": "683", "text": "hello world", + "language": "en"}, {"id": "684", "text": "hello world", "language": "en"}, {"id": + "685", "text": "hello world", "language": "en"}, {"id": "686", "text": "hello + world", "language": "en"}, {"id": "687", "text": "hello world", "language": + "en"}, {"id": "688", "text": "hello world", "language": "en"}, {"id": "689", + "text": "hello world", "language": "en"}, {"id": "690", "text": "hello world", + "language": "en"}, {"id": "691", "text": "hello world", "language": "en"}, {"id": + "692", "text": "hello world", "language": "en"}, {"id": "693", "text": "hello + world", "language": "en"}, {"id": "694", "text": "hello world", "language": + "en"}, {"id": "695", "text": "hello world", "language": "en"}, {"id": "696", + "text": "hello world", "language": "en"}, {"id": "697", "text": "hello world", + "language": "en"}, {"id": "698", "text": "hello world", "language": "en"}, {"id": + "699", "text": "hello world", "language": "en"}, {"id": "700", "text": "hello + world", "language": "en"}, {"id": "701", "text": "hello world", "language": + "en"}, {"id": "702", "text": "hello world", "language": "en"}, {"id": "703", + "text": "hello world", "language": "en"}, {"id": "704", "text": "hello world", + "language": "en"}, {"id": "705", "text": "hello world", "language": "en"}, {"id": + "706", "text": "hello world", "language": "en"}, {"id": "707", "text": "hello + world", "language": "en"}, {"id": "708", "text": "hello world", "language": + "en"}, {"id": "709", "text": "hello world", "language": "en"}, {"id": "710", + "text": "hello world", "language": "en"}, {"id": "711", "text": "hello world", + "language": "en"}, {"id": "712", "text": "hello world", "language": "en"}, {"id": + "713", "text": "hello world", "language": "en"}, {"id": "714", "text": "hello + world", "language": "en"}, {"id": "715", "text": "hello world", "language": + "en"}, {"id": "716", "text": "hello world", "language": "en"}, {"id": "717", + "text": "hello world", "language": "en"}, {"id": "718", "text": "hello world", + "language": "en"}, {"id": "719", "text": "hello world", "language": "en"}, {"id": + "720", "text": "hello world", "language": "en"}, {"id": "721", "text": "hello + world", "language": "en"}, {"id": "722", "text": "hello world", "language": + "en"}, {"id": "723", "text": "hello world", "language": "en"}, {"id": "724", + "text": "hello world", "language": "en"}, {"id": "725", "text": "hello world", + "language": "en"}, {"id": "726", "text": "hello world", "language": "en"}, {"id": + "727", "text": "hello world", "language": "en"}, {"id": "728", "text": "hello + world", "language": "en"}, {"id": "729", "text": "hello world", "language": + "en"}, {"id": "730", "text": "hello world", "language": "en"}, {"id": "731", + "text": "hello world", "language": "en"}, {"id": "732", "text": "hello world", + "language": "en"}, {"id": "733", "text": "hello world", "language": "en"}, {"id": + "734", "text": "hello world", "language": "en"}, {"id": "735", "text": "hello + world", "language": "en"}, {"id": "736", "text": "hello world", "language": + "en"}, {"id": "737", "text": "hello world", "language": "en"}, {"id": "738", + "text": "hello world", "language": "en"}, {"id": "739", "text": "hello world", + "language": "en"}, {"id": "740", "text": "hello world", "language": "en"}, {"id": + "741", "text": "hello world", "language": "en"}, {"id": "742", "text": "hello + world", "language": "en"}, {"id": "743", "text": "hello world", "language": + "en"}, {"id": "744", "text": "hello world", "language": "en"}, {"id": "745", + "text": "hello world", "language": "en"}, {"id": "746", "text": "hello world", + "language": "en"}, {"id": "747", "text": "hello world", "language": "en"}, {"id": + "748", "text": "hello world", "language": "en"}, {"id": "749", "text": "hello + world", "language": "en"}, {"id": "750", "text": "hello world", "language": + "en"}, {"id": "751", "text": "hello world", "language": "en"}, {"id": "752", + "text": "hello world", "language": "en"}, {"id": "753", "text": "hello world", + "language": "en"}, {"id": "754", "text": "hello world", "language": "en"}, {"id": + "755", "text": "hello world", "language": "en"}, {"id": "756", "text": "hello + world", "language": "en"}, {"id": "757", "text": "hello world", "language": + "en"}, {"id": "758", "text": "hello world", "language": "en"}, {"id": "759", + "text": "hello world", "language": "en"}, {"id": "760", "text": "hello world", + "language": "en"}, {"id": "761", "text": "hello world", "language": "en"}, {"id": + "762", "text": "hello world", "language": "en"}, {"id": "763", "text": "hello + world", "language": "en"}, {"id": "764", "text": "hello world", "language": + "en"}, {"id": "765", "text": "hello world", "language": "en"}, {"id": "766", + "text": "hello world", "language": "en"}, {"id": "767", "text": "hello world", + "language": "en"}, {"id": "768", "text": "hello world", "language": "en"}, {"id": + "769", "text": "hello world", "language": "en"}, {"id": "770", "text": "hello + world", "language": "en"}, {"id": "771", "text": "hello world", "language": + "en"}, {"id": "772", "text": "hello world", "language": "en"}, {"id": "773", + "text": "hello world", "language": "en"}, {"id": "774", "text": "hello world", + "language": "en"}, {"id": "775", "text": "hello world", "language": "en"}, {"id": + "776", "text": "hello world", "language": "en"}, {"id": "777", "text": "hello + world", "language": "en"}, {"id": "778", "text": "hello world", "language": + "en"}, {"id": "779", "text": "hello world", "language": "en"}, {"id": "780", + "text": "hello world", "language": "en"}, {"id": "781", "text": "hello world", + "language": "en"}, {"id": "782", "text": "hello world", "language": "en"}, {"id": + "783", "text": "hello world", "language": "en"}, {"id": "784", "text": "hello + world", "language": "en"}, {"id": "785", "text": "hello world", "language": + "en"}, {"id": "786", "text": "hello world", "language": "en"}, {"id": "787", + "text": "hello world", "language": "en"}, {"id": "788", "text": "hello world", + "language": "en"}, {"id": "789", "text": "hello world", "language": "en"}, {"id": + "790", "text": "hello world", "language": "en"}, {"id": "791", "text": "hello + world", "language": "en"}, {"id": "792", "text": "hello world", "language": + "en"}, {"id": "793", "text": "hello world", "language": "en"}, {"id": "794", + "text": "hello world", "language": "en"}, {"id": "795", "text": "hello world", + "language": "en"}, {"id": "796", "text": "hello world", "language": "en"}, {"id": + "797", "text": "hello world", "language": "en"}, {"id": "798", "text": "hello + world", "language": "en"}, {"id": "799", "text": "hello world", "language": + "en"}, {"id": "800", "text": "hello world", "language": "en"}, {"id": "801", + "text": "hello world", "language": "en"}, {"id": "802", "text": "hello world", + "language": "en"}, {"id": "803", "text": "hello world", "language": "en"}, {"id": + "804", "text": "hello world", "language": "en"}, {"id": "805", "text": "hello + world", "language": "en"}, {"id": "806", "text": "hello world", "language": + "en"}, {"id": "807", "text": "hello world", "language": "en"}, {"id": "808", + "text": "hello world", "language": "en"}, {"id": "809", "text": "hello world", + "language": "en"}, {"id": "810", "text": "hello world", "language": "en"}, {"id": + "811", "text": "hello world", "language": "en"}, {"id": "812", "text": "hello + world", "language": "en"}, {"id": "813", "text": "hello world", "language": + "en"}, {"id": "814", "text": "hello world", "language": "en"}, {"id": "815", + "text": "hello world", "language": "en"}, {"id": "816", "text": "hello world", + "language": "en"}, {"id": "817", "text": "hello world", "language": "en"}, {"id": + "818", "text": "hello world", "language": "en"}, {"id": "819", "text": "hello + world", "language": "en"}, {"id": "820", "text": "hello world", "language": + "en"}, {"id": "821", "text": "hello world", "language": "en"}, {"id": "822", + "text": "hello world", "language": "en"}, {"id": "823", "text": "hello world", + "language": "en"}, {"id": "824", "text": "hello world", "language": "en"}, {"id": + "825", "text": "hello world", "language": "en"}, {"id": "826", "text": "hello + world", "language": "en"}, {"id": "827", "text": "hello world", "language": + "en"}, {"id": "828", "text": "hello world", "language": "en"}, {"id": "829", + "text": "hello world", "language": "en"}, {"id": "830", "text": "hello world", + "language": "en"}, {"id": "831", "text": "hello world", "language": "en"}, {"id": + "832", "text": "hello world", "language": "en"}, {"id": "833", "text": "hello + world", "language": "en"}, {"id": "834", "text": "hello world", "language": + "en"}, {"id": "835", "text": "hello world", "language": "en"}, {"id": "836", + "text": "hello world", "language": "en"}, {"id": "837", "text": "hello world", + "language": "en"}, {"id": "838", "text": "hello world", "language": "en"}, {"id": + "839", "text": "hello world", "language": "en"}, {"id": "840", "text": "hello + world", "language": "en"}, {"id": "841", "text": "hello world", "language": + "en"}, {"id": "842", "text": "hello world", "language": "en"}, {"id": "843", + "text": "hello world", "language": "en"}, {"id": "844", "text": "hello world", + "language": "en"}, {"id": "845", "text": "hello world", "language": "en"}, {"id": + "846", "text": "hello world", "language": "en"}, {"id": "847", "text": "hello + world", "language": "en"}, {"id": "848", "text": "hello world", "language": + "en"}, {"id": "849", "text": "hello world", "language": "en"}, {"id": "850", + "text": "hello world", "language": "en"}, {"id": "851", "text": "hello world", + "language": "en"}, {"id": "852", "text": "hello world", "language": "en"}, {"id": + "853", "text": "hello world", "language": "en"}, {"id": "854", "text": "hello + world", "language": "en"}, {"id": "855", "text": "hello world", "language": + "en"}, {"id": "856", "text": "hello world", "language": "en"}, {"id": "857", + "text": "hello world", "language": "en"}, {"id": "858", "text": "hello world", + "language": "en"}, {"id": "859", "text": "hello world", "language": "en"}, {"id": + "860", "text": "hello world", "language": "en"}, {"id": "861", "text": "hello + world", "language": "en"}, {"id": "862", "text": "hello world", "language": + "en"}, {"id": "863", "text": "hello world", "language": "en"}, {"id": "864", + "text": "hello world", "language": "en"}, {"id": "865", "text": "hello world", + "language": "en"}, {"id": "866", "text": "hello world", "language": "en"}, {"id": + "867", "text": "hello world", "language": "en"}, {"id": "868", "text": "hello + world", "language": "en"}, {"id": "869", "text": "hello world", "language": + "en"}, {"id": "870", "text": "hello world", "language": "en"}, {"id": "871", + "text": "hello world", "language": "en"}, {"id": "872", "text": "hello world", + "language": "en"}, {"id": "873", "text": "hello world", "language": "en"}, {"id": + "874", "text": "hello world", "language": "en"}, {"id": "875", "text": "hello + world", "language": "en"}, {"id": "876", "text": "hello world", "language": + "en"}, {"id": "877", "text": "hello world", "language": "en"}, {"id": "878", + "text": "hello world", "language": "en"}, {"id": "879", "text": "hello world", + "language": "en"}, {"id": "880", "text": "hello world", "language": "en"}, {"id": + "881", "text": "hello world", "language": "en"}, {"id": "882", "text": "hello + world", "language": "en"}, {"id": "883", "text": "hello world", "language": + "en"}, {"id": "884", "text": "hello world", "language": "en"}, {"id": "885", + "text": "hello world", "language": "en"}, {"id": "886", "text": "hello world", + "language": "en"}, {"id": "887", "text": "hello world", "language": "en"}, {"id": + "888", "text": "hello world", "language": "en"}, {"id": "889", "text": "hello + world", "language": "en"}, {"id": "890", "text": "hello world", "language": + "en"}, {"id": "891", "text": "hello world", "language": "en"}, {"id": "892", + "text": "hello world", "language": "en"}, {"id": "893", "text": "hello world", + "language": "en"}, {"id": "894", "text": "hello world", "language": "en"}, {"id": + "895", "text": "hello world", "language": "en"}, {"id": "896", "text": "hello + world", "language": "en"}, {"id": "897", "text": "hello world", "language": + "en"}, {"id": "898", "text": "hello world", "language": "en"}, {"id": "899", + "text": "hello world", "language": "en"}, {"id": "900", "text": "hello world", + "language": "en"}, {"id": "901", "text": "hello world", "language": "en"}, {"id": + "902", "text": "hello world", "language": "en"}, {"id": "903", "text": "hello + world", "language": "en"}, {"id": "904", "text": "hello world", "language": + "en"}, {"id": "905", "text": "hello world", "language": "en"}, {"id": "906", + "text": "hello world", "language": "en"}, {"id": "907", "text": "hello world", + "language": "en"}, {"id": "908", "text": "hello world", "language": "en"}, {"id": + "909", "text": "hello world", "language": "en"}, {"id": "910", "text": "hello + world", "language": "en"}, {"id": "911", "text": "hello world", "language": + "en"}, {"id": "912", "text": "hello world", "language": "en"}, {"id": "913", + "text": "hello world", "language": "en"}, {"id": "914", "text": "hello world", + "language": "en"}, {"id": "915", "text": "hello world", "language": "en"}, {"id": + "916", "text": "hello world", "language": "en"}, {"id": "917", "text": "hello + world", "language": "en"}, {"id": "918", "text": "hello world", "language": + "en"}, {"id": "919", "text": "hello world", "language": "en"}, {"id": "920", + "text": "hello world", "language": "en"}, {"id": "921", "text": "hello world", + "language": "en"}, {"id": "922", "text": "hello world", "language": "en"}, {"id": + "923", "text": "hello world", "language": "en"}, {"id": "924", "text": "hello + world", "language": "en"}, {"id": "925", "text": "hello world", "language": + "en"}, {"id": "926", "text": "hello world", "language": "en"}, {"id": "927", + "text": "hello world", "language": "en"}, {"id": "928", "text": "hello world", + "language": "en"}, {"id": "929", "text": "hello world", "language": "en"}, {"id": + "930", "text": "hello world", "language": "en"}, {"id": "931", "text": "hello + world", "language": "en"}, {"id": "932", "text": "hello world", "language": + "en"}, {"id": "933", "text": "hello world", "language": "en"}, {"id": "934", + "text": "hello world", "language": "en"}, {"id": "935", "text": "hello world", + "language": "en"}, {"id": "936", "text": "hello world", "language": "en"}, {"id": + "937", "text": "hello world", "language": "en"}, {"id": "938", "text": "hello + world", "language": "en"}, {"id": "939", "text": "hello world", "language": + "en"}, {"id": "940", "text": "hello world", "language": "en"}, {"id": "941", + "text": "hello world", "language": "en"}, {"id": "942", "text": "hello world", + "language": "en"}, {"id": "943", "text": "hello world", "language": "en"}, {"id": + "944", "text": "hello world", "language": "en"}, {"id": "945", "text": "hello + world", "language": "en"}, {"id": "946", "text": "hello world", "language": + "en"}, {"id": "947", "text": "hello world", "language": "en"}, {"id": "948", + "text": "hello world", "language": "en"}, {"id": "949", "text": "hello world", + "language": "en"}, {"id": "950", "text": "hello world", "language": "en"}, {"id": + "951", "text": "hello world", "language": "en"}, {"id": "952", "text": "hello + world", "language": "en"}, {"id": "953", "text": "hello world", "language": + "en"}, {"id": "954", "text": "hello world", "language": "en"}, {"id": "955", + "text": "hello world", "language": "en"}, {"id": "956", "text": "hello world", + "language": "en"}, {"id": "957", "text": "hello world", "language": "en"}, {"id": + "958", "text": "hello world", "language": "en"}, {"id": "959", "text": "hello + world", "language": "en"}, {"id": "960", "text": "hello world", "language": + "en"}, {"id": "961", "text": "hello world", "language": "en"}, {"id": "962", + "text": "hello world", "language": "en"}, {"id": "963", "text": "hello world", + "language": "en"}, {"id": "964", "text": "hello world", "language": "en"}, {"id": + "965", "text": "hello world", "language": "en"}, {"id": "966", "text": "hello + world", "language": "en"}, {"id": "967", "text": "hello world", "language": + "en"}, {"id": "968", "text": "hello world", "language": "en"}, {"id": "969", + "text": "hello world", "language": "en"}, {"id": "970", "text": "hello world", + "language": "en"}, {"id": "971", "text": "hello world", "language": "en"}, {"id": + "972", "text": "hello world", "language": "en"}, {"id": "973", "text": "hello + world", "language": "en"}, {"id": "974", "text": "hello world", "language": + "en"}, {"id": "975", "text": "hello world", "language": "en"}, {"id": "976", + "text": "hello world", "language": "en"}, {"id": "977", "text": "hello world", + "language": "en"}, {"id": "978", "text": "hello world", "language": "en"}, {"id": + "979", "text": "hello world", "language": "en"}, {"id": "980", "text": "hello + world", "language": "en"}, {"id": "981", "text": "hello world", "language": + "en"}, {"id": "982", "text": "hello world", "language": "en"}, {"id": "983", + "text": "hello world", "language": "en"}, {"id": "984", "text": "hello world", + "language": "en"}, {"id": "985", "text": "hello world", "language": "en"}, {"id": + "986", "text": "hello world", "language": "en"}, {"id": "987", "text": "hello + world", "language": "en"}, {"id": "988", "text": "hello world", "language": + "en"}, {"id": "989", "text": "hello world", "language": "en"}, {"id": "990", + "text": "hello world", "language": "en"}, {"id": "991", "text": "hello world", + "language": "en"}, {"id": "992", "text": "hello world", "language": "en"}, {"id": + "993", "text": "hello world", "language": "en"}, {"id": "994", "text": "hello + world", "language": "en"}, {"id": "995", "text": "hello world", "language": + "en"}, {"id": "996", "text": "hello world", "language": "en"}, {"id": "997", + "text": "hello world", "language": "en"}, {"id": "998", "text": "hello world", + "language": "en"}, {"id": "999", "text": "hello world", "language": "en"}, {"id": + "1000", "text": "hello world", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '55962' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocumentBatch","message":"Batch + request contains too many records. Max 1000 records are permitted."}}}' + headers: + apim-request-id: aa9589a7-7057-4899-8853-64e9a9a4588e + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:47 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '10' + status: + code: 400 + message: Bad Request + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_client_passed_default_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_client_passed_default_language_hint.yaml new file mode 100644 index 000000000000..5669a1da3adb --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_client_passed_default_language_hint.yaml @@ -0,0 +1,108 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "es"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "es"}]}' + headers: + Accept: + - application/json + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 63a32671-e4f1-4ecf-b8dd-5c58051ebda9 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:47 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '2' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 272a4c80-6b40-476f-9d05-701c2a54ea72 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:47 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '92' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "es"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "es"}]}' + headers: + Accept: + - application/json + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: f344bd29-a1d2-4109-8499-fc1817740a61 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:47 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '2' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_attribute_error_no_result_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_attribute_error_no_result_attribute.yaml new file mode 100644 index 000000000000..8fe2598fc88b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_attribute_error_no_result_attribute.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '58' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 2d1f109a-17ed-4b83-b1aa-ee11406f4c72 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:48 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '2' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_attribute_error_nonexistent_attribute.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_attribute_error_nonexistent_attribute.yaml new file mode 100644 index 000000000000..032e12b2f14b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_attribute_error_nonexistent_attribute.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '58' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: f363c9a3-910b-4437-95f5-b3bfb7d1038c + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:48 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '2' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_errors.yaml new file mode 100644 index 000000000000..ca234b3ee88c --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_errors.yaml @@ -0,0 +1,41 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "", "language": "en"}, {"id": "2", "text": + "I did not like the hotel we stayed at.", "language": "english"}, {"id": "3", + "text": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '5308' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"A + document within the request was too large to be processed. Limit document + size to: 5120 text elements. For additional details on the data limitations + see https://aka.ms/text-analytics-data-limits"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: f7e35a3b-dfe2-494c-82b7-f3ab5759b8c3 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:49 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '4' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_warnings.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_warnings.yaml new file mode 100644 index 000000000000..164878ac9be1 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_document_warnings.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "This won''t actually create a warning + :''(", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '98' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: c4071053-3e6e-4bfa-bc65-6a85f13e053f + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 + date: Thu, 23 Jul 2020 17:19:49 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '79' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_duplicate_ids_error.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_duplicate_ids_error.yaml new file mode 100644 index 000000000000..b5208e4b463e --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_duplicate_ids_error.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "hello world", "language": "en"}, {"id": + "1", "text": "I did not like the hotel we stayed at.", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '150' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"InvalidRequest","message":"Invalid document in request.","innererror":{"code":"InvalidDocument","message":"Request + contains duplicated Ids. Make sure each document has a unique Id."}}}' + headers: + apim-request-id: eb8ac9bb-71d3-4895-925d-be0bd9e70da7 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:50 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '5' + status: + code: 400 + message: Bad Request + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_empty_credential_class.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_empty_credential_class.yaml new file mode 100644 index 000000000000..0fcb79963484 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_empty_credential_class.yaml @@ -0,0 +1,28 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This is written in English.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '85' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"401","message":"Access denied due to invalid subscription + key or wrong API endpoint. Make sure to provide a valid key for an active + subscription and use a correct regional API endpoint for your resource."}}' + headers: + content-length: '224' + date: Thu, 23 Jul 2020 17:19:49 GMT + status: + code: 401 + message: PermissionDenied + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_input_with_all_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_input_with_all_errors.yaml new file mode 100644 index 000000000000..0bbd383679e5 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_input_with_all_errors.yaml @@ -0,0 +1,37 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "", "language": "en"}, {"id": "2", "text": + "Hola", "language": "Spanish"}, {"id": "3", "text": "", "language": "de"}]}' + headers: + Accept: + - application/json + Content-Length: + - '153' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 04aae24c-cda5-46df-82d8-d00ce1b997e0 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:50 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '2' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_input_with_some_errors.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_input_with_some_errors.yaml new file mode 100644 index 000000000000..a1bd4c36a655 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_input_with_some_errors.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "hola", "language": "es"}, {"id": "2", + "text": "", "language": "en"}, {"id": "3", "text": "Is 998.214.865-68 your Brazilian + CPF number?", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '192' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"3","entities":[{"text":"998.214.865-68","category":"Brazil + CPF Number","offset":3,"length":14,"confidenceScore":0.85}],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: b41905c9-2f2d-40ee-821e-2482d4882b61 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 + date: Thu, 23 Jul 2020 17:19:50 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '79' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_invalid_language_hint_docs.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_invalid_language_hint_docs.yaml new file mode 100644 index 000000000000..07bf4a04c6db --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_invalid_language_hint_docs.yaml @@ -0,0 +1,33 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "This should fail because we''re passing + in an invalid language hint", "language": "notalanguage"}]}' + headers: + Accept: + - application/json + Content-Length: + - '134' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: a77e3fea-6c23-477f-8a72-3885cb74e89f + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:51 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '2' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_invalid_language_hint_method.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_invalid_language_hint_method.yaml new file mode 100644 index 000000000000..ab4b47342a6b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_invalid_language_hint_method.yaml @@ -0,0 +1,33 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This should fail because we''re passing + in an invalid language hint", "language": "notalanguage"}]}' + headers: + Accept: + - application/json + Content-Length: + - '134' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 439917d9-3122-42b3-923f-f45d5927a520 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:51 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '2' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_language_kwarg_english.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_language_kwarg_english.yaml new file mode 100644 index 000000000000..4c931318f80b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_language_kwarg_english.yaml @@ -0,0 +1,33 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "Bill Gates is the CEO of Microsoft.", + "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '93' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=latest&showStats=true + response: + body: + string: '{"statistics":{"documentsCount":1,"validDocumentsCount":1,"erroneousDocumentsCount":0,"transactionsCount":1},"documents":[{"id":"0","statistics":{"charactersCount":35,"transactionsCount":1},"entities":[{"text":"Bill + Gates","category":"Person","offset":0,"length":10,"confidenceScore":0.81},{"text":"Microsoft","category":"Organization","offset":25,"length":9,"confidenceScore":0.64}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: e612f043-5b57-4974-ac8f-8eaca05cdffe + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 + date: Thu, 23 Jul 2020 17:19:52 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '72' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=latest&showStats=true +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_length_with_emoji.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_length_with_emoji.yaml new file mode 100644 index 000000000000..0b6ee9b2eff7 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_length_with_emoji.yaml @@ -0,0 +1,33 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "\ud83d\udc69 SSN: 123-12-1234", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '87' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"0","entities":[{"text":"123-12-1234","category":"U.S. + Social Security Number (SSN)","offset":7,"length":11,"confidenceScore":0.85}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: d85eded0-4738-4ad8-a913-eec883d4d280 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 + date: Thu, 23 Jul 2020 17:19:52 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '71' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_out_of_order_ids.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_out_of_order_ids.yaml new file mode 100644 index 000000000000..8854aaac4d1a --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_out_of_order_ids.yaml @@ -0,0 +1,36 @@ +interactions: +- request: + body: '{"documents": [{"id": "56", "text": ":)", "language": "en"}, {"id": "0", + "text": ":(", "language": "en"}, {"id": "22", "text": "", "language": "en"}, + {"id": "19", "text": ":P", "language": "en"}, {"id": "1", "text": ":D", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '241' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"56","entities":[],"warnings":[]},{"id":"0","entities":[],"warnings":[]},{"id":"19","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: d2c34707-fd54-46d1-afcb-6428d916171f + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 + date: Thu, 23 Jul 2020 17:19:52 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '65' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_output_same_order_as_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_output_same_order_as_input.yaml new file mode 100644 index 000000000000..5f4753385eab --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_output_same_order_as_input.yaml @@ -0,0 +1,34 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "one", "language": "en"}, {"id": "2", + "text": "two", "language": "en"}, {"id": "3", "text": "three", "language": "en"}, + {"id": "4", "text": "four", "language": "en"}, {"id": "5", "text": "five", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '249' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"5","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 10d501bf-1bf5-48be-85bd-818a8a4d6bb3 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=5 + date: Thu, 23 Jul 2020 17:19:53 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '75' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_pass_cls.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_pass_cls.yaml new file mode 100644 index 000000000000..61672923a812 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_pass_cls.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "Test passing cls to endpoint", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '86' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"0","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 6ab92cde-4042-45d2-913b-d6dad6184a02 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 + date: Thu, 23 Jul 2020 17:19:53 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '67' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_passing_only_string.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_passing_only_string.yaml new file mode 100644 index 000000000000..49919db5c1a5 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_passing_only_string.yaml @@ -0,0 +1,41 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "My SSN is 859-98-0987.", "language": + "en"}, {"id": "1", "text": "Your ABA number - 111000025 - is the first 9 digits + in the lower left hand corner of your personal check.", "language": "en"}, {"id": + "2", "text": "Is 998.214.865-68 your Brazilian CPF number?", "language": "en"}, + {"id": "3", "text": "", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '358' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true + response: + body: + string: '{"statistics":{"documentsCount":4,"validDocumentsCount":3,"erroneousDocumentsCount":1,"transactionsCount":3},"documents":[{"id":"0","statistics":{"charactersCount":22,"transactionsCount":1},"entities":[{"text":"859-98-0987","category":"U.S. + Social Security Number (SSN)","offset":10,"length":11,"confidenceScore":0.65}],"warnings":[]},{"id":"1","statistics":{"charactersCount":105,"transactionsCount":1},"entities":[{"text":"111000025","category":"Phone + Number","offset":18,"length":9,"confidenceScore":0.8},{"text":"111000025","category":"ABA + Routing Number","offset":18,"length":9,"confidenceScore":0.75}],"warnings":[]},{"id":"2","statistics":{"charactersCount":44,"transactionsCount":1},"entities":[{"text":"998.214.865-68","category":"Brazil + CPF Number","offset":3,"length":14,"confidenceScore":0.85}],"warnings":[]}],"errors":[{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 21f124c4-b892-42b9-be5e-3a0e28bc5a7b + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:54 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '138' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=true +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_per_item_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_per_item_dont_use_language_hint.yaml new file mode 100644 index 000000000000..41c33df290da --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_per_item_dont_use_language_hint.yaml @@ -0,0 +1,34 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + ""}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + ""}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '236' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 6fa308e2-4146-49ac-8ce0-0a2e16abfe4b + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:55 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '76' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_rotate_subscription_key.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_rotate_subscription_key.yaml new file mode 100644 index 000000000000..7240fb83ad83 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_rotate_subscription_key.yaml @@ -0,0 +1,94 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: e2afbde5-c8c3-449e-a0e2-bb5614441303 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:54 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '89' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"error":{"code":"401","message":"Access denied due to invalid subscription + key or wrong API endpoint. Make sure to provide a valid key for an active + subscription and use a correct regional API endpoint for your resource."}}' + headers: + content-length: '224' + date: Thu, 23 Jul 2020 17:19:54 GMT + status: + code: 401 + message: PermissionDenied + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 2b14ce51-9676-4d12-9b44-097d78573dfb + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:55 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '93' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_show_stats_and_model_version.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_show_stats_and_model_version.yaml new file mode 100644 index 000000000000..84d162bbfe7c --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_show_stats_and_model_version.yaml @@ -0,0 +1,36 @@ +interactions: +- request: + body: '{"documents": [{"id": "56", "text": ":)", "language": "en"}, {"id": "0", + "text": ":(", "language": "en"}, {"id": "22", "text": "", "language": "en"}, + {"id": "19", "text": ":P", "language": "en"}, {"id": "1", "text": ":D", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '241' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=latest&showStats=true + response: + body: + string: '{"statistics":{"documentsCount":5,"validDocumentsCount":4,"erroneousDocumentsCount":1,"transactionsCount":4},"documents":[{"id":"56","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"0","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"19","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]},{"id":"1","statistics":{"charactersCount":2,"transactionsCount":1},"entities":[],"warnings":[]}],"errors":[{"id":"22","error":{"code":"InvalidArgument","message":"Invalid + document in request.","innererror":{"code":"InvalidDocument","message":"Document + text is empty."}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 78db8b35-0650-43b1-a905-2cd921c8d718 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=4 + date: Thu, 23 Jul 2020 17:19:55 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '66' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?model-version=latest&showStats=true +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_too_many_documents.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_too_many_documents.yaml new file mode 100644 index 000000000000..43a8e7242ceb --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_too_many_documents.yaml @@ -0,0 +1,37 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "One", "language": "en"}, {"id": "1", + "text": "Two", "language": "en"}, {"id": "2", "text": "Three", "language": "en"}, + {"id": "3", "text": "Four", "language": "en"}, {"id": "4", "text": "Five", "language": + "en"}, {"id": "5", "text": "Six", "language": "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '295' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]},{"id":"4","entities":[],"warnings":[]},{"id":"5","entities":[],"warnings":[]}],"errors":[{"id":"","error":{"code":"InvalidRequest","message":"The + request has exceeded the allowed document limits.","innererror":{"code":"InvalidDocumentBatch","message":"The + number of documents in the request have exceeded the data limitations. See + https://aka.ms/text-analytics-data-limits for additional information"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 66c2a87a-f154-4c39-b802-7b8d814ff3f9 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=6 + date: Thu, 23 Jul 2020 17:19:55 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '74' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_user_agent.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_user_agent.yaml new file mode 100644 index 000000000000..d8f59385c858 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_user_agent.yaml @@ -0,0 +1,34 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "en"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "en"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]},{"id":"3","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 0893dd3a-bf7e-41d4-bcab-e428b9b5d47d + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:57 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '83' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_dont_use_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_dont_use_language_hint.yaml new file mode 100644 index 000000000000..621a498dac4e --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_dont_use_language_hint.yaml @@ -0,0 +1,34 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This was the best day of my life.", + "language": ""}, {"id": "1", "text": "I did not like the hotel we stayed at. + It was too expensive.", "language": ""}, {"id": "2", "text": "The restaurant + was not as good as I hoped.", "language": ""}]}' + headers: + Accept: + - application/json + Content-Length: + - '273' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"0","entities":[],"warnings":[]},{"id":"1","entities":[],"warnings":[]},{"id":"2","entities":[],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 5bb21583-5cc7-4ab1-a81e-b7fcf1236fad + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=3 + date: Thu, 23 Jul 2020 17:19:58 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '131' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint.yaml new file mode 100644 index 000000000000..afb081801c19 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint.yaml @@ -0,0 +1,39 @@ +interactions: +- request: + body: '{"documents": [{"id": "0", "text": "This was the best day of my life.", + "language": "fr"}, {"id": "1", "text": "I did not like the hotel we stayed at. + It was too expensive.", "language": "fr"}, {"id": "2", "text": "The restaurant + was not as good as I hoped.", "language": "fr"}]}' + headers: + Accept: + - application/json + Content-Length: + - '279' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"0","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: e8eae430-8838-4fda-9dd5-ae283cbdd325 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:58 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '3' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml new file mode 100644 index 000000000000..57c8e5b5bf65 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_dict_per_item_hints.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I will go to the park.", "language": + "es"}, {"id": "2", "text": "I did not like the hotel we stayed at.", "language": + "es"}, {"id": "3", "text": "The restaurant had really good food.", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '240' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"3","entities":[],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 79b03f0e-bebb-4096-8010-14fb8734dadd + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 + date: Thu, 23 Jul 2020 17:19:57 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '80' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_obj_input.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_obj_input.yaml new file mode 100644 index 000000000000..d94542bb0494 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_obj_input.yaml @@ -0,0 +1,39 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I should take my cat to the veterinarian.", + "language": "de"}, {"id": "4", "text": "Este es un document escrito en Espa\u00f1ol.", + "language": "de"}, {"id": "3", "text": "\u732b\u306f\u5e78\u305b", "language": + "de"}]}' + headers: + Accept: + - application/json + Content-Length: + - '253' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"4","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"3","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: c6aa447e-1084-4062-965a-ad3db86ab494 + content-type: application/json; charset=utf-8 + date: Thu, 23 Jul 2020 17:19:59 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '1' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml new file mode 100644 index 000000000000..b6435020ea8f --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_recognize_pii_entities_async.test_whole_batch_language_hint_and_obj_per_item_hints.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: '{"documents": [{"id": "1", "text": "I should take my cat to the veterinarian.", + "language": "es"}, {"id": "2", "text": "Este es un document escrito en Espa\u00f1ol.", + "language": "es"}, {"id": "3", "text": "\u732b\u306f\u5e78\u305b", "language": + "en"}]}' + headers: + Accept: + - application/json + Content-Length: + - '253' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) + method: POST + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false + response: + body: + string: '{"documents":[{"id":"3","entities":[],"warnings":[]}],"errors":[{"id":"1","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}},{"id":"2","error":{"code":"InvalidArgument","message":"Invalid + Language Code.","innererror":{"code":"UnsupportedLanguageCode","message":"Invalid + language code. Supported languages: en"}}}],"modelVersion":"2020-04-01"}' + headers: + apim-request-id: 718b9664-7ee9-49ed-8d15-243f632afe44 + content-type: application/json; charset=utf-8 + csp-billing-usage: CognitiveServices.TextAnalytics.BatchScoring=1 + date: Thu, 23 Jul 2020 17:19:58 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + transfer-encoding: chunked + x-content-type-options: nosniff + x-envoy-upstream-service-time: '64' + status: + code: 200 + message: OK + url: https://westus2.api.cognitive.microsoft.com//text/analytics/v3.1-preview.1/entities/recognition/pii?showStats=false +version: 1 diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_text_analytics.test_detect_language.yaml b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_text_analytics.test_detect_language.yaml index 8055b10aca13..c255175d949e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_text_analytics.test_detect_language.yaml +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_text_analytics.test_detect_language.yaml @@ -16,19 +16,19 @@ interactions: User-Agent: - azsdk-python-ai-textanalytics/1.0.1 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit) method: POST - uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/languages?showStats=false + uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.1-preview.1/languages?showStats=false response: body: string: '{"documents":[{"id":"1","detectedLanguage":{"name":"English","iso6391Name":"en","confidenceScore":1.0},"warnings":[]}],"errors":[],"modelVersion":"2019-10-01"}' headers: apim-request-id: - - 8f7eff6d-caa2-4867-9bd4-3c74cfa9436d + - 06186e79-1fdc-4e28-87cb-7e6a1422d7f1 content-type: - application/json; charset=utf-8 csp-billing-usage: - CognitiveServices.TextAnalytics.BatchScoring=1 date: - - Thu, 18 Jun 2020 19:52:47 GMT + - Fri, 24 Jul 2020 16:32:55 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload transfer-encoding: diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_analyze_sentiment.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_analyze_sentiment.py index a0c647cce488..6bb79177f12b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/test_analyze_sentiment.py +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_analyze_sentiment.py @@ -576,7 +576,7 @@ def callback(pipeline_response, deserialized, _): assert res == "cls result" @GlobalTextAnalyticsAccountPreparer() - @TextAnalyticsClientPreparer(client_kwargs={"api_version": ApiVersion.V3_1_PREVIEW_1}) + @TextAnalyticsClientPreparer() def test_aspect_based_sentiment_analysis(self, client): documents = [ "It has a sleek premium aluminum design that makes it beautiful to look at." @@ -616,7 +616,7 @@ def test_aspect_based_sentiment_analysis(self, client): self.assertFalse(premium_opinion.is_negated) @GlobalTextAnalyticsAccountPreparer() - @TextAnalyticsClientPreparer(client_kwargs={"api_version": ApiVersion.V3_1_PREVIEW_1}) + @TextAnalyticsClientPreparer() def test_aspect_based_sentiment_analysis_negated_opinion(self, client): documents = [ "The food and service is not good" @@ -658,9 +658,9 @@ def test_aspect_based_sentiment_analysis_negated_opinion(self, client): self.assertTrue(food_opinion.is_negated) @GlobalTextAnalyticsAccountPreparer() - @TextAnalyticsClientPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"api_version": ApiVersion.V3_0}) def test_aspect_based_sentiment_analysis_v3(self, client): - with pytest.raises(TypeError) as excinfo: + with pytest.raises(NotImplementedError) as excinfo: client.analyze_sentiment(["will fail"], mine_opinions=True) - assert "'mine_opinions' is only added for API version v3.1-preview.1 and up" in str(excinfo.value) + assert "'mine_opinions' is only available for API version v3.1-preview.1 and up" in str(excinfo.value) diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_analyze_sentiment_async.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_analyze_sentiment_async.py index 48e2c9477a11..f45de0509957 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/test_analyze_sentiment_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_analyze_sentiment_async.py @@ -592,7 +592,7 @@ def callback(pipeline_response, deserialized, _): assert res == "cls result" @GlobalTextAnalyticsAccountPreparer() - @TextAnalyticsClientPreparer(client_kwargs={"api_version": ApiVersion.V3_1_PREVIEW_1}) + @TextAnalyticsClientPreparer() async def test_aspect_based_sentiment_analysis(self, client): documents = [ "It has a sleek premium aluminum design that makes it beautiful to look at." @@ -632,7 +632,7 @@ async def test_aspect_based_sentiment_analysis(self, client): self.assertFalse(premium_opinion.is_negated) @GlobalTextAnalyticsAccountPreparer() - @TextAnalyticsClientPreparer(client_kwargs={"api_version": ApiVersion.V3_1_PREVIEW_1}) + @TextAnalyticsClientPreparer() async def test_aspect_based_sentiment_analysis_negated_opinion(self, client): documents = [ "The food and service is not good" @@ -674,9 +674,9 @@ async def test_aspect_based_sentiment_analysis_negated_opinion(self, client): self.assertTrue(food_opinion.is_negated) @GlobalTextAnalyticsAccountPreparer() - @TextAnalyticsClientPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"api_version": ApiVersion.V3_0}) async def test_aspect_based_sentiment_analysis_v3(self, client): - with pytest.raises(TypeError) as excinfo: + with pytest.raises(NotImplementedError) as excinfo: await client.analyze_sentiment(["will fail"], mine_opinions=True) - assert "'mine_opinions' is only added for API version v3.1-preview.1 and up" in str(excinfo.value) + assert "'mine_opinions' is only available for API version v3.1-preview.1 and up" in str(excinfo.value) diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_multiapi.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_multiapi.py index 366b0581a533..bd4ec13abde5 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/test_multiapi.py +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_multiapi.py @@ -4,18 +4,19 @@ # Licensed under the MIT License. # ------------------------------------ import functools -from azure.ai.textanalytics import ApiVersion, TextAnalyticsClient +from azure.core.credentials import AzureKeyCredential +from azure.ai.textanalytics import TextAnalyticsClient, ApiVersion from testcase import TextAnalyticsTest, GlobalTextAnalyticsAccountPreparer from testcase import TextAnalyticsClientPreparer as _TextAnalyticsClientPreparer +# pre-apply the client_cls positional argument so it needn't be explicitly passed below TextAnalyticsClientPreparer = functools.partial(_TextAnalyticsClientPreparer, TextAnalyticsClient) - class TestRecognizeEntities(TextAnalyticsTest): @GlobalTextAnalyticsAccountPreparer() @TextAnalyticsClientPreparer() def test_default_api_version(self, client): - assert "v3.0" in client._client._client._base_url + assert "v3.1-preview.1" in client._client._client._base_url @GlobalTextAnalyticsAccountPreparer() @TextAnalyticsClientPreparer(client_kwargs={"api_version": ApiVersion.V3_0}) diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_multiapi_async.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_multiapi_async.py index 964f77edd7a8..1e56ad93d590 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/test_multiapi_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_multiapi_async.py @@ -9,14 +9,14 @@ from testcase import TextAnalyticsTest, GlobalTextAnalyticsAccountPreparer from testcase import TextAnalyticsClientPreparer as _TextAnalyticsClientPreparer +# pre-apply the client_cls positional argument so it needn't be explicitly passed below TextAnalyticsClientPreparer = functools.partial(_TextAnalyticsClientPreparer, TextAnalyticsClient) - class TestRecognizeEntities(TextAnalyticsTest): @GlobalTextAnalyticsAccountPreparer() @TextAnalyticsClientPreparer() def test_default_api_version(self, client): - assert "v3.0" in client._client._client._base_url + assert "v3.1-preview.1" in client._client._client._base_url @GlobalTextAnalyticsAccountPreparer() @TextAnalyticsClientPreparer(client_kwargs={"api_version": ApiVersion.V3_0}) diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities.py new file mode 100644 index 000000000000..a35ccf655264 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities.py @@ -0,0 +1,566 @@ +# coding=utf-8 +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ + +import pytest +import platform +import functools + +from azure.core.exceptions import HttpResponseError, ClientAuthenticationError +from azure.core.credentials import AzureKeyCredential +from testcase import TextAnalyticsTest, GlobalTextAnalyticsAccountPreparer +from testcase import TextAnalyticsClientPreparer as _TextAnalyticsClientPreparer +from azure.ai.textanalytics import ( + TextAnalyticsClient, + TextDocumentInput, + VERSION +) + +# pre-apply the client_cls positional argument so it needn't be explicitly passed below +# the first one +TextAnalyticsClientPreparer = functools.partial(_TextAnalyticsClientPreparer, TextAnalyticsClient) + +# TODO: add back offset and length checks throughout this test once I add them + +class TestRecognizePIIEntities(TextAnalyticsTest): + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_no_single_input(self, client): + with self.assertRaises(TypeError): + response = client.recognize_pii_entities("hello world") + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_all_successful_passing_dict(self, client): + + docs = [{"id": "1", "text": "My SSN is 859-98-0987."}, + {"id": "2", "text": "Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check."}, + {"id": "3", "text": "Is 998.214.865-68 your Brazilian CPF number?"}] + + response = client.recognize_pii_entities(docs, show_stats=True) + self.assertEqual(response[0].entities[0].text, "859-98-0987") + self.assertEqual(response[0].entities[0].category, "U.S. Social Security Number (SSN)") + self.assertEqual(response[1].entities[0].text, "111000025") + # self.assertEqual(response[1].entities[0].category, "ABA Routing Number") # Service is currently returning PhoneNumber here + self.assertEqual(response[2].entities[0].text, "998.214.865-68") + self.assertEqual(response[2].entities[0].category, "Brazil CPF Number") + for doc in response: + self.assertIsNotNone(doc.id) + self.assertIsNotNone(doc.statistics) + for entity in doc.entities: + self.assertIsNotNone(entity.text) + self.assertIsNotNone(entity.category) + self.assertIsNotNone(entity.confidence_score) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_all_successful_passing_text_document_input(self, client): + docs = [ + TextDocumentInput(id="1", text="My SSN is 859-98-0987."), + TextDocumentInput(id="2", text="Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check."), + TextDocumentInput(id="3", text="Is 998.214.865-68 your Brazilian CPF number?") + ] + + response = client.recognize_pii_entities(docs, show_stats=True) + self.assertEqual(response[0].entities[0].text, "859-98-0987") + self.assertEqual(response[0].entities[0].category, "U.S. Social Security Number (SSN)") + self.assertEqual(response[1].entities[0].text, "111000025") + # self.assertEqual(response[1].entities[0].category, "ABA Routing Number") # Service is currently returning PhoneNumber here + self.assertEqual(response[2].entities[0].text, "998.214.865-68") + self.assertEqual(response[2].entities[0].category, "Brazil CPF Number") + for doc in response: + self.assertIsNotNone(doc.id) + self.assertIsNotNone(doc.statistics) + for entity in doc.entities: + self.assertIsNotNone(entity.text) + self.assertIsNotNone(entity.category) + self.assertIsNotNone(entity.confidence_score) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_length_with_emoji(self, client): + result = client.recognize_pii_entities(["👩 SSN: 123-12-1234"]) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_passing_only_string(self, client): + docs = [ + u"My SSN is 859-98-0987.", + u"Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check.", + u"Is 998.214.865-68 your Brazilian CPF number?", + u"" + ] + + response = client.recognize_pii_entities(docs, show_stats=True) + self.assertEqual(response[0].entities[0].text, "859-98-0987") + self.assertEqual(response[0].entities[0].category, "U.S. Social Security Number (SSN)") + self.assertEqual(response[1].entities[0].text, "111000025") + # self.assertEqual(response[1].entities[0].category, "ABA Routing Number") # Service is currently returning PhoneNumber here + self.assertEqual(response[2].entities[0].text, "998.214.865-68") + self.assertEqual(response[2].entities[0].category, "Brazil CPF Number") + self.assertTrue(response[3].is_error) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_input_with_some_errors(self, client): + docs = [{"id": "1", "language": "es", "text": "hola"}, + {"id": "2", "text": ""}, + {"id": "3", "text": "Is 998.214.865-68 your Brazilian CPF number?"}] + + response = client.recognize_pii_entities(docs) + self.assertTrue(response[0].is_error) + self.assertTrue(response[1].is_error) + self.assertFalse(response[2].is_error) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_input_with_all_errors(self, client): + docs = [{"id": "1", "text": ""}, + {"id": "2", "language": "Spanish", "text": "Hola"}, + {"id": "3", "language": "de", "text": ""}] + + response = client.recognize_pii_entities(docs) + self.assertTrue(response[0].is_error) + self.assertTrue(response[1].is_error) + self.assertTrue(response[2].is_error) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_too_many_documents(self, client): + docs = ["One", "Two", "Three", "Four", "Five", "Six"] + + with pytest.raises(HttpResponseError) as excinfo: + client.recognize_pii_entities(docs) + assert excinfo.value.status_code == 400 + assert excinfo.value.error.code == "InvalidDocumentBatch" + assert "(InvalidDocumentBatch) The number of documents in the request have exceeded the data limitations" in str(excinfo.value) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_output_same_order_as_input(self, client): + docs = [ + TextDocumentInput(id="1", text="one"), + TextDocumentInput(id="2", text="two"), + TextDocumentInput(id="3", text="three"), + TextDocumentInput(id="4", text="four"), + TextDocumentInput(id="5", text="five") + ] + + response = client.recognize_pii_entities(docs) + + for idx, doc in enumerate(response): + self.assertEqual(str(idx + 1), doc.id) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"text_analytics_account_key": ""}) + def test_empty_credential_class(self, client): + with self.assertRaises(ClientAuthenticationError): + response = client.recognize_pii_entities( + ["This is written in English."] + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"text_analytics_account_key": "xxxxxxxxxxxx"}) + def test_bad_credentials(self, client): + with self.assertRaises(ClientAuthenticationError): + response = client.recognize_pii_entities( + ["This is written in English."] + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_bad_document_input(self, client): + docs = "This is the wrong type" + + with self.assertRaises(TypeError): + response = client.recognize_pii_entities(docs) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_mixing_inputs(self, client): + docs = [ + {"id": "1", "text": "Microsoft was founded by Bill Gates and Paul Allen."}, + TextDocumentInput(id="2", text="I did not like the hotel we stayed at. It was too expensive."), + u"You cannot mix string input with the above inputs" + ] + with self.assertRaises(TypeError): + response = client.recognize_pii_entities(docs) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_out_of_order_ids(self, client): + docs = [{"id": "56", "text": ":)"}, + {"id": "0", "text": ":("}, + {"id": "22", "text": ""}, + {"id": "19", "text": ":P"}, + {"id": "1", "text": ":D"}] + + response = client.recognize_pii_entities(docs) + in_order = ["56", "0", "22", "19", "1"] + for idx, resp in enumerate(response): + self.assertEqual(resp.id, in_order[idx]) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_show_stats_and_model_version(self, client): + def callback(response): + self.assertIsNotNone(response) + self.assertIsNotNone(response.model_version, msg=response.raw_response) + self.assertIsNotNone(response.raw_response) + self.assertEqual(response.statistics.document_count, 5) + self.assertEqual(response.statistics.transaction_count, 4) + self.assertEqual(response.statistics.valid_document_count, 4) + self.assertEqual(response.statistics.erroneous_document_count, 1) + + docs = [{"id": "56", "text": ":)"}, + {"id": "0", "text": ":("}, + {"id": "22", "text": ""}, + {"id": "19", "text": ":P"}, + {"id": "1", "text": ":D"}] + + response = client.recognize_pii_entities( + docs, + show_stats=True, + model_version="latest", + raw_response_hook=callback + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_batch_size_over_limit(self, client): + docs = [u"hello world"] * 1050 + with self.assertRaises(HttpResponseError): + response = client.recognize_pii_entities(docs) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_whole_batch_language_hint(self, client): + def callback(resp): + language_str = "\"language\": \"fr\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + docs = [ + u"This was the best day of my life.", + u"I did not like the hotel we stayed at. It was too expensive.", + u"The restaurant was not as good as I hoped." + ] + + response = client.recognize_pii_entities(docs, language="fr", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_whole_batch_dont_use_language_hint(self, client): + def callback(resp): + language_str = "\"language\": \"\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + docs = [ + u"This was the best day of my life.", + u"I did not like the hotel we stayed at. It was too expensive.", + u"The restaurant was not as good as I hoped." + ] + + response = client.recognize_pii_entities(docs, language="", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_per_item_dont_use_language_hint(self, client): + def callback(resp): + language_str = "\"language\": \"\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 2) + language_str = "\"language\": \"en\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 1) + + + docs = [{"id": "1", "language": "", "text": "I will go to the park."}, + {"id": "2", "language": "", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = client.recognize_pii_entities(docs, raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_whole_batch_language_hint_and_obj_input(self, client): + def callback(resp): + language_str = "\"language\": \"de\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + docs = [ + TextDocumentInput(id="1", text="I should take my cat to the veterinarian."), + TextDocumentInput(id="4", text="Este es un document escrito en Español."), + TextDocumentInput(id="3", text="猫は幸せ"), + ] + + response = client.recognize_pii_entities(docs, language="de", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_whole_batch_language_hint_and_obj_per_item_hints(self, client): + def callback(resp): + language_str = "\"language\": \"es\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 2) + language_str = "\"language\": \"en\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 1) + + docs = [ + TextDocumentInput(id="1", text="I should take my cat to the veterinarian.", language="es"), + TextDocumentInput(id="2", text="Este es un document escrito en Español.", language="es"), + TextDocumentInput(id="3", text="猫は幸せ"), + ] + + response = client.recognize_pii_entities(docs, language="en", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_whole_batch_language_hint_and_dict_per_item_hints(self, client): + def callback(resp): + language_str = "\"language\": \"es\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 2) + language_str = "\"language\": \"en\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 1) + + + docs = [{"id": "1", "language": "es", "text": "I will go to the park."}, + {"id": "2", "language": "es", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = client.recognize_pii_entities(docs, language="en", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"default_language": "es"}) + def test_client_passed_default_language_hint(self, client): + def callback(resp): + language_str = "\"language\": \"es\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + def callback_2(resp): + language_str = "\"language\": \"en\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + docs = [{"id": "1", "text": "I will go to the park."}, + {"id": "2", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = client.recognize_pii_entities(docs, raw_response_hook=callback) + response = client.recognize_pii_entities(docs, language="en", raw_response_hook=callback_2) + response = client.recognize_pii_entities(docs, raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_invalid_language_hint_method(self, client): + response = client.recognize_pii_entities( + ["This should fail because we're passing in an invalid language hint"], language="notalanguage" + ) + self.assertEqual(response[0].error.code, 'UnsupportedLanguageCode') + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_invalid_language_hint_docs(self, client): + response = client.recognize_pii_entities( + [{"id": "1", "language": "notalanguage", "text": "This should fail because we're passing in an invalid language hint"}] + ) + self.assertEqual(response[0].error.code, 'UnsupportedLanguageCode') + + @GlobalTextAnalyticsAccountPreparer() + def test_rotate_subscription_key(self, resource_group, location, text_analytics_account, text_analytics_account_key): + credential = AzureKeyCredential(text_analytics_account_key) + client = TextAnalyticsClient(text_analytics_account, credential) + + docs = [{"id": "1", "text": "I will go to the park."}, + {"id": "2", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = client.recognize_pii_entities(docs) + self.assertIsNotNone(response) + + credential.update("xxx") # Make authentication fail + with self.assertRaises(ClientAuthenticationError): + response = client.recognize_pii_entities(docs) + + credential.update(text_analytics_account_key) # Authenticate successfully again + response = client.recognize_pii_entities(docs) + self.assertIsNotNone(response) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_user_agent(self, client): + def callback(resp): + self.assertIn("azsdk-python-ai-textanalytics/{} Python/{} ({})".format( + VERSION, platform.python_version(), platform.platform()), + resp.http_request.headers["User-Agent"] + ) + + docs = [{"id": "1", "text": "I will go to the park."}, + {"id": "2", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = client.recognize_pii_entities(docs, raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_document_attribute_error_no_result_attribute(self, client): + docs = [{"id": "1", "text": ""}] + response = client.recognize_pii_entities(docs) + + # Attributes on DocumentError + self.assertTrue(response[0].is_error) + self.assertEqual(response[0].id, "1") + self.assertIsNotNone(response[0].error) + + # Result attribute not on DocumentError, custom error message + try: + entities = response[0].entities + except AttributeError as custom_error: + self.assertEqual( + custom_error.args[0], + '\'DocumentError\' object has no attribute \'entities\'. ' + 'The service was unable to process this document:\nDocument Id: 1\nError: ' + 'InvalidDocument - Document text is empty.\n' + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_document_attribute_error_nonexistent_attribute(self, client): + docs = [{"id": "1", "text": ""}] + response = client.recognize_pii_entities(docs) + + # Attribute not found on DocumentError or result obj, default behavior/message + try: + entities = response[0].attribute_not_on_result_or_error + except AttributeError as default_behavior: + self.assertEqual( + default_behavior.args[0], + '\'DocumentError\' object has no attribute \'attribute_not_on_result_or_error\'' + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_bad_model_version_error(self, client): + docs = [{"id": "1", "language": "english", "text": "I did not like the hotel we stayed at."}] + + try: + result = client.recognize_pii_entities(docs, model_version="bad") + except HttpResponseError as err: + self.assertEqual(err.error.code, "ModelVersionIncorrect") + self.assertIsNotNone(err.error.message) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_document_errors(self, client): + text = "" + for _ in range(5121): + text += "x" + + docs = [{"id": "1", "text": ""}, + {"id": "2", "language": "english", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": text}] + + doc_errors = client.recognize_pii_entities(docs) + self.assertEqual(doc_errors[0].error.code, "InvalidDocument") + self.assertIsNotNone(doc_errors[0].error.message) + self.assertEqual(doc_errors[1].error.code, "UnsupportedLanguageCode") + self.assertIsNotNone(doc_errors[1].error.message) + self.assertEqual(doc_errors[2].error.code, "InvalidDocument") + self.assertIsNotNone(doc_errors[2].error.message) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_document_warnings(self, client): + # No warnings actually returned for recognize_pii_entities. Will update when they add + docs = [ + {"id": "1", "text": "This won't actually create a warning :'("}, + ] + + result = client.recognize_pii_entities(docs) + for doc in result: + doc_warnings = doc.warnings + self.assertEqual(len(doc_warnings), 0) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_not_passing_list_for_docs(self, client): + docs = {"id": "1", "text": "hello world"} + with pytest.raises(TypeError) as excinfo: + client.recognize_pii_entities(docs) + assert "Input documents cannot be a dict" in str(excinfo.value) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_missing_input_records_error(self, client): + docs = [] + with pytest.raises(ValueError) as excinfo: + client.recognize_pii_entities(docs) + assert "Input documents can not be empty or None" in str(excinfo.value) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_passing_none_docs(self, client): + with pytest.raises(ValueError) as excinfo: + client.recognize_pii_entities(None) + assert "Input documents can not be empty or None" in str(excinfo.value) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_duplicate_ids_error(self, client): + # Duplicate Ids + docs = [{"id": "1", "text": "hello world"}, + {"id": "1", "text": "I did not like the hotel we stayed at."}] + try: + result = client.recognize_pii_entities(docs) + except HttpResponseError as err: + self.assertEqual(err.error.code, "InvalidDocument") + self.assertIsNotNone(err.error.message) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_batch_size_over_limit_error(self, client): + # Batch size over limit + docs = [u"hello world"] * 1001 + try: + response = client.recognize_pii_entities(docs) + except HttpResponseError as err: + self.assertEqual(err.error.code, "InvalidDocumentBatch") + self.assertIsNotNone(err.error.message) + + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_pass_cls(self, client): + def callback(pipeline_response, deserialized, _): + return "cls result" + res = client.recognize_pii_entities( + documents=["Test passing cls to endpoint"], + cls=callback + ) + assert res == "cls result" + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + def test_language_kwarg_english(self, client): + def callback(response): + language_str = "\"language\": \"en\"" + self.assertEqual(response.http_request.body.count(language_str), 1) + self.assertIsNotNone(response.model_version) + self.assertIsNotNone(response.statistics) + + res = client.recognize_pii_entities( + documents=["Bill Gates is the CEO of Microsoft."], + model_version="latest", + show_stats=True, + language="en", + raw_response_hook=callback + ) diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities_async.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities_async.py new file mode 100644 index 000000000000..c8e38af984dd --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities_async.py @@ -0,0 +1,567 @@ +# coding=utf-8 +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ + +import pytest +import platform +import functools + +from azure.core.exceptions import HttpResponseError, ClientAuthenticationError +from azure.core.credentials import AzureKeyCredential +from asynctestcase import AsyncTextAnalyticsTest +from testcase import GlobalTextAnalyticsAccountPreparer +from testcase import TextAnalyticsClientPreparer as _TextAnalyticsClientPreparer +from azure.ai.textanalytics.aio import TextAnalyticsClient +from azure.ai.textanalytics import ( + TextDocumentInput, + VERSION, + ApiVersion +) + +# pre-apply the client_cls positional argument so it needn't be explicitly passed below +# the first one +TextAnalyticsClientPreparer = functools.partial(_TextAnalyticsClientPreparer, TextAnalyticsClient) +# TODO: add back offset and length checks throughout this test once I add them + +class TestRecognizePIIEntities(AsyncTextAnalyticsTest): + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_no_single_input(self, client): + with self.assertRaises(TypeError): + response = await client.recognize_pii_entities("hello world") + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_all_successful_passing_dict(self, client): + + docs = [{"id": "1", "text": "My SSN is 859-98-0987."}, + {"id": "2", "text": "Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check."}, + {"id": "3", "text": "Is 998.214.865-68 your Brazilian CPF number?"}] + + response = await client.recognize_pii_entities(docs, show_stats=True) + self.assertEqual(response[0].entities[0].text, "859-98-0987") + self.assertEqual(response[0].entities[0].category, "U.S. Social Security Number (SSN)") + self.assertEqual(response[1].entities[0].text, "111000025") + # self.assertEqual(response[1].entities[0].category, "ABA Routing Number") # Service is currently returning PhoneNumber here + self.assertEqual(response[2].entities[0].text, "998.214.865-68") + self.assertEqual(response[2].entities[0].category, "Brazil CPF Number") + for doc in response: + self.assertIsNotNone(doc.id) + self.assertIsNotNone(doc.statistics) + for entity in doc.entities: + self.assertIsNotNone(entity.text) + self.assertIsNotNone(entity.category) + self.assertIsNotNone(entity.confidence_score) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_all_successful_passing_text_document_input(self, client): + docs = [ + TextDocumentInput(id="1", text="My SSN is 859-98-0987."), + TextDocumentInput(id="2", text="Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check."), + TextDocumentInput(id="3", text="Is 998.214.865-68 your Brazilian CPF number?") + ] + + response = await client.recognize_pii_entities(docs, show_stats=True) + self.assertEqual(response[0].entities[0].text, "859-98-0987") + self.assertEqual(response[0].entities[0].category, "U.S. Social Security Number (SSN)") + self.assertEqual(response[1].entities[0].text, "111000025") + # self.assertEqual(response[1].entities[0].category, "ABA Routing Number") # Service is currently returning PhoneNumber here + self.assertEqual(response[2].entities[0].text, "998.214.865-68") + self.assertEqual(response[2].entities[0].category, "Brazil CPF Number") + for doc in response: + self.assertIsNotNone(doc.id) + self.assertIsNotNone(doc.statistics) + for entity in doc.entities: + self.assertIsNotNone(entity.text) + self.assertIsNotNone(entity.category) + self.assertIsNotNone(entity.confidence_score) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_length_with_emoji(self, client): + result = await client.recognize_pii_entities(["👩 SSN: 123-12-1234"]) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_passing_only_string(self, client): + docs = [ + u"My SSN is 859-98-0987.", + u"Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check.", + u"Is 998.214.865-68 your Brazilian CPF number?", + u"" + ] + + response = await client.recognize_pii_entities(docs, show_stats=True) + self.assertEqual(response[0].entities[0].text, "859-98-0987") + self.assertEqual(response[0].entities[0].category, "U.S. Social Security Number (SSN)") + self.assertEqual(response[1].entities[0].text, "111000025") + # self.assertEqual(response[1].entities[0].category, "ABA Routing Number") # Service is currently returning PhoneNumber here + self.assertEqual(response[2].entities[0].text, "998.214.865-68") + self.assertEqual(response[2].entities[0].category, "Brazil CPF Number") + self.assertTrue(response[3].is_error) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_input_with_some_errors(self, client): + docs = [{"id": "1", "language": "es", "text": "hola"}, + {"id": "2", "text": ""}, + {"id": "3", "text": "Is 998.214.865-68 your Brazilian CPF number?"}] + + response = await client.recognize_pii_entities(docs) + self.assertTrue(response[0].is_error) + self.assertTrue(response[1].is_error) + self.assertFalse(response[2].is_error) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_input_with_all_errors(self, client): + docs = [{"id": "1", "text": ""}, + {"id": "2", "language": "Spanish", "text": "Hola"}, + {"id": "3", "language": "de", "text": ""}] + + response = await client.recognize_pii_entities(docs) + self.assertTrue(response[0].is_error) + self.assertTrue(response[1].is_error) + self.assertTrue(response[2].is_error) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_too_many_documents(self, client): + docs = ["One", "Two", "Three", "Four", "Five", "Six"] + + with pytest.raises(HttpResponseError) as excinfo: + await client.recognize_pii_entities(docs) + assert excinfo.value.status_code == 400 + assert excinfo.value.error.code == "InvalidDocumentBatch" + assert "(InvalidDocumentBatch) The number of documents in the request have exceeded the data limitations" in str(excinfo.value) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_output_same_order_as_input(self, client): + docs = [ + TextDocumentInput(id="1", text="one"), + TextDocumentInput(id="2", text="two"), + TextDocumentInput(id="3", text="three"), + TextDocumentInput(id="4", text="four"), + TextDocumentInput(id="5", text="five") + ] + + response = await client.recognize_pii_entities(docs) + + for idx, doc in enumerate(response): + self.assertEqual(str(idx + 1), doc.id) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"text_analytics_account_key": ""}) + async def test_empty_credential_class(self, client): + with self.assertRaises(ClientAuthenticationError): + response = await client.recognize_pii_entities( + ["This is written in English."] + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"text_analytics_account_key": "xxxxxxxxxxxx"}) + async def test_bad_credentials(self, client): + with self.assertRaises(ClientAuthenticationError): + response = await client.recognize_pii_entities( + ["This is written in English."] + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_bad_document_input(self, client): + docs = "This is the wrong type" + + with self.assertRaises(TypeError): + response = await client.recognize_pii_entities(docs) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_mixing_inputs(self, client): + docs = [ + {"id": "1", "text": "Microsoft was founded by Bill Gates and Paul Allen."}, + TextDocumentInput(id="2", text="I did not like the hotel we stayed at. It was too expensive."), + u"You cannot mix string input with the above inputs" + ] + with self.assertRaises(TypeError): + response = await client.recognize_pii_entities(docs) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_out_of_order_ids(self, client): + docs = [{"id": "56", "text": ":)"}, + {"id": "0", "text": ":("}, + {"id": "22", "text": ""}, + {"id": "19", "text": ":P"}, + {"id": "1", "text": ":D"}] + + response = await client.recognize_pii_entities(docs) + in_order = ["56", "0", "22", "19", "1"] + for idx, resp in enumerate(response): + self.assertEqual(resp.id, in_order[idx]) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_show_stats_and_model_version(self, client): + def callback(response): + self.assertIsNotNone(response) + self.assertIsNotNone(response.model_version, msg=response.raw_response) + self.assertIsNotNone(response.raw_response) + self.assertEqual(response.statistics.document_count, 5) + self.assertEqual(response.statistics.transaction_count, 4) + self.assertEqual(response.statistics.valid_document_count, 4) + self.assertEqual(response.statistics.erroneous_document_count, 1) + + docs = [{"id": "56", "text": ":)"}, + {"id": "0", "text": ":("}, + {"id": "22", "text": ""}, + {"id": "19", "text": ":P"}, + {"id": "1", "text": ":D"}] + + response = await client.recognize_pii_entities( + docs, + show_stats=True, + model_version="latest", + raw_response_hook=callback + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_batch_size_over_limit(self, client): + docs = [u"hello world"] * 1050 + with self.assertRaises(HttpResponseError): + response = await client.recognize_pii_entities(docs) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_whole_batch_language_hint(self, client): + def callback(resp): + language_str = "\"language\": \"fr\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + docs = [ + u"This was the best day of my life.", + u"I did not like the hotel we stayed at. It was too expensive.", + u"The restaurant was not as good as I hoped." + ] + + response = await client.recognize_pii_entities(docs, language="fr", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_whole_batch_dont_use_language_hint(self, client): + def callback(resp): + language_str = "\"language\": \"\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + docs = [ + u"This was the best day of my life.", + u"I did not like the hotel we stayed at. It was too expensive.", + u"The restaurant was not as good as I hoped." + ] + + response = await client.recognize_pii_entities(docs, language="", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_per_item_dont_use_language_hint(self, client): + def callback(resp): + language_str = "\"language\": \"\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 2) + language_str = "\"language\": \"en\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 1) + + + docs = [{"id": "1", "language": "", "text": "I will go to the park."}, + {"id": "2", "language": "", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = await client.recognize_pii_entities(docs, raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_whole_batch_language_hint_and_obj_input(self, client): + def callback(resp): + language_str = "\"language\": \"de\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + docs = [ + TextDocumentInput(id="1", text="I should take my cat to the veterinarian."), + TextDocumentInput(id="4", text="Este es un document escrito en Español."), + TextDocumentInput(id="3", text="猫は幸せ"), + ] + + response = await client.recognize_pii_entities(docs, language="de", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_whole_batch_language_hint_and_obj_per_item_hints(self, client): + def callback(resp): + language_str = "\"language\": \"es\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 2) + language_str = "\"language\": \"en\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 1) + + docs = [ + TextDocumentInput(id="1", text="I should take my cat to the veterinarian.", language="es"), + TextDocumentInput(id="2", text="Este es un document escrito en Español.", language="es"), + TextDocumentInput(id="3", text="猫は幸せ"), + ] + + response = await client.recognize_pii_entities(docs, language="en", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_whole_batch_language_hint_and_dict_per_item_hints(self, client): + def callback(resp): + language_str = "\"language\": \"es\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 2) + language_str = "\"language\": \"en\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 1) + + + docs = [{"id": "1", "language": "es", "text": "I will go to the park."}, + {"id": "2", "language": "es", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = await client.recognize_pii_entities(docs, language="en", raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"default_language": "es"}) + async def test_client_passed_default_language_hint(self, client): + def callback(resp): + language_str = "\"language\": \"es\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + def callback_2(resp): + language_str = "\"language\": \"en\"" + language = resp.http_request.body.count(language_str) + self.assertEqual(language, 3) + + docs = [{"id": "1", "text": "I will go to the park."}, + {"id": "2", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = await client.recognize_pii_entities(docs, raw_response_hook=callback) + response = await client.recognize_pii_entities(docs, language="en", raw_response_hook=callback_2) + response = await client.recognize_pii_entities(docs, raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_invalid_language_hint_method(self, client): + response = await client.recognize_pii_entities( + ["This should fail because we're passing in an invalid language hint"], language="notalanguage" + ) + self.assertEqual(response[0].error.code, 'UnsupportedLanguageCode') + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_invalid_language_hint_docs(self, client): + response = await client.recognize_pii_entities( + [{"id": "1", "language": "notalanguage", "text": "This should fail because we're passing in an invalid language hint"}] + ) + self.assertEqual(response[0].error.code, 'UnsupportedLanguageCode') + + @GlobalTextAnalyticsAccountPreparer() + async def test_rotate_subscription_key(self, resource_group, location, text_analytics_account, text_analytics_account_key): + credential = AzureKeyCredential(text_analytics_account_key) + client = TextAnalyticsClient(text_analytics_account, credential) + + docs = [{"id": "1", "text": "I will go to the park."}, + {"id": "2", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = await client.recognize_pii_entities(docs) + self.assertIsNotNone(response) + + credential.update("xxx") # Make authentication fail + with self.assertRaises(ClientAuthenticationError): + response = await client.recognize_pii_entities(docs) + + credential.update(text_analytics_account_key) # Authenticate successfully again + response = await client.recognize_pii_entities(docs) + self.assertIsNotNone(response) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_user_agent(self, client): + def callback(resp): + self.assertIn("azsdk-python-ai-textanalytics/{} Python/{} ({})".format( + VERSION, platform.python_version(), platform.platform()), + resp.http_request.headers["User-Agent"] + ) + + docs = [{"id": "1", "text": "I will go to the park."}, + {"id": "2", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": "The restaurant had really good food."}] + + response = await client.recognize_pii_entities(docs, raw_response_hook=callback) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_document_attribute_error_no_result_attribute(self, client): + docs = [{"id": "1", "text": ""}] + response = await client.recognize_pii_entities(docs) + + # Attributes on DocumentError + self.assertTrue(response[0].is_error) + self.assertEqual(response[0].id, "1") + self.assertIsNotNone(response[0].error) + + # Result attribute not on DocumentError, custom error message + try: + entities = response[0].entities + except AttributeError as custom_error: + self.assertEqual( + custom_error.args[0], + '\'DocumentError\' object has no attribute \'entities\'. ' + 'The service was unable to process this document:\nDocument Id: 1\nError: ' + 'InvalidDocument - Document text is empty.\n' + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_document_attribute_error_nonexistent_attribute(self, client): + docs = [{"id": "1", "text": ""}] + response = await client.recognize_pii_entities(docs) + + # Attribute not found on DocumentError or result obj, default behavior/message + try: + entities = response[0].attribute_not_on_result_or_error + except AttributeError as default_behavior: + self.assertEqual( + default_behavior.args[0], + '\'DocumentError\' object has no attribute \'attribute_not_on_result_or_error\'' + ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_bad_model_version_error(self, client): + docs = [{"id": "1", "language": "english", "text": "I did not like the hotel we stayed at."}] + + try: + result = await client.recognize_pii_entities(docs, model_version="bad") + except HttpResponseError as err: + self.assertEqual(err.error.code, "ModelVersionIncorrect") + self.assertIsNotNone(err.error.message) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_document_errors(self, client): + text = "" + for _ in range(5121): + text += "x" + + docs = [{"id": "1", "text": ""}, + {"id": "2", "language": "english", "text": "I did not like the hotel we stayed at."}, + {"id": "3", "text": text}] + + doc_errors = await client.recognize_pii_entities(docs) + self.assertEqual(doc_errors[0].error.code, "InvalidDocument") + self.assertIsNotNone(doc_errors[0].error.message) + self.assertEqual(doc_errors[1].error.code, "UnsupportedLanguageCode") + self.assertIsNotNone(doc_errors[1].error.message) + self.assertEqual(doc_errors[2].error.code, "InvalidDocument") + self.assertIsNotNone(doc_errors[2].error.message) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_document_warnings(self, client): + # No warnings actually returned for recognize_pii_entities. Will update when they add + docs = [ + {"id": "1", "text": "This won't actually create a warning :'("}, + ] + + result = await client.recognize_pii_entities(docs) + for doc in result: + doc_warnings = doc.warnings + self.assertEqual(len(doc_warnings), 0) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_not_passing_list_for_docs(self, client): + docs = {"id": "1", "text": "hello world"} + with pytest.raises(TypeError) as excinfo: + await client.recognize_pii_entities(docs) + assert "Input documents cannot be a dict" in str(excinfo.value) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_missing_input_records_error(self, client): + docs = [] + with pytest.raises(ValueError) as excinfo: + await client.recognize_pii_entities(docs) + assert "Input documents can not be empty or None" in str(excinfo.value) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_passing_none_docs(self, client): + with pytest.raises(ValueError) as excinfo: + await client.recognize_pii_entities(None) + assert "Input documents can not be empty or None" in str(excinfo.value) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_duplicate_ids_error(self, client): + # Duplicate Ids + docs = [{"id": "1", "text": "hello world"}, + {"id": "1", "text": "I did not like the hotel we stayed at."}] + try: + result = await client.recognize_pii_entities(docs) + except HttpResponseError as err: + self.assertEqual(err.error.code, "InvalidDocument") + self.assertIsNotNone(err.error.message) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_batch_size_over_limit_error(self, client): + # Batch size over limit + docs = [u"hello world"] * 1001 + try: + response = await client.recognize_pii_entities(docs) + except HttpResponseError as err: + self.assertEqual(err.error.code, "InvalidDocumentBatch") + self.assertIsNotNone(err.error.message) + + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_pass_cls(self, client): + def callback(pipeline_response, deserialized, _): + return "cls result" + res = await client.recognize_pii_entities( + documents=["Test passing cls to endpoint"], + cls=callback + ) + assert res == "cls result" + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer() + async def test_language_kwarg_english(self, client): + def callback(response): + language_str = "\"language\": \"en\"" + self.assertEqual(response.http_request.body.count(language_str), 1) + self.assertIsNotNone(response.model_version) + self.assertIsNotNone(response.statistics) + + res = await client.recognize_pii_entities( + documents=["Bill Gates is the CEO of Microsoft."], + model_version="latest", + show_stats=True, + language="en", + raw_response_hook=callback + ) diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_text_analytics.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_text_analytics.py index 799261306dda..7d3ea071ff5c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/test_text_analytics.py +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_text_analytics.py @@ -32,6 +32,8 @@ def test_repr(self): categorized_entity = _models.CategorizedEntity(text="Bill Gates", category="Person", subcategory="Age", confidence_score=0.899) + pii_entity = _models.PiiEntity(text="859-98-0987", category="SSN", subcategory=None, confidence_score=0.899) + text_document_statistics = _models.TextDocumentStatistics(character_count=14, transaction_count=18) warnings = [_models.TextAnalyticsWarning(code="LongWordsInDocument", message="The document contains very long words (longer than 64 characters). These words will be truncated and may result in unreliable model predictions.")] @@ -44,6 +46,14 @@ def test_repr(self): is_error=False ) + recognize_pii_entities_result = _models.RecognizePiiEntitiesResult( + id="1", + entities=[pii_entity], + warnings=warnings, + statistics=text_document_statistics, + is_error=False + ) + detect_language_result = _models.DetectLanguageResult( id="1", primary_language=detected_language, @@ -137,6 +147,7 @@ def test_repr(self): self.assertEqual("DetectedLanguage(name=English, iso6391_name=en, confidence_score=1.0)", repr(detected_language)) self.assertEqual("CategorizedEntity(text=Bill Gates, category=Person, subcategory=Age, confidence_score=0.899)", repr(categorized_entity)) + self.assertEqual("PiiEntity(text=859-98-0987, category=SSN, subcategory=None, confidence_score=0.899)", repr(pii_entity)) self.assertEqual("TextDocumentStatistics(character_count=14, transaction_count=18)", repr(text_document_statistics)) self.assertEqual("RecognizeEntitiesResult(id=1, entities=[CategorizedEntity(text=Bill Gates, category=Person, " @@ -145,6 +156,12 @@ def test_repr(self): "These words will be truncated and may result in unreliable model predictions.)], " "statistics=TextDocumentStatistics(character_count=14, transaction_count=18), " "is_error=False)", repr(recognize_entities_result)) + self.assertEqual("RecognizePiiEntitiesResult(id=1, entities=[PiiEntity(text=859-98-0987, category=SSN, " + "subcategory=None, confidence_score=0.899)], " + "warnings=[TextAnalyticsWarning(code=LongWordsInDocument, message=The document contains very long words (longer than 64 characters). " + "These words will be truncated and may result in unreliable model predictions.)], " + "statistics=TextDocumentStatistics(character_count=14, transaction_count=18), " + "is_error=False)", repr(recognize_pii_entities_result)) self.assertEqual("DetectLanguageResult(id=1, primary_language=DetectedLanguage(name=English, " "iso6391_name=en, confidence_score=1.0), " "warnings=[TextAnalyticsWarning(code=LongWordsInDocument, message=The document contains very long words (longer than 64 characters). " diff --git a/sdk/timeseriesinsights/azure-mgmt-timeseriesinsights/README.md b/sdk/timeseriesinsights/azure-mgmt-timeseriesinsights/README.md index 468ee76aec0e..af9a7f4e5ea2 100644 --- a/sdk/timeseriesinsights/azure-mgmt-timeseriesinsights/README.md +++ b/sdk/timeseriesinsights/azure-mgmt-timeseriesinsights/README.md @@ -13,13 +13,7 @@ For the older Azure Service Management (ASM) libraries, see library. For a more complete set of Azure libraries, see the -[azure](https://pypi.python.org/pypi/azure) bundle package. - -## Usage - -For code examples, see [TimeSeriesInsights -Management](https://docs.microsoft.com/python/api/overview/azure/timeseriesinsights) -on docs.microsoft.com. +[azure sdk python release](https://aka.ms/azsdk/python/all). ## Provide Feedback diff --git a/shared_requirements.txt b/shared_requirements.txt index c76406167c87..16b56a8ce224 100644 --- a/shared_requirements.txt +++ b/shared_requirements.txt @@ -109,6 +109,7 @@ aiohttp>=3.0 aiodns>=2.0 python-dateutil>=2.8.0 six>=1.6 +isodate>=0.6.0 #override azure azure-keyvault~=1.0 #override azure-mgmt-core azure-core<2.0.0,>=1.7.0 #override azure-appconfiguration azure-core<2.0.0,>=1.0.0 diff --git a/tools/azure-devtools/doc/scenario_base_tests.md b/tools/azure-devtools/doc/scenario_base_tests.md index 945b9eadeed8..2097121728ed 100644 --- a/tools/azure-devtools/doc/scenario_base_tests.md +++ b/tools/azure-devtools/doc/scenario_base_tests.md @@ -84,12 +84,12 @@ its `__init__` method (probably using `super`): * `recording_processors` and `replay_processors`: Lists of `RecordingProcessor` instances for making changes to requests and responses during test recording and test playback, respectively. - See [recording_processors.py](src/azure_devtools/scenario_tests/recording_processors.py) + See [recording_processors.py](https://github.com/Azure/azure-sdk-for-python/blob/master/tools/azure-devtools/src/azure_devtools/scenario_tests/recording_processors.py) for some examples and how to implement them. * `recording_patches` and `replay_patches`: Lists of patches to apply to functions, methods, etc. during test recording and playback, respectively. - See [patches.py](src/azure_devtools/scenario_tests/patches.py) + See [patches.py](https://github.com/Azure/azure-sdk-for-python/blob/master/tools/azure-devtools/src/azure_devtools/scenario_tests/patches.py) for some examples. Note the `mock_in_unit_test` function which abstracts out some boilerplate for applying a patch. @@ -98,4 +98,4 @@ its `__init__` method (probably using `super`): Note: This document's source uses [semantic linefeeds](http://rhodesmill.org/brandon/2012/one-sentence-per-line/) to make diffs and updates clearer. ---> \ No newline at end of file +--> diff --git a/tools/azure-sdk-tools/packaging_tools/code_report.py b/tools/azure-sdk-tools/packaging_tools/code_report.py index 59002847bfaa..672a26aef778 100644 --- a/tools/azure-sdk-tools/packaging_tools/code_report.py +++ b/tools/azure-sdk-tools/packaging_tools/code_report.py @@ -149,22 +149,6 @@ def merge_report(report_paths): merged_report["operations"].update(report_json["operations"]) return merged_report -def filter_track2_versions(package_name, versions): - track2_versions = { - 'azure-mgmt-appconfiguration': '1.0.0', - 'azure-mgmt-compute':'17.0.0', - 'azure-mgmt-eventhub':'8.0.0', - 'azure-mgmt-keyvault':'7.0.0', - 'azure-mgmt-monitor':'1.0.0', - 'azure-mgmt-network':'16.0.0', - 'azure-mgmt-resource':'15.0.0', - 'azure-mgmt-storage':'16.0.0', - } - upbound = track2_versions.get(package_name) - if not upbound: - return versions - return list(filter(lambda x: x < upbound, versions)) - def main(input_parameter: str, version: Optional[str] = None, no_venv: bool = False, pypi: bool = False, last_pypi: bool = False, output: str = None): package_name, module_name = parse_input(input_parameter) path_to_package = resolve_package_directory(package_name) @@ -180,7 +164,6 @@ def main(input_parameter: str, version: Optional[str] = None, no_venv: bool = Fa _LOGGER.info(f"Got {versions}") if last_pypi: _LOGGER.info(f"Only keep last PyPI version") - versions = filter_track2_versions(package_name, versions) versions = [versions[-1]] for version in versions: diff --git a/tools/azure-sdk-tools/packaging_tools/mgmt_release_stats.py b/tools/azure-sdk-tools/packaging_tools/mgmt_release_stats.py index 559afa554113..b2b94f988fa7 100644 --- a/tools/azure-sdk-tools/packaging_tools/mgmt_release_stats.py +++ b/tools/azure-sdk-tools/packaging_tools/mgmt_release_stats.py @@ -46,18 +46,26 @@ def add_provider(self, package_name, changelog_filename, start_date): package_name) # set column title with open(changelog_filename) as f: + in_stable_version = False rls_date, rls_version = None, None for line in f.readlines(): version, date = ReleaseStats.parse_release_event(line) if version: rls_date, rls_version = date, version - if rls_date >= start_date: + if re.match(r"^\d+\.\d+\.\d+$", version): + in_stable_version = True + else: + in_stable_version = False + if rls_date >= start_date and in_stable_version: self._add_package_release( self.provider_num+1, version, rls_date, package_name) if rls_date and rls_date >= start_date and ReleaseStats.parse_breaking_head(line): - self._add_breaking_release( - self.provider_num+1, rls_version, rls_date, package_name) + if in_stable_version: + self._add_breaking_release( + self.provider_num+1, rls_version, rls_date, package_name) + else: + logging.info("skip breaking for {}".format(rls_version)) def gen_pivot_table(self): logging.info("Generating pivot table") @@ -173,6 +181,10 @@ def _add_package_release(self, col, version, rls_date, package_name): row = self.find_or_create_row(rls_date, ws) ws.cell(row=row, column=col, value=1) + ws = self.wb[SHEET_BREAKING_MATRIX] + row = self.find_or_create_row(rls_date, ws) + ws.cell(row=row, column=col, value=0) + ws = self.wb[SHEET_EVENT] self.release_num += 1 ws.append([rls_date, package_name]) @@ -278,6 +290,7 @@ def build_release_stats(xls_file, threshold, start_date): package_name, os.path.join(root, file), start_date) stats.gen_latest_sum(90, SHEET_BREAKING_MATRIX, threshold-1) stats.gen_latest_sum(180, SHEET_BREAKING_MATRIX, threshold) + stats.gen_latest_sum(90, SHEET_PACKAGE_MATRIX, threshold-1) stats.gen_pivot_table() stats.sum_matrix_sheets() stats.save(xls_file) diff --git a/tools/azure-sdk-tools/packaging_tools/templates/README.md b/tools/azure-sdk-tools/packaging_tools/templates/README.md index 293df1c06684..1a82d7a4a2fd 100644 --- a/tools/azure-sdk-tools/packaging_tools/templates/README.md +++ b/tools/azure-sdk-tools/packaging_tools/templates/README.md @@ -2,7 +2,7 @@ This is the Microsoft Azure {{package_pprint_name}} Client Library. This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. -For a more complete view of Azure libraries, see the [Github repo](https://github.com/Azure/azure-sdk-for-python/) +For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). # Usage