diff --git a/eng/config.json b/eng/config.json index 794c97ccfdf1..5df7a858f2a7 100644 --- a/eng/config.json +++ b/eng/config.json @@ -34,7 +34,7 @@ }, { "Name": "azkeys", - "CoverageGoal": 0.75 + "CoverageGoal": 0.72 } ] } diff --git a/eng/pipelines/templates/jobs/live.tests.yml b/eng/pipelines/templates/jobs/live.tests.yml index 45411e9fef2b..532befe44867 100644 --- a/eng/pipelines/templates/jobs/live.tests.yml +++ b/eng/pipelines/templates/jobs/live.tests.yml @@ -85,7 +85,6 @@ jobs: GoWorkspace: $(GO_WORKSPACE_PATH) Image: $(OSVmImage) GoVersion: $(GoVersion) - RunTests: true EnvVars: AZURE_RECORD_MODE: 'live' diff --git a/sdk/azcore/CHANGELOG.md b/sdk/azcore/CHANGELOG.md index bbe90e194b59..4ada48c38297 100644 --- a/sdk/azcore/CHANGELOG.md +++ b/sdk/azcore/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 0.20.0 (Unreleased) +## 0.20.0 (2021-10-22) ### Breaking Changes * Removed `arm.Connection` @@ -9,11 +9,15 @@ * `runtime.NewPipeline` has a new signature that simplifies implementing custom authentication * `arm/runtime.RegistrationOptions` embeds `policy.ClientOptions` * Contents in the `log` package have been slightly renamed. +* Removed `AuthenticationOptions` in favor of `policy.BearerTokenOptions` +* Changed parameters for `NewBearerTokenPolicy()` +* Moved policy config options out of `arm/runtime` and into `arm/policy` ### Features Added * Updating Documentation * Added string typdef `arm.Endpoint` to provide a hint toward expected ARM client endpoints * `azcore.ClientOptions` contains common pipeline configuration settings +* Added support for multi-tenant authorization in `arm/runtime` ### Bug Fixes * Fixed a potential panic when creating the default Transporter. diff --git a/sdk/azcore/arm/policy/policy.go b/sdk/azcore/arm/policy/policy.go new file mode 100644 index 000000000000..f49dbc313282 --- /dev/null +++ b/sdk/azcore/arm/policy/policy.go @@ -0,0 +1,44 @@ +//go:build go1.16 +// +build go1.16 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package policy + +import ( + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +// BearerTokenOptions configures the bearer token policy's behavior. +type BearerTokenOptions struct { + // Scopes contains the list of permission scopes required for the token. + Scopes []string + // AuxiliaryTenants contains a list of additional tenant IDs to be used to authenticate + // in cross-tenant applications. + AuxiliaryTenants []string +} + +// RegistrationOptions configures the registration policy's behavior. +// All zero-value fields will be initialized with their default values. +type RegistrationOptions struct { + policy.ClientOptions + + // MaxAttempts is the total number of times to attempt automatic registration + // in the event that an attempt fails. + // The default value is 3. + // Set to a value less than zero to disable the policy. + MaxAttempts int + + // PollingDelay is the amount of time to sleep between polling intervals. + // The default value is 15 seconds. + // A value less than zero means no delay between polling intervals (not recommended). + PollingDelay time.Duration + + // PollingDuration is the amount of time to wait before abandoning polling. + // The default valule is 5 minutes. + // NOTE: Setting this to a small value might cause the policy to prematurely fail. + PollingDuration time.Duration +} diff --git a/sdk/azcore/arm/runtime/pipeline.go b/sdk/azcore/arm/runtime/pipeline.go index 655b36567904..cc1974d3f2b7 100644 --- a/sdk/azcore/arm/runtime/pipeline.go +++ b/sdk/azcore/arm/runtime/pipeline.go @@ -9,9 +9,10 @@ package runtime import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pipeline" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + azpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" azruntime "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" ) @@ -25,19 +26,16 @@ func NewPipeline(module, version string, cred azcore.TokenCredential, options *a if len(ep) == 0 { ep = arm.AzurePublicCloud } - perCallPolicies := []policy.Policy{} + perCallPolicies := []azpolicy.Policy{} if !options.DisableRPRegistration { - regRPOpts := RegistrationOptions{ClientOptions: options.ClientOptions} + regRPOpts := armpolicy.RegistrationOptions{ClientOptions: options.ClientOptions} perCallPolicies = append(perCallPolicies, NewRPRegistrationPolicy(string(ep), cred, ®RPOpts)) } - perRetryPolicies := []policy.Policy{ - azruntime.NewBearerTokenPolicy(cred, azruntime.AuthenticationOptions{ - TokenRequest: policy.TokenRequestOptions{ - Scopes: []string{shared.EndpointToScope(string(ep))}, - }, + perRetryPolicies := []azpolicy.Policy{ + NewBearerTokenPolicy(cred, &armpolicy.BearerTokenOptions{ + Scopes: []string{shared.EndpointToScope(string(ep))}, AuxiliaryTenants: options.AuxiliaryTenants, - }, - ), + }), } return azruntime.NewPipeline(module, version, perCallPolicies, perRetryPolicies, &options.ClientOptions) } diff --git a/sdk/azcore/arm/runtime/policy_bearer_token.go b/sdk/azcore/arm/runtime/policy_bearer_token.go new file mode 100644 index 000000000000..ada0405e8f3d --- /dev/null +++ b/sdk/azcore/arm/runtime/policy_bearer_token.go @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "fmt" + "net/http" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + azpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +type acquiringResourceState struct { + ctx context.Context + p *BearerTokenPolicy + tenant string +} + +// acquire acquires or updates the resource; only one +// thread/goroutine at a time ever calls this function +func acquire(state interface{}) (newResource interface{}, newExpiration time.Time, err error) { + s := state.(acquiringResourceState) + tk, err := s.p.cred.GetToken(s.ctx, azpolicy.TokenRequestOptions{ + Scopes: s.p.options.Scopes, + TenantID: s.tenant, + }) + if err != nil { + return nil, time.Time{}, err + } + return tk, tk.ExpiresOn, nil +} + +// BearerTokenPolicy authorizes requests with bearer tokens acquired from a TokenCredential. +type BearerTokenPolicy struct { + // mainResource is the resource to be retreived using the tenant specified in the credential + mainResource *shared.ExpiringResource + // auxResources are additional resources that are required for cross-tenant applications + auxResources map[string]*shared.ExpiringResource + // the following fields are read-only + cred azcore.TokenCredential + options armpolicy.BearerTokenOptions +} + +// NewBearerTokenPolicy creates a policy object that authorizes requests with bearer tokens. +// cred: an azcore.TokenCredential implementation such as a credential object from azidentity +// opts: optional settings. Pass nil to accept default values; this is the same as passing a zero-value options. +func NewBearerTokenPolicy(cred azcore.TokenCredential, opts *armpolicy.BearerTokenOptions) *BearerTokenPolicy { + if opts == nil { + opts = &armpolicy.BearerTokenOptions{} + } + p := &BearerTokenPolicy{ + cred: cred, + options: *opts, + mainResource: shared.NewExpiringResource(acquire), + } + if len(opts.AuxiliaryTenants) > 0 { + p.auxResources = map[string]*shared.ExpiringResource{} + } + for _, t := range opts.AuxiliaryTenants { + p.auxResources[t] = shared.NewExpiringResource(acquire) + + } + return p +} + +// Do authorizes a request with a bearer token +func (b *BearerTokenPolicy) Do(req *azpolicy.Request) (*http.Response, error) { + as := acquiringResourceState{ + ctx: req.Raw().Context(), + p: b, + } + tk, err := b.mainResource.GetResource(as) + if err != nil { + return nil, err + } + if token, ok := tk.(*azcore.AccessToken); ok { + req.Raw().Header.Set(shared.HeaderAuthorization, shared.BearerTokenPrefix+token.Token) + } + auxTokens := []string{} + for tenant, er := range b.auxResources { + as.tenant = tenant + auxTk, err := er.GetResource(as) + if err != nil { + return nil, err + } + auxTokens = append(auxTokens, fmt.Sprintf("%s%s", shared.BearerTokenPrefix, auxTk.(*azcore.AccessToken).Token)) + } + if len(auxTokens) > 0 { + req.Raw().Header.Set(shared.HeaderAuxiliaryAuthorization, strings.Join(auxTokens, ", ")) + } + return req.Next() +} diff --git a/sdk/azcore/arm/runtime/policy_bearer_token_test.go b/sdk/azcore/arm/runtime/policy_bearer_token_test.go new file mode 100644 index 000000000000..d17aa2813b9c --- /dev/null +++ b/sdk/azcore/arm/runtime/policy_bearer_token_test.go @@ -0,0 +1,203 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "strings" + + "errors" + "net/http" + "testing" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pipeline" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + azpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/internal/mock" +) + +const ( + tokenValue = "***" + accessTokenRespSuccess = `{"access_token": "` + tokenValue + `", "expires_in": 3600}` + accessTokenRespShortLived = `{"access_token": "` + tokenValue + `", "expires_in": 0}` + scope = "scope" +) + +type mockCredential struct { + getTokenImpl func(ctx context.Context, options azpolicy.TokenRequestOptions) (*azcore.AccessToken, error) +} + +func (mc mockCredential) GetToken(ctx context.Context, options azpolicy.TokenRequestOptions) (*azcore.AccessToken, error) { + if mc.getTokenImpl != nil { + return mc.getTokenImpl(ctx, options) + } + return &azcore.AccessToken{Token: "***", ExpiresOn: time.Now().Add(time.Hour)}, nil +} + +func (mc mockCredential) NewAuthenticationPolicy() azpolicy.Policy { + return mc +} + +func (mc mockCredential) Do(req *azpolicy.Request) (*http.Response, error) { + return nil, nil +} + +func newTestPipeline(opts *azpolicy.ClientOptions) pipeline.Pipeline { + return runtime.NewPipeline("testmodule", "v0.1.0", nil, nil, opts) +} + +func defaultTestPipeline(srv azpolicy.Transporter, scope string) pipeline.Pipeline { + retryOpts := azpolicy.RetryOptions{ + MaxRetryDelay: 500 * time.Millisecond, + RetryDelay: time.Millisecond, + } + return NewPipeline( + "testmodule", + "v0.1.0", + mockCredential{}, + &arm.ClientOptions{ + ClientOptions: azcore.ClientOptions{ + Retry: retryOpts, + Transport: srv, + }, + }) +} + +func TestBearerPolicy_SuccessGetToken(t *testing.T) { + srv, close := mock.NewTLSServer() + defer close() + srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) + srv.AppendResponse(mock.WithStatusCode(http.StatusOK)) + pipeline := defaultTestPipeline(srv, scope) + req, err := runtime.NewRequest(context.Background(), http.MethodGet, srv.URL()) + if err != nil { + t.Fatal(err) + } + resp, err := pipeline.Do(req) + if err != nil { + t.Fatalf("Expected nil error but received one") + } + const expectedToken = shared.BearerTokenPrefix + tokenValue + if token := resp.Request.Header.Get(shared.HeaderAuthorization); token != expectedToken { + t.Fatalf("expected token '%s', got '%s'", expectedToken, token) + } +} + +func TestBearerPolicy_CredentialFailGetToken(t *testing.T) { + srv, close := mock.NewTLSServer() + defer close() + expectedErr := errors.New("oops") + failCredential := mockCredential{} + failCredential.getTokenImpl = func(ctx context.Context, options azpolicy.TokenRequestOptions) (*azcore.AccessToken, error) { + return nil, expectedErr + } + b := NewBearerTokenPolicy(failCredential, nil) + pipeline := newTestPipeline(&azpolicy.ClientOptions{ + Transport: srv, + Retry: azpolicy.RetryOptions{ + RetryDelay: 10 * time.Millisecond, + }, + PerRetryPolicies: []azpolicy.Policy{b}, + }) + req, err := runtime.NewRequest(context.Background(), http.MethodGet, srv.URL()) + if err != nil { + t.Fatal(err) + } + resp, err := pipeline.Do(req) + if err != expectedErr { + t.Fatalf("unexpected error: %v", err) + } + if resp != nil { + t.Fatal("expected nil response") + } +} + +func TestBearerTokenPolicy_TokenExpired(t *testing.T) { + srv, close := mock.NewTLSServer() + defer close() + srv.AppendResponse(mock.WithBody([]byte(accessTokenRespShortLived))) + srv.AppendResponse(mock.WithStatusCode(http.StatusOK)) + pipeline := defaultTestPipeline(srv, scope) + req, err := runtime.NewRequest(context.Background(), http.MethodGet, srv.URL()) + if err != nil { + t.Fatal(err) + } + _, err = pipeline.Do(req) + if err != nil { + t.Fatalf("unexpected error %v", err) + } + _, err = pipeline.Do(req) + if err != nil { + t.Fatalf("unexpected error %v", err) + } +} + +func TestBearerPolicy_GetTokenFailsNoDeadlock(t *testing.T) { + srv, close := mock.NewTLSServer() + defer close() + srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) + retryOpts := azpolicy.RetryOptions{ + // use a negative try timeout to trigger a deadline exceeded error causing GetToken() to fail + TryTimeout: -1 * time.Nanosecond, + MaxRetryDelay: 500 * time.Millisecond, + RetryDelay: 50 * time.Millisecond, + MaxRetries: 3, + } + b := NewBearerTokenPolicy(mockCredential{}, nil) + pipeline := newTestPipeline(&azpolicy.ClientOptions{Transport: srv, Retry: retryOpts, PerRetryPolicies: []pipeline.Policy{b}}) + req, err := runtime.NewRequest(context.Background(), http.MethodGet, srv.URL()) + if err != nil { + t.Fatal(err) + } + resp, err := pipeline.Do(req) + if err == nil { + t.Fatal("unexpected nil error") + } + if resp != nil { + t.Fatal("expected nil response") + } +} + +func TestBearerTokenWithAuxiliaryTenants(t *testing.T) { + srv, close := mock.NewTLSServer() + defer close() + srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) + srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) + srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) + srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) + srv.AppendResponse() + retryOpts := azpolicy.RetryOptions{ + MaxRetryDelay: 500 * time.Millisecond, + RetryDelay: 50 * time.Millisecond, + } + b := NewBearerTokenPolicy( + mockCredential{}, + &armpolicy.BearerTokenOptions{ + Scopes: []string{scope}, + AuxiliaryTenants: []string{"tenant1", "tenant2", "tenant3"}, + }, + ) + pipeline := newTestPipeline(&azpolicy.ClientOptions{Transport: srv, Retry: retryOpts, PerRetryPolicies: []pipeline.Policy{b}}) + req, err := runtime.NewRequest(context.Background(), http.MethodGet, srv.URL()) + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } + resp, err := pipeline.Do(req) + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } + if resp.StatusCode != http.StatusOK { + t.Fatalf("unexpected status code: %d", resp.StatusCode) + } + expectedHeader := strings.Repeat(shared.BearerTokenPrefix+tokenValue+", ", 3) + expectedHeader = expectedHeader[:len(expectedHeader)-2] + if auxH := resp.Request.Header.Get(shared.HeaderAuxiliaryAuthorization); auxH != expectedHeader { + t.Fatalf("unexpected auxiliary authorization header %s", auxH) + } +} diff --git a/sdk/azcore/arm/runtime/policy_register_rp.go b/sdk/azcore/arm/runtime/policy_register_rp.go index 4aa4541a7624..f1a2a4233052 100644 --- a/sdk/azcore/arm/runtime/policy_register_rp.go +++ b/sdk/azcore/arm/runtime/policy_register_rp.go @@ -17,9 +17,10 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pipeline" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + azpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/internal/log" ) @@ -30,30 +31,8 @@ const ( LogRPRegistration log.Event = "RPRegistration" ) -// RegistrationOptions configures the registration policy's behavior. -// All zero-value fields will be initialized with their default values. -type RegistrationOptions struct { - policy.ClientOptions - - // MaxAttempts is the total number of times to attempt automatic registration - // in the event that an attempt fails. - // The default value is 3. - // Set to a value less than zero to disable the policy. - MaxAttempts int - - // PollingDelay is the amount of time to sleep between polling intervals. - // The default value is 15 seconds. - // A value less than zero means no delay between polling intervals (not recommended). - PollingDelay time.Duration - - // PollingDuration is the amount of time to wait before abandoning polling. - // The default valule is 5 minutes. - // NOTE: Setting this to a small value might cause the policy to prematurely fail. - PollingDuration time.Duration -} - // init sets any default values -func (r *RegistrationOptions) init() { +func setDefaults(r *armpolicy.RegistrationOptions) { if r.MaxAttempts == 0 { r.MaxAttempts = 3 } else if r.MaxAttempts < 0 { @@ -73,28 +52,28 @@ func (r *RegistrationOptions) init() { // credentials and options. The policy controls if an unregistered resource provider should // automatically be registered. See https://aka.ms/rps-not-found for more information. // Pass nil to accept the default options; this is the same as passing a zero-value options. -func NewRPRegistrationPolicy(endpoint string, cred azcore.TokenCredential, o *RegistrationOptions) policy.Policy { +func NewRPRegistrationPolicy(endpoint string, cred azcore.TokenCredential, o *armpolicy.RegistrationOptions) azpolicy.Policy { if o == nil { - o = &RegistrationOptions{} + o = &armpolicy.RegistrationOptions{} } - authPolicy := runtime.NewBearerTokenPolicy(cred, runtime.AuthenticationOptions{TokenRequest: policy.TokenRequestOptions{Scopes: []string{shared.EndpointToScope(endpoint)}}}) + authPolicy := NewBearerTokenPolicy(cred, &armpolicy.BearerTokenOptions{Scopes: []string{shared.EndpointToScope(endpoint)}}) p := &rpRegistrationPolicy{ endpoint: endpoint, pipeline: runtime.NewPipeline(shared.Module, shared.Version, nil, []pipeline.Policy{authPolicy}, &o.ClientOptions), options: *o, } // init the copy - p.options.init() + setDefaults(&p.options) return p } type rpRegistrationPolicy struct { endpoint string pipeline pipeline.Pipeline - options RegistrationOptions + options armpolicy.RegistrationOptions } -func (r *rpRegistrationPolicy) Do(req *policy.Request) (*http.Response, error) { +func (r *rpRegistrationPolicy) Do(req *azpolicy.Request) (*http.Response, error) { if r.options.MaxAttempts == 0 { // policy is disabled return req.Next() @@ -250,7 +229,7 @@ func (client *providersOperations) Get(ctx context.Context, resourceProviderName } // getCreateRequest creates the Get request. -func (client *providersOperations) getCreateRequest(ctx context.Context, resourceProviderNamespace string) (*policy.Request, error) { +func (client *providersOperations) getCreateRequest(ctx context.Context, resourceProviderNamespace string) (*azpolicy.Request, error) { urlPath := "/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}" urlPath = strings.ReplaceAll(urlPath, "{resourceProviderNamespace}", url.PathEscape(resourceProviderNamespace)) urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subID)) @@ -307,7 +286,7 @@ func (client *providersOperations) Register(ctx context.Context, resourceProvide } // registerCreateRequest creates the Register request. -func (client *providersOperations) registerCreateRequest(ctx context.Context, resourceProviderNamespace string) (*policy.Request, error) { +func (client *providersOperations) registerCreateRequest(ctx context.Context, resourceProviderNamespace string) (*azpolicy.Request, error) { urlPath := "/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/register" urlPath = strings.ReplaceAll(urlPath, "{resourceProviderNamespace}", url.PathEscape(resourceProviderNamespace)) urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subID)) diff --git a/sdk/azcore/arm/runtime/policy_register_rp_test.go b/sdk/azcore/arm/runtime/policy_register_rp_test.go index d3818536777d..780762f49b32 100644 --- a/sdk/azcore/arm/runtime/policy_register_rp_test.go +++ b/sdk/azcore/arm/runtime/policy_register_rp_test.go @@ -16,9 +16,10 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pipeline" "github.com/Azure/azure-sdk-for-go/sdk/azcore/log" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + azpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/internal/mock" ) @@ -57,11 +58,11 @@ const requestEndpoint = "/subscriptions/00000000-0000-0000-0000-000000000000/res func newTestRPRegistrationPipeline(srv *mock.Server) pipeline.Pipeline { opts := azcore.ClientOptions{Transport: srv} rp := NewRPRegistrationPolicy(srv.URL(), mockTokenCred{}, testRPRegistrationOptions(srv)) - return runtime.NewPipeline("test", "v0.1.0", []policy.Policy{rp}, nil, &opts) + return runtime.NewPipeline("test", "v0.1.0", []azpolicy.Policy{rp}, nil, &opts) } -func testRPRegistrationOptions(t policy.Transporter) *RegistrationOptions { - def := RegistrationOptions{} +func testRPRegistrationOptions(t azpolicy.Transporter) *armpolicy.RegistrationOptions { + def := armpolicy.RegistrationOptions{} def.Transport = t def.PollingDelay = 100 * time.Millisecond def.PollingDuration = 1 * time.Second @@ -70,13 +71,13 @@ func testRPRegistrationOptions(t policy.Transporter) *RegistrationOptions { type mockTokenCred struct{} -func (mockTokenCred) NewAuthenticationPolicy(runtime.AuthenticationOptions) policy.Policy { - return pipeline.PolicyFunc(func(req *policy.Request) (*http.Response, error) { +func (mockTokenCred) NewAuthenticationPolicy() azpolicy.Policy { + return pipeline.PolicyFunc(func(req *azpolicy.Request) (*http.Response, error) { return req.Next() }) } -func (mockTokenCred) GetToken(context.Context, policy.TokenRequestOptions) (*azcore.AccessToken, error) { +func (mockTokenCred) GetToken(context.Context, azpolicy.TokenRequestOptions) (*azcore.AccessToken, error) { return &azcore.AccessToken{ Token: "abc123", ExpiresOn: time.Now().Add(1 * time.Hour), @@ -294,7 +295,7 @@ func TestRPRegistrationPolicyCanCancel(t *testing.T) { srv.AppendResponse(mock.WithStatusCode(http.StatusConflict), mock.WithBody([]byte(rpUnregisteredResp))) // polling responses to Register() and Get(), in progress but slow so we have time to cancel srv.RepeatResponse(10, mock.WithStatusCode(http.StatusOK), mock.WithBody([]byte(rpRegisteringResp)), mock.WithSlowResponse(300*time.Millisecond)) - opts := RegistrationOptions{} + opts := armpolicy.RegistrationOptions{} opts.Transport = srv pl := newTestRPRegistrationPipeline(srv) // log only RP registration @@ -317,7 +318,7 @@ func TestRPRegistrationPolicyCanCancel(t *testing.T) { go func() { defer wg.Done() // create request and start pipeline - var req *policy.Request + var req *azpolicy.Request req, err = runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(srv.URL(), requestEndpoint)) if err != nil { return diff --git a/sdk/azcore/internal/shared/constants.go b/sdk/azcore/internal/shared/constants.go index 06c5d32fd03c..5103d87e0053 100644 --- a/sdk/azcore/internal/shared/constants.go +++ b/sdk/azcore/internal/shared/constants.go @@ -12,19 +12,24 @@ const ( ) const ( - HeaderAzureAsync = "Azure-AsyncOperation" - HeaderContentLength = "Content-Length" - HeaderContentType = "Content-Type" - HeaderLocation = "Location" - HeaderOperationLocation = "Operation-Location" - HeaderRetryAfter = "Retry-After" - HeaderUserAgent = "User-Agent" + HeaderAuthorization = "Authorization" + HeaderAuxiliaryAuthorization = "x-ms-authorization-auxiliary" + HeaderAzureAsync = "Azure-AsyncOperation" + HeaderContentLength = "Content-Length" + HeaderContentType = "Content-Type" + HeaderLocation = "Location" + HeaderOperationLocation = "Operation-Location" + HeaderRetryAfter = "Retry-After" + HeaderUserAgent = "User-Agent" + HeaderXmsDate = "x-ms-date" ) const ( DefaultMaxRetries = 3 ) +const BearerTokenPrefix = "Bearer " + const ( // Module is the name of the calling module used in telemetry data. Module = "azcore" diff --git a/sdk/azcore/internal/shared/expiring_resource.go b/sdk/azcore/internal/shared/expiring_resource.go new file mode 100644 index 000000000000..9f97ca9559ab --- /dev/null +++ b/sdk/azcore/internal/shared/expiring_resource.go @@ -0,0 +1,99 @@ +//go:build go1.16 +// +build go1.16 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package shared + +import ( + "sync" + "time" +) + +// AcquireResource abstracts a method for refreshing an expiring resource. +type AcquireResource func(state interface{}) (newResource interface{}, newExpiration time.Time, err error) + +// ExpiringResource is a temporal resource (usually a credential), that requires periodic refreshing. +type ExpiringResource struct { + // cond is used to synchronize access to the shared resource embodied by the remaining fields + cond *sync.Cond + + // acquiring indicates that some thread/goroutine is in the process of acquiring/updating the resource + acquiring bool + + // resource contains the value of the shared resource + resource interface{} + + // expiration indicates when the shared resource expires; it is 0 if the resource was never acquired + expiration time.Time + + // acquireResource is the callback function that actually acquires the resource + acquireResource AcquireResource +} + +// NewExpiringResource creates a new ExpiringResource that uses the specified AcquireResource for refreshing. +func NewExpiringResource(ar AcquireResource) *ExpiringResource { + return &ExpiringResource{cond: sync.NewCond(&sync.Mutex{}), acquireResource: ar} +} + +// GetResource returns the underlying resource. +// If the resource is fresh, no refresh is performed. +func (er *ExpiringResource) GetResource(state interface{}) (interface{}, error) { + // If the resource is expiring within this time window, update it eagerly. + // This allows other threads/goroutines to keep running by using the not-yet-expired + // resource value while one thread/goroutine updates the resource. + const window = 2 * time.Minute // This example updates the resource 2 minutes prior to expiration + + now, acquire, resource := time.Now(), false, er.resource + // acquire exclusive lock + er.cond.L.Lock() + for { + if er.expiration.IsZero() || er.expiration.Before(now) { + // The resource was never acquired or has expired + if !er.acquiring { + // If another thread/goroutine is not acquiring/updating the resource, this thread/goroutine will do it + er.acquiring, acquire = true, true + break + } + // Getting here means that this thread/goroutine will wait for the updated resource + } else if er.expiration.Add(-window).Before(now) { + // The resource is valid but is expiring within the time window + if !er.acquiring { + // If another thread/goroutine is not acquiring/renewing the resource, this thread/goroutine will do it + er.acquiring, acquire = true, true + break + } + // This thread/goroutine will use the existing resource value while another updates it + resource = er.resource + break + } else { + // The resource is not close to expiring, this thread/goroutine should use its current value + resource = er.resource + break + } + // If we get here, wait for the new resource value to be acquired/updated + er.cond.Wait() + } + er.cond.L.Unlock() // Release the lock so no threads/goroutines are blocked + + var err error + if acquire { + // This thread/goroutine has been selected to acquire/update the resource + var expiration time.Time + resource, expiration, err = er.acquireResource(state) + + // Atomically, update the shared resource's new value & expiration. + er.cond.L.Lock() + if err == nil { + // No error, update resource & expiration + er.resource, er.expiration = resource, expiration + } + er.acquiring = false // Indicate that no thread/goroutine is currently acquiring the resrouce + + // Wake up any waiting threads/goroutines since there is a resource they can ALL use + er.cond.L.Unlock() + er.cond.Broadcast() + } + return resource, err // Return the resource this thread/goroutine can use +} diff --git a/sdk/azcore/internal/shared/expiring_resource_test.go b/sdk/azcore/internal/shared/expiring_resource_test.go new file mode 100644 index 000000000000..9ccc244ced01 --- /dev/null +++ b/sdk/azcore/internal/shared/expiring_resource_test.go @@ -0,0 +1,48 @@ +//go:build go1.16 +// +build go1.16 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package shared + +import ( + "errors" + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func TestNewExpiringResource(t *testing.T) { + er := NewExpiringResource(func(state interface{}) (newResource interface{}, newExpiration time.Time, err error) { + s := state.(string) + switch s { + case "initial": + return "updated", time.Now(), nil + case "updated": + return "refreshed", time.Now().Add(1 * time.Hour), nil + default: + t.Fatalf("unexpected state %s", s) + return "", time.Time{}, errors.New("unexpected") + } + }) + res, err := er.GetResource("initial") + require.NoError(t, err) + require.Equal(t, "updated", res) + res, err = er.GetResource(res) + require.NoError(t, err) + require.Equal(t, "refreshed", res) + res, err = er.GetResource(res) + require.NoError(t, err) + require.Equal(t, "refreshed", res) +} + +func TestNewExpiringResourceError(t *testing.T) { + er := NewExpiringResource(func(state interface{}) (newResource interface{}, newExpiration time.Time, err error) { + return "", time.Time{}, errors.New("failed") + }) + res, err := er.GetResource("stale") + require.Error(t, err) + require.Equal(t, "", res) +} diff --git a/sdk/azcore/policy/policy.go b/sdk/azcore/policy/policy.go index f6968794defd..d739109c323b 100644 --- a/sdk/azcore/policy/policy.go +++ b/sdk/azcore/policy/policy.go @@ -106,6 +106,11 @@ type TokenRequestOptions struct { TenantID string } +// BearerTokenOptions configures the bearer token policy's behavior. +type BearerTokenOptions struct { + // placeholder for future options +} + // WithHTTPHeader adds the specified http.Header to the parent context. // Use this to specify custom HTTP headers at the API-call level. // Any overlapping headers will have their values replaced with the values specified here. diff --git a/sdk/azcore/runtime/policy_bearer_token.go b/sdk/azcore/runtime/policy_bearer_token.go index 2c5a22b6c401..d5ed61e14864 100644 --- a/sdk/azcore/runtime/policy_bearer_token.go +++ b/sdk/azcore/runtime/policy_bearer_token.go @@ -4,155 +4,55 @@ package runtime import ( - "fmt" "net/http" - "strings" - "sync" "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" ) -const ( - bearerTokenPrefix = "Bearer " - headerXmsDate = "x-ms-date" - headerAuthorization = "Authorization" - headerAuxiliaryAuthorization = "x-ms-authorization-auxiliary" -) - // BearerTokenPolicy authorizes requests with bearer tokens acquired from a TokenCredential. type BearerTokenPolicy struct { // mainResource is the resource to be retreived using the tenant specified in the credential - mainResource *expiringResource - // auxResources are additional resources that are required for cross-tenant applications - auxResources map[string]*expiringResource + mainResource *shared.ExpiringResource // the following fields are read-only - cred azcore.TokenCredential - options policy.TokenRequestOptions -} - -type expiringResource struct { - // cond is used to synchronize access to the shared resource embodied by the remaining fields - cond *sync.Cond - - // acquiring indicates that some thread/goroutine is in the process of acquiring/updating the resource - acquiring bool - - // resource contains the value of the shared resource - resource interface{} - - // expiration indicates when the shared resource expires; it is 0 if the resource was never acquired - expiration time.Time - - // acquireResource is the callback function that actually acquires the resource - acquireResource acquireResource + cred azcore.TokenCredential + scopes []string } -type acquireResource func(state interface{}) (newResource interface{}, newExpiration time.Time, err error) - type acquiringResourceState struct { req *policy.Request - p BearerTokenPolicy + p *BearerTokenPolicy } // acquire acquires or updates the resource; only one // thread/goroutine at a time ever calls this function func acquire(state interface{}) (newResource interface{}, newExpiration time.Time, err error) { s := state.(acquiringResourceState) - tk, err := s.p.cred.GetToken(s.req.Raw().Context(), s.p.options) + tk, err := s.p.cred.GetToken(s.req.Raw().Context(), policy.TokenRequestOptions{Scopes: s.p.scopes}) if err != nil { return nil, time.Time{}, err } return tk, tk.ExpiresOn, nil } -func newExpiringResource(ar acquireResource) *expiringResource { - return &expiringResource{cond: sync.NewCond(&sync.Mutex{}), acquireResource: ar} -} - -func (er *expiringResource) GetResource(state interface{}) (interface{}, error) { - // If the resource is expiring within this time window, update it eagerly. - // This allows other threads/goroutines to keep running by using the not-yet-expired - // resource value while one thread/goroutine updates the resource. - const window = 2 * time.Minute // This example updates the resource 2 minutes prior to expiration - - now, acquire, resource := time.Now(), false, er.resource - // acquire exclusive lock - er.cond.L.Lock() - for { - if er.expiration.IsZero() || er.expiration.Before(now) { - // The resource was never acquired or has expired - if !er.acquiring { - // If another thread/goroutine is not acquiring/updating the resource, this thread/goroutine will do it - er.acquiring, acquire = true, true - break - } - // Getting here means that this thread/goroutine will wait for the updated resource - } else if er.expiration.Add(-window).Before(now) { - // The resource is valid but is expiring within the time window - if !er.acquiring { - // If another thread/goroutine is not acquiring/renewing the resource, this thread/goroutine will do it - er.acquiring, acquire = true, true - break - } - // This thread/goroutine will use the existing resource value while another updates it - resource = er.resource - break - } else { - // The resource is not close to expiring, this thread/goroutine should use its current value - resource = er.resource - break - } - // If we get here, wait for the new resource value to be acquired/updated - er.cond.Wait() - } - er.cond.L.Unlock() // Release the lock so no threads/goroutines are blocked - - var err error - if acquire { - // This thread/goroutine has been selected to acquire/update the resource - var expiration time.Time - resource, expiration, err = er.acquireResource(state) - - // Atomically, update the shared resource's new value & expiration. - er.cond.L.Lock() - if err == nil { - // No error, update resource & expiration - er.resource, er.expiration = resource, expiration - } - er.acquiring = false // Indicate that no thread/goroutine is currently acquiring the resrouce - - // Wake up any waiting threads/goroutines since there is a resource they can ALL use - er.cond.L.Unlock() - er.cond.Broadcast() - } - return resource, err // Return the resource this thread/goroutine can use -} - // NewBearerTokenPolicy creates a policy object that authorizes requests with bearer tokens. // cred: an azcore.TokenCredential implementation such as a credential object from azidentity +// scopes: the list of permission scopes required for the token. // opts: optional settings. Pass nil to accept default values; this is the same as passing a zero-value options. -func NewBearerTokenPolicy(cred azcore.TokenCredential, opts AuthenticationOptions) *BearerTokenPolicy { - p := &BearerTokenPolicy{ +func NewBearerTokenPolicy(cred azcore.TokenCredential, scopes []string, opts *policy.BearerTokenOptions) *BearerTokenPolicy { + return &BearerTokenPolicy{ cred: cred, - options: opts.TokenRequest, - mainResource: newExpiringResource(acquire), - } - if len(opts.AuxiliaryTenants) > 0 { - p.auxResources = map[string]*expiringResource{} - } - for _, t := range opts.AuxiliaryTenants { - p.auxResources[t] = newExpiringResource(acquire) - + scopes: scopes, + mainResource: shared.NewExpiringResource(acquire), } - return p } // Do authorizes a request with a bearer token func (b *BearerTokenPolicy) Do(req *policy.Request) (*http.Response, error) { as := acquiringResourceState{ - p: *b, + p: b, req: req, } tk, err := b.mainResource.GetResource(as) @@ -160,25 +60,7 @@ func (b *BearerTokenPolicy) Do(req *policy.Request) (*http.Response, error) { return nil, err } if token, ok := tk.(*azcore.AccessToken); ok { - req.Raw().Header.Set(headerXmsDate, time.Now().UTC().Format(http.TimeFormat)) - req.Raw().Header.Set(headerAuthorization, bearerTokenPrefix+token.Token) - } - auxTokens := []string{} - for tenant, er := range b.auxResources { - bCopy := *b - bCopy.options.TenantID = tenant - auxAS := acquiringResourceState{ - p: bCopy, - req: req, - } - auxTk, err := er.GetResource(auxAS) - if err != nil { - return nil, err - } - auxTokens = append(auxTokens, fmt.Sprintf("%s%s", bearerTokenPrefix, auxTk.(*azcore.AccessToken).Token)) - } - if len(auxTokens) > 0 { - req.Raw().Header.Set(headerAuxiliaryAuthorization, strings.Join(auxTokens, ", ")) + req.Raw().Header.Set(shared.HeaderAuthorization, shared.BearerTokenPrefix+token.Token) } return req.Next() } diff --git a/sdk/azcore/runtime/policy_bearer_token_test.go b/sdk/azcore/runtime/policy_bearer_token_test.go index 36440cbff8dd..02f9dd3a74e7 100644 --- a/sdk/azcore/runtime/policy_bearer_token_test.go +++ b/sdk/azcore/runtime/policy_bearer_token_test.go @@ -5,7 +5,6 @@ package runtime import ( "context" - "strings" "errors" "net/http" @@ -14,6 +13,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pipeline" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" "github.com/Azure/azure-sdk-for-go/sdk/internal/mock" ) @@ -36,7 +36,7 @@ func (mc mockCredential) GetToken(ctx context.Context, options policy.TokenReque return &azcore.AccessToken{Token: "***", ExpiresOn: time.Now().Add(time.Hour)}, nil } -func (mc mockCredential) NewAuthenticationPolicy(options AuthenticationOptions) policy.Policy { +func (mc mockCredential) NewAuthenticationPolicy() policy.Policy { return mc } @@ -49,10 +49,7 @@ func defaultTestPipeline(srv policy.Transporter, scope string) Pipeline { MaxRetryDelay: 500 * time.Millisecond, RetryDelay: time.Millisecond, } - b := NewBearerTokenPolicy( - mockCredential{}, - AuthenticationOptions{TokenRequest: policy.TokenRequestOptions{Scopes: []string{scope}}}, - ) + b := NewBearerTokenPolicy(mockCredential{}, []string{scope}, nil) return NewPipeline( "testmodule", "v0.1.0", @@ -76,8 +73,8 @@ func TestBearerPolicy_SuccessGetToken(t *testing.T) { if err != nil { t.Fatalf("Expected nil error but received one") } - const expectedToken = bearerTokenPrefix + tokenValue - if token := resp.Request.Header.Get(headerAuthorization); token != expectedToken { + const expectedToken = shared.BearerTokenPrefix + tokenValue + if token := resp.Request.Header.Get(shared.HeaderAuthorization); token != expectedToken { t.Fatalf("expected token '%s', got '%s'", expectedToken, token) } } @@ -90,7 +87,7 @@ func TestBearerPolicy_CredentialFailGetToken(t *testing.T) { failCredential.getTokenImpl = func(ctx context.Context, options policy.TokenRequestOptions) (*azcore.AccessToken, error) { return nil, expectedErr } - b := NewBearerTokenPolicy(failCredential, AuthenticationOptions{}) + b := NewBearerTokenPolicy(failCredential, nil, nil) pipeline := newTestPipeline(&policy.ClientOptions{ Transport: srv, Retry: policy.RetryOptions{ @@ -142,7 +139,7 @@ func TestBearerPolicy_GetTokenFailsNoDeadlock(t *testing.T) { RetryDelay: 50 * time.Millisecond, MaxRetries: 3, } - b := NewBearerTokenPolicy(mockCredential{}, AuthenticationOptions{}) + b := NewBearerTokenPolicy(mockCredential{}, nil, nil) pipeline := newTestPipeline(&policy.ClientOptions{Transport: srv, Retry: retryOpts, PerRetryPolicies: []pipeline.Policy{b}}) req, err := NewRequest(context.Background(), http.MethodGet, srv.URL()) if err != nil { @@ -156,43 +153,3 @@ func TestBearerPolicy_GetTokenFailsNoDeadlock(t *testing.T) { t.Fatal("expected nil response") } } - -func TestBearerTokenWithAuxiliaryTenants(t *testing.T) { - srv, close := mock.NewTLSServer() - defer close() - srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) - srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) - srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) - srv.AppendResponse(mock.WithBody([]byte(accessTokenRespSuccess))) - srv.AppendResponse() - retryOpts := policy.RetryOptions{ - MaxRetryDelay: 500 * time.Millisecond, - RetryDelay: 50 * time.Millisecond, - } - b := NewBearerTokenPolicy( - mockCredential{}, - AuthenticationOptions{ - TokenRequest: policy.TokenRequestOptions{ - Scopes: []string{scope}, - }, - AuxiliaryTenants: []string{"tenant1", "tenant2", "tenant3"}, - }, - ) - pipeline := newTestPipeline(&policy.ClientOptions{Transport: srv, Retry: retryOpts, PerRetryPolicies: []pipeline.Policy{b}}) - req, err := NewRequest(context.Background(), http.MethodGet, srv.URL()) - if err != nil { - t.Fatalf("Unexpected error: %v", err) - } - resp, err := pipeline.Do(req) - if err != nil { - t.Fatalf("Unexpected error: %v", err) - } - if resp.StatusCode != http.StatusOK { - t.Fatalf("unexpected status code: %d", resp.StatusCode) - } - expectedHeader := strings.Repeat(bearerTokenPrefix+tokenValue+", ", 3) - expectedHeader = expectedHeader[:len(expectedHeader)-2] - if auxH := resp.Request.Header.Get(headerAuxiliaryAuthorization); auxH != expectedHeader { - t.Fatalf("unexpected auxiliary authorization header %s", auxH) - } -} diff --git a/sdk/azcore/runtime/transport_default_http_client.go b/sdk/azcore/runtime/transport_default_http_client.go index d8bb8643c2ae..f7f3ca9c14ed 100644 --- a/sdk/azcore/runtime/transport_default_http_client.go +++ b/sdk/azcore/runtime/transport_default_http_client.go @@ -11,8 +11,6 @@ import ( "net" "net/http" "time" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" ) var defaultHTTPClient *http.Client @@ -37,14 +35,3 @@ func init() { Transport: defaultTransport, } } - -// AuthenticationOptions contains various options used to create a credential policy. -type AuthenticationOptions struct { - // TokenRequest is a TokenRequestOptions that includes a scopes field which contains - // the list of OAuth2 authentication scopes used when requesting a token. - // This field is ignored for other forms of authentication (e.g. shared key). - TokenRequest policy.TokenRequestOptions - // AuxiliaryTenants contains a list of additional tenant IDs to be used to authenticate - // in cross-tenant applications. - AuxiliaryTenants []string -} diff --git a/sdk/keyvault/azkeys/autorest.md b/sdk/keyvault/azkeys/autorest.md index 89bb062cb264..715231c6735d 100644 --- a/sdk/keyvault/azkeys/autorest.md +++ b/sdk/keyvault/azkeys/autorest.md @@ -2,17 +2,21 @@ These settings apply only when `--go` is specified on the command line. - - ``` yaml go: true version: "^3.0.0" -input-file: https://github.com/Azure/azure-rest-api-specs/blob/1e2c9f3ec93078da8078389941531359e274f32a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.2/secrets.json +input-file: +- https://github.com/Azure/azure-rest-api-specs/blob/ecdce42924ed0f7e60a32c74bc0eb674ca6d4aae/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.3-preview/common.json +- https://github.com/Azure/azure-rest-api-specs/blob/ecdce42924ed0f7e60a32c74bc0eb674ca6d4aae/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.3-preview/keys.json +- https://github.com/Azure/azure-rest-api-specs/blob/ecdce42924ed0f7e60a32c74bc0eb674ca6d4aae/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.3-preview/rbac.json +- https://github.com/Azure/azure-rest-api-specs/blob/ecdce42924ed0f7e60a32c74bc0eb674ca6d4aae/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.3-preview/securitydomain.json license-header: MICROSOFT_MIT_NO_VERSION clear-output-folder: false output-folder: internal -tag: package-7.2 -credential-scope: none -use: "@autorest/go@4.0.0-preview.27" +module: azkeys +openapi-type: "data-plane" +security: "AADToken" +security-scopes: "https://vault.azure.net/.default" +use: "@autorest/go@4.0.0-preview.29" module-version: 0.1.0 ``` diff --git a/sdk/keyvault/azkeys/azcrypto/crypto_client.go b/sdk/keyvault/azkeys/azcrypto/crypto_client.go index b3678faa95cf..d79878c0682e 100644 --- a/sdk/keyvault/azkeys/azcrypto/crypto_client.go +++ b/sdk/keyvault/azkeys/azcrypto/crypto_client.go @@ -60,7 +60,7 @@ func (c *ClientOptions) toConnectionOptions() *internal.ConnectionOptions { return nil } return &internal.ConnectionOptions{ - HTTPClient: c.Transport, + Transport: c.Transport, Retry: c.Retry, Telemetry: c.Telemetry, Logging: c.Logging, diff --git a/sdk/keyvault/azkeys/azcrypto/crypto_client_test.go b/sdk/keyvault/azkeys/azcrypto/crypto_client_test.go index a49381fcfcb4..f4553c1cb60f 100644 --- a/sdk/keyvault/azkeys/azcrypto/crypto_client_test.go +++ b/sdk/keyvault/azkeys/azcrypto/crypto_client_test.go @@ -47,7 +47,7 @@ func TestNewClient(t *testing.T) { require.Equal(t, client.vaultURL, "https://mykeyvault.vault.azure.net/") require.Equal(t, "keyabcdef", client.keyID) if strings.Contains(key, "1234567890") { - require.Equal(t, client.keyVersion, "1234567890") + require.Equal(t, client.keyVersion, "1234567890") } else { require.Equal(t, client.keyVersion, "") } diff --git a/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_Decrypt.json b/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_Decrypt.json index aa73b6af8507..f08268ed6468 100644 --- a/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_Decrypt.json +++ b/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_Decrypt.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key89075156/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key89075156/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key89075156/create?api-version=7.2", + ":path": "/keys/key89075156/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "13", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:05 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:56 GMT" }, "RequestBody": { "kty": "RSA" @@ -24,7 +24,7 @@ "Cache-Control": "no-cache", "Content-Length": "684", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:20 GMT", + "Date": "Thu, 21 Oct 2021 21:24:57 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -32,12 +32,12 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "d085b054-3d4e-407e-a0ce-53811617ab03", + "x-ms-request-id": "d3e08a88-4508-4dc8-b437-92efa2db7b16", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://fakekvurl.vault.azure.net/keys/key89075156/6d9cae2c16b6406b8804a133ebd3ff68", + "kid": "https://fakekvurl.vault.azure.net/keys/key89075156/2b8dcd95161c4fea8f13762a39b41c14", "kty": "RSA", "key_ops": [ "encrypt", @@ -47,25 +47,25 @@ "wrapKey", "unwrapKey" ], - "n": "uvQgM3667mt_lt-2Zem6qKu5AdtQtGy1c0D30H1yWlvKA3LxFmcTB8QQA8hYBQ0gdmG6G4FBYR8uLqpwzM4gVZ-pjcl8MLyYE38GUDqhBl6IAj14f_MVzZ1VZAChQ8Oqq4dPSJDW4KPZnk6EY69ItIapDohYb1CflxkWsZAHsXagbi0gmjXFr_8oSgPwboYYLi99deSQlyTIn8BTNrESy5nf4FpncTa7YeeiM1S14DvbwgpKh4grh9YFrdpWuE_rPvLmTAjAhZwWC5ZbmjSNytDlivyajIjLLYXKOzdcZlf72FFGL2ucDHDg_TamHgq5DZqdPdTddvUd16KrOBFphQ", + "n": "7-q3GW4H2kBTbazLJSYLKRt1WJu9933EVddLuESHkvWYzPQTCfupvYmThjGLKFYJ8kcOrDJsxhXr0UkdHv0j9QCaQj7adoNB8Vw-6FgOBN-wOxKkmwDOn8kG-gDw3mLh08yGcQ5jIt9H_PiG7aE3U_QyqG9G5lpjAg8oIXQwOBkdycLr_nWiKGvmk7_1940p1NyNelEthHNc2zLGNyTp39vjvKBZ9IqBLX8Xnl0AOQRvsIvQ5FOVWbQ47wCzzsqdL7jEun6lz6FTmukI0uqXfBjPTf5lxnYm8Jb0XAQJrajI8276oABkDOfJcQONcAYdT0l7n7d17HAQB5eeKfuYXQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634675166, - "updated": 1634675166, + "created": 1634851497, + "updated": 1634851497, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key89075156/6d9cae2c16b6406b8804a133ebd3ff68/encrypt?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key89075156/2b8dcd95161c4fea8f13762a39b41c14/encrypt?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key89075156/6d9cae2c16b6406b8804a133ebd3ff68/encrypt?api-version=7.2", + ":path": "/keys/key89075156/2b8dcd95161c4fea8f13762a39b41c14/encrypt?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -73,7 +73,7 @@ "Content-Length": "41", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:20 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:57 GMT" }, "RequestBody": { "alg": "RSA-OAEP", @@ -84,7 +84,7 @@ "Cache-Control": "no-cache", "Content-Length": "445", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:20 GMT", + "Date": "Thu, 21 Oct 2021 21:24:57 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -92,21 +92,21 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "16bb53ef-99a0-4a7b-b923-b80362853fdc", + "x-ms-request-id": "4ee3e22a-af7f-4c68-9de7-8fa9d8071788", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "kid": "https://fakekvurl.vault.azure.net/keys/key89075156/6d9cae2c16b6406b8804a133ebd3ff68", - "value": "AncCG6G5ovqjQoJvr5-JJ7dMK8J9bdNEJu1Zs2KugqAwFNmhdbuRsWHo7bXmr9i_qZGzK6WolGz9_E1YdSZkWS9HF4i8sXexdMqFzlH-tY4j-y_q05a5bKtPTnJB9gwA46DJUJRN3bSMycM2Pqnk465PLIPcqutWCnU6nZ5i_IFeiURCwweV9-I2oDar9tuAXW3u7J5zIicJAjPAd4jTYNmMJD11S5zpEFNOBxO2uJeefpVBBxWGjttQyGmjpIG7DHqtnacL1OZHQfB-QItPGjKQPfvRxXWVx5147wju7xxQyvM3pLuJnVeWXRWWudDHTvHVdm7wQihmmXHVqDQXbw" + "kid": "https://fakekvurl.vault.azure.net/keys/key89075156/2b8dcd95161c4fea8f13762a39b41c14", + "value": "MUlP2Jn6ys75GIvXqvLfvBPBVWdf6p5xaj5ZOz2jFcZPDUTJrjExvu4j-85HmtYxVYzOKmajWD7Av6bWt9ck9p_9DDTQQVSPNNgjYb6YDDvbp7nLdPNk7BMq8iMbmH2HhNQjuIbfBZp88R2vD53Q8562Txia0EFl7_kumGT3546m4htO08Wn5q8duAiIgPuwmGFkT0-9OgTrmTBNO551BkstAhrRYvtWAdSHQ_-PVpXwLH9csG4Zxk9nix-hARWsggk730z-j8RNTzKj2oypaQZB4cGoDSfmsHKp6r9TDAGcy4bTjyKNV0NI6INyRv05DyQ5DNHOadbEw9I2pp36WQ" } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key89075156/6d9cae2c16b6406b8804a133ebd3ff68/decrypt?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key89075156/2b8dcd95161c4fea8f13762a39b41c14/decrypt?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key89075156/6d9cae2c16b6406b8804a133ebd3ff68/decrypt?api-version=7.2", + ":path": "/keys/key89075156/2b8dcd95161c4fea8f13762a39b41c14/decrypt?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -114,18 +114,18 @@ "Content-Length": "371", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:20 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:57 GMT" }, "RequestBody": { "alg": "RSA-OAEP", - "value": "AncCG6G5ovqjQoJvr5-JJ7dMK8J9bdNEJu1Zs2KugqAwFNmhdbuRsWHo7bXmr9i_qZGzK6WolGz9_E1YdSZkWS9HF4i8sXexdMqFzlH-tY4j-y_q05a5bKtPTnJB9gwA46DJUJRN3bSMycM2Pqnk465PLIPcqutWCnU6nZ5i_IFeiURCwweV9-I2oDar9tuAXW3u7J5zIicJAjPAd4jTYNmMJD11S5zpEFNOBxO2uJeefpVBBxWGjttQyGmjpIG7DHqtnacL1OZHQfB-QItPGjKQPfvRxXWVx5147wju7xxQyvM3pLuJnVeWXRWWudDHTvHVdm7wQihmmXHVqDQXbw" + "value": "MUlP2Jn6ys75GIvXqvLfvBPBVWdf6p5xaj5ZOz2jFcZPDUTJrjExvu4j-85HmtYxVYzOKmajWD7Av6bWt9ck9p_9DDTQQVSPNNgjYb6YDDvbp7nLdPNk7BMq8iMbmH2HhNQjuIbfBZp88R2vD53Q8562Txia0EFl7_kumGT3546m4htO08Wn5q8duAiIgPuwmGFkT0-9OgTrmTBNO551BkstAhrRYvtWAdSHQ_-PVpXwLH9csG4Zxk9nix-hARWsggk730z-j8RNTzKj2oypaQZB4cGoDSfmsHKp6r9TDAGcy4bTjyKNV0NI6INyRv05DyQ5DNHOadbEw9I2pp36WQ" }, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", "Content-Length": "115", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:21 GMT", + "Date": "Thu, 21 Oct 2021 21:24:57 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -133,11 +133,11 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "f81a494b-4048-40cc-82b5-292978b72b87", + "x-ms-request-id": "db98051d-0fe7-4cf3-ac9f-0913782339c3", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "kid": "https://fakekvurl.vault.azure.net/keys/key89075156/6d9cae2c16b6406b8804a133ebd3ff68", + "kid": "https://fakekvurl.vault.azure.net/keys/key89075156/2b8dcd95161c4fea8f13762a39b41c14", "value": "cGxhaW50ZXh0" } } diff --git a/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_Encrypt.json b/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_Encrypt.json index 8f0812b29d55..ad99e247186e 100644 --- a/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_Encrypt.json +++ b/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_Encrypt.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key4081119768/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key4081119768/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key4081119768/create?api-version=7.2", + ":path": "/keys/key4081119768/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "13", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:04 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:55 GMT" }, "RequestBody": { "kty": "RSA" @@ -24,7 +24,7 @@ "Cache-Control": "no-cache", "Content-Length": "686", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:05 GMT", + "Date": "Thu, 21 Oct 2021 21:24:56 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -32,12 +32,12 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "cd6ffd93-fea0-4a5c-8112-d0787fb02b2d", + "x-ms-request-id": "067165f3-d709-4d3f-af69-8ef0eaa405ba", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://fakekvurl.vault.azure.net/keys/key4081119768/ea4927a921d84aa1988213c739d2afac", + "kid": "https://fakekvurl.vault.azure.net/keys/key4081119768/18cec5d4cdce4606b4bd3787b5dfc51e", "kty": "RSA", "key_ops": [ "encrypt", @@ -47,25 +47,25 @@ "wrapKey", "unwrapKey" ], - "n": "tJ1g2V8AFN5Y26VkDp51jNE2l5Pzil4B4_JrirjrMqiz7gISQs9rYkMLD5GyO0Br54bTKPl8lrsgTZdEwL1ONCsM4lEcgb73XeVRCOH125W837U3kVE4D73gln3DJmFBFaJMluWRNxVEE-laCzhvB6_lU8UbTpJWuAIj8UIi78lpbXigeKSOyoCTW7Ibki2YyH3_RGVu18KkdiiDubggUXNvL_6Ri560gnPlTuXS4Vra-zu9kqPowz6haLqS7ujq1pF3GO_eKQIvlv7wvkvkkdQAedkKjYSXqD7Ui_y2k4hl51jcH36xTGgqsDhNN6PLQz9_u0n0B8dWdXSHjMA-SQ", + "n": "sRoNDUeLE_aCFlfChoGMCvOUUFEuTD0v4UG44BUJylflWq5ZLd5w1_wmwvipByS2ocRJsNHC2VpwmxsDSRYB4BNZx5BmCNbM75rBd48gpiAp8oHZ9oYt49BySuN5Ez9VhVsDKmypzo-mzbtUJ2D2bgzHYDTlo14ue926E2rBSiSCFyPutBXhIRTSbas2hnPUWJ618T8fTcnjLQ2UqOSXVPBzt0ht8Ki3WO3ujxR9UICCFFTLORcyx67mUzIIOqIZpdIIRWFyVo-QdJ477JbV_9UkeuG3uA9aLhJVpUn8LP2Rm__UmZI6KQKoHhmQ5fb1AVtNw8MG_cGlCeUCne0CjQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634675165, - "updated": 1634675165, + "created": 1634851496, + "updated": 1634851496, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key4081119768/ea4927a921d84aa1988213c739d2afac/encrypt?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key4081119768/18cec5d4cdce4606b4bd3787b5dfc51e/encrypt?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key4081119768/ea4927a921d84aa1988213c739d2afac/encrypt?api-version=7.2", + ":path": "/keys/key4081119768/18cec5d4cdce4606b4bd3787b5dfc51e/encrypt?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -73,7 +73,7 @@ "Content-Length": "41", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:04 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:56 GMT" }, "RequestBody": { "alg": "RSA-OAEP", @@ -84,7 +84,7 @@ "Cache-Control": "no-cache", "Content-Length": "447", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:05 GMT", + "Date": "Thu, 21 Oct 2021 21:24:56 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -92,12 +92,12 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "d029493a-7e26-4f12-908f-4b2ab50967df", + "x-ms-request-id": "24cb69e6-4c86-4bf5-9e56-1b0c9924ef9f", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "kid": "https://fakekvurl.vault.azure.net/keys/key4081119768/ea4927a921d84aa1988213c739d2afac", - "value": "Zx-TLTQz5WxMXOz18wcI0aUgwkF1M7pdnR-Avs2e6yibsxoxzDyOh_1Mfzec4Dy7m1Ben0Wfy86IOeSiQTJR8V7Mz1KAHgiJeg-Fh_QcIa6qZQGl88e0fROcxQo7blVL3AirynsVKVaE_u4Uf5odJ0kKFQecf3nNwxZEtyaRMk5WwlzbKexN1LawMUUZoR5fFpCRlUsuxhAvcFa3slofJlnskIX728u-2X8zIXjo8V_Kyace9OsTxtu32KLq2WxVcy89_D23VJffCVvyMj4QPBtDdndpZ0um-fx3fMkGGm71v_8SinH9vJAH_5k6yT3GAw0miIa5Mz4fY8LDEw-XpQ" + "kid": "https://fakekvurl.vault.azure.net/keys/key4081119768/18cec5d4cdce4606b4bd3787b5dfc51e", + "value": "IWgn2iu_3JH0QJDUNDT76Qt6NU8Orto3AR3bcJ6SuEDv9O3ebYEwdWpSZjh3LDfCwvtXKqbIdatpHZdTCgxw3KB_W_lwq2eibR6pBMff_6B0Nwgj7VtbvWSsVzOtN45QOAxFUkR6NDI4s2rd7VQEDtqAa5vXOYpLA642c-6ZMDeuwhTU-BlvjQbOY-AjiAUMiHgMlnNQjmoeoCPQU0aN3s2YwwBMuWmXHy078fBPq34AQE2PUxmog4UOgvlbau0mtiLZjldwzQtTF71Z-ANUdHL87apmceW_QXavNswxUwApeIvPZn7bBSQPX3IuysAdBPAdPdAZE1YMWOCkUWFTnw" } } ], diff --git a/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_SignVerify.json b/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_SignVerify.json index 7b258ba25f2e..888342eeccd7 100644 --- a/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_SignVerify.json +++ b/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_SignVerify.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1932710079/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1932710079/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key1932710079/create?api-version=7.2", + ":path": "/keys/key1932710079/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "13", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:21 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:58 GMT" }, "RequestBody": { "kty": "RSA" @@ -24,7 +24,7 @@ "Cache-Control": "no-cache", "Content-Length": "686", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:22 GMT", + "Date": "Thu, 21 Oct 2021 21:24:59 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -32,12 +32,12 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "6ec7ba3e-e6b4-48b3-9549-8a15ba5d6b48", + "x-ms-request-id": "ef024b32-a467-4641-8d96-f2fc04616d2b", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://fakekvurl.vault.azure.net/keys/key1932710079/59afb08dcd2e44ba81d2b53d63ec7bc2", + "kid": "https://fakekvurl.vault.azure.net/keys/key1932710079/e2f18fcf0d784024ad13ae8710484360", "kty": "RSA", "key_ops": [ "encrypt", @@ -47,25 +47,25 @@ "wrapKey", "unwrapKey" ], - "n": "zpQLAKO88R3HT8d5HRSZY7Cqfwbg-lzajPSiz4C1NQIIjB-yq6NqnWZajzqFnnBEz5sandqyXBct9z6O5xgqr7qOQ0JZfKla_i-ScrbAUA7s-QuLSGdozJNI1PGnbsb6nsG8S90-PHb649OeSP-7e4uOEjQshlPD8bNdyM_8YhPtr7rNxcKvrgqhMSRwZfNiwXgNvTaA9n48IrK-hx7MHIINf-COo8p85rW8BRNU0OHY8Pe6NnyYJtXrJkisITQtYhCX-9x0Mee26Wa0oUSJVaF_OuUDUZGcJjRZpVG9AWfqTNVrTRaqmuxLrUxPhdi1zyrwWnNr_eBEToBdq8I8iQ", + "n": "1TtEn9B6aN0jgh8Dc69UHgbErxVltPTboPKxeJC70sqii_kihXmuhZs55dJZI70gXk03K3v6qE9F8V3qlGQEW6FILnlZo-u_RHAnP_X-0DuaIs1QANAlbeHtFSb2M1klSmCy6EKJ5KsFhO0g7wBlicd8wMgVnMftlBUp66jPIKeUa1fssWZLto5wcpqYJP37qb2xKGZbHKsxExXz5_wD5bwywC8EPXNQd5_ev6_siGCb8NTZNfNFSU5uzoH4R9QPShI8XTXfSkg95lrLLOdD8xkC_vd177ko7_MeuqF-HSf-njYkmtz1bg2zsfIupNZZrhX7yISRKRqhMUlHvfSGcQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634675182, - "updated": 1634675182, + "created": 1634851499, + "updated": 1634851499, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1932710079/59afb08dcd2e44ba81d2b53d63ec7bc2/sign?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1932710079/e2f18fcf0d784024ad13ae8710484360/sign?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key1932710079/59afb08dcd2e44ba81d2b53d63ec7bc2/sign?api-version=7.2", + ":path": "/keys/key1932710079/e2f18fcf0d784024ad13ae8710484360/sign?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -73,7 +73,7 @@ "Content-Length": "69", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:22 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:58 GMT" }, "RequestBody": { "alg": "RS256", @@ -84,7 +84,7 @@ "Cache-Control": "no-cache", "Content-Length": "447", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:22 GMT", + "Date": "Thu, 21 Oct 2021 21:24:59 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -92,21 +92,21 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "b46ad103-c1f2-49b6-840c-c46e68fbe2b3", + "x-ms-request-id": "a1cf28f6-408e-4a12-b1a0-f530850521d9", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "kid": "https://fakekvurl.vault.azure.net/keys/key1932710079/59afb08dcd2e44ba81d2b53d63ec7bc2", - "value": "tIUgPHlDCtCqBthU2vJohFzqtG5uEZMRf6jnOsmVlZiWdb0dRuGKm6siitM68h2T_Iu8SqZ90k-i_ia7YqfBbpOzrk1ErH1OPYQhcMCeKPwPfgb9ByPUw6mLOD2ov2oRMjAIUu_XQ1kjzV4NN6dBMI-hAYnkJaougg1PInfTNbYy4spJMwizC2KOxt2Ag4Gwexbf63XS4hoQlt7ox9LI_jlc6OMpE6e4kTQnu-iDxiFY2aSIFBT3Qyj4QsKPWytonjIx2TuhTAa_QUfjjixjk8HcuTHPL7AXwa0GUTnc5_ZFEQk5LAiRfI7U3Nj9qAFpnjp96hknSXVQ8CmDilLdNg" + "kid": "https://fakekvurl.vault.azure.net/keys/key1932710079/e2f18fcf0d784024ad13ae8710484360", + "value": "hIW5hOzdclOCqKmf2PpCOHmnMvj0Bldf1h_lGcpf_ZmvhAKMkh3PDK35OeXYoujt1E1zU7dPheA6ix6Vj6Pa5sCXhxfxm6dSzfFmvVbKJPvP-Czfl2KgjsPQ6yjBqjJaL0aLNN_SJ2Ebboq1z7ih37IEy5CYPNWJnllSr1pVZcpWFEFL-m0pnkT-WPxn0-oOIMZfN2vk_nyHqvZN9SQw5PqmZVOotf3RoOZSHJfo_wYHFU9IpkaQfW-qQQgMW49oCJ2A8PNBTisuKPTjymRWzJkOXfo7BisNgaeIVUzxFaBxcA3dPF-ReMcq03yfngHYTJ5ufMuwNxvOcW0dNhqyLw" } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1932710079/59afb08dcd2e44ba81d2b53d63ec7bc2/verify?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1932710079/e2f18fcf0d784024ad13ae8710484360/verify?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key1932710079/59afb08dcd2e44ba81d2b53d63ec7bc2/verify?api-version=7.2", + ":path": "/keys/key1932710079/e2f18fcf0d784024ad13ae8710484360/verify?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -114,19 +114,19 @@ "Content-Length": "423", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:22 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:59 GMT" }, "RequestBody": { "alg": "RS256", "digest": "ltYuKr0-Qt5fUDMPuO_ExVmYNSeAd7IemqCzPB3wehw", - "value": "tIUgPHlDCtCqBthU2vJohFzqtG5uEZMRf6jnOsmVlZiWdb0dRuGKm6siitM68h2T_Iu8SqZ90k-i_ia7YqfBbpOzrk1ErH1OPYQhcMCeKPwPfgb9ByPUw6mLOD2ov2oRMjAIUu_XQ1kjzV4NN6dBMI-hAYnkJaougg1PInfTNbYy4spJMwizC2KOxt2Ag4Gwexbf63XS4hoQlt7ox9LI_jlc6OMpE6e4kTQnu-iDxiFY2aSIFBT3Qyj4QsKPWytonjIx2TuhTAa_QUfjjixjk8HcuTHPL7AXwa0GUTnc5_ZFEQk5LAiRfI7U3Nj9qAFpnjp96hknSXVQ8CmDilLdNg" + "value": "hIW5hOzdclOCqKmf2PpCOHmnMvj0Bldf1h_lGcpf_ZmvhAKMkh3PDK35OeXYoujt1E1zU7dPheA6ix6Vj6Pa5sCXhxfxm6dSzfFmvVbKJPvP-Czfl2KgjsPQ6yjBqjJaL0aLNN_SJ2Ebboq1z7ih37IEy5CYPNWJnllSr1pVZcpWFEFL-m0pnkT-WPxn0-oOIMZfN2vk_nyHqvZN9SQw5PqmZVOotf3RoOZSHJfo_wYHFU9IpkaQfW-qQQgMW49oCJ2A8PNBTisuKPTjymRWzJkOXfo7BisNgaeIVUzxFaBxcA3dPF-ReMcq03yfngHYTJ5ufMuwNxvOcW0dNhqyLw" }, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", "Content-Length": "14", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:22 GMT", + "Date": "Thu, 21 Oct 2021 21:24:59 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -134,7 +134,7 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "3409a528-25f5-4994-880e-49797d4af68e", + "x-ms-request-id": "5d1eaf07-9c73-4f82-be4a-a9c833c56790", "X-Powered-By": "ASP.NET" }, "ResponseBody": { diff --git a/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_WrapUnwrap.json b/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_WrapUnwrap.json index 1f727808ec0a..41b78a3d9501 100644 --- a/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_WrapUnwrap.json +++ b/sdk/keyvault/azkeys/azcrypto/recordings/TestClient_WrapUnwrap.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2218739472/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2218739472/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key2218739472/create?api-version=7.2", + ":path": "/keys/key2218739472/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "13", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:20 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:57 GMT" }, "RequestBody": { "kty": "RSA" @@ -24,7 +24,7 @@ "Cache-Control": "no-cache", "Content-Length": "686", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:21 GMT", + "Date": "Thu, 21 Oct 2021 21:24:58 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -32,12 +32,12 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "f702efd5-43b4-4356-ad6c-2879ced146bf", + "x-ms-request-id": "2a94fdc7-c32b-446a-8ba9-3a88416ada2f", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://fakekvurl.vault.azure.net/keys/key2218739472/af86f95fb2284c55a2909d8494837c94", + "kid": "https://fakekvurl.vault.azure.net/keys/key2218739472/cb8f91725be244fdad3b519475ff9710", "kty": "RSA", "key_ops": [ "encrypt", @@ -47,25 +47,25 @@ "wrapKey", "unwrapKey" ], - "n": "4xQWOYkr_0FkEnjvL1WSePhK-Ase7pVaU2JpYS9Ya7Zuj7-zJwm_8vDyApgLk-1Q5Lw4PZLKKmK5PWNTi-TCLa22gjSlG0b0GkvFYILEUySEVkBB8O8ppusfKUz1LIEfL1kHE-Y9tj1D_JN7vn_qpzFnsz2cy0FLhp5d5045wt4HhZH8LtYzgCLA7dNY7b2w0R8JYMxCWd7k_LHmTShfZY5otebSQJRHaBblJvY9y_pDEqFNdstTKsQsESy8S3gM5I5se5PlsagxI5ObJWEqzYXMNCUCNH_pw_Ivj0lvhFQL0T6ODQoa19nj3tdphWCFhnNp5CzrCIy2SLK14tviuQ", + "n": "0DFNrQkK1A_CfCnbCz7DRIzDrReGYue0GB6NKix2KxbJct3EcM-dFuveJe1Djo8DBBE2JjQkjQuWRPxnlE8Btnc2iM-dGJRC96B3BJsV_yhp7RcMndGsZ-MtMfDA-CA-psIziAxfR7gzKfnwSLyTPO7g--YDcFl8epSPnw30IBrdZ4sDovGGTIJIttlX8fCXSEluAkrnnCGtquiiRg8b3gtFB4-LolCnnOOyjDU4psn6ckmTnm45vYS6X8ugYDPCPlYMOsb7fdvf7zvtvw-4las7mTebCxjHHrur85Q8lCk98awOGjGreKqsgMMxHxBcfMfvkyGbSTCTbXbQWYZ76Q", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634675182, - "updated": 1634675182, + "created": 1634851498, + "updated": 1634851498, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2218739472/af86f95fb2284c55a2909d8494837c94/wrapkey?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2218739472/cb8f91725be244fdad3b519475ff9710/wrapkey?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key2218739472/af86f95fb2284c55a2909d8494837c94/wrapkey?api-version=7.2", + ":path": "/keys/key2218739472/cb8f91725be244fdad3b519475ff9710/wrapkey?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -73,7 +73,7 @@ "Content-Length": "296", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:21 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:58 GMT" }, "RequestBody": { "alg": "RSA-OAEP", @@ -84,7 +84,7 @@ "Cache-Control": "no-cache", "Content-Length": "447", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:21 GMT", + "Date": "Thu, 21 Oct 2021 21:24:58 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -92,21 +92,21 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "aa8e4c4b-9a29-484c-9575-d10e77915f0c", + "x-ms-request-id": "d022481d-b5cc-4849-8c82-964dab871787", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "kid": "https://fakekvurl.vault.azure.net/keys/key2218739472/af86f95fb2284c55a2909d8494837c94", - "value": "MJtEStExswhrzCAz9fBjfA3SuisPixpJ0Glr7B4rcLjizh6LDDoumhYnOM_a2-ednX4Ot_wJYOVXqn5fjDGfAWuPffnnnJ9A992cRtbI1OT6sLBFbm8kegQrspywDPGlqwQqcc88iPbKwfvK1XQhKAqu1tSgZtfcDuq815BIWqIbTE9eNBzsOck9A9vvKAGTtriloePR-0FZJSwIniPcERDS6F90jcuTwTD3PuEHMC-2LgcJu4KO3U9msTONzf8nabCLEwB2LqTa0xDsRXi-Dm_Ze634jqPYScZ0qp1UvH58PzwvBA_5JP2FxOZhKAXEr2a-Hobhdc_tJMczCp0B2g" + "kid": "https://fakekvurl.vault.azure.net/keys/key2218739472/cb8f91725be244fdad3b519475ff9710", + "value": "KUB_6YBoiNRhQukPNinsQnp86nGpj7vKQpdQHjypKZqVbORqx3qCiwWZ1cOg0c6hMCvBWyNcTNn5pBBwfA3Z6Da-kZLX8m5ifORFbb7YHZFdVsi0Y9TxQ-YfBKK9UIVqLohrTUTb-mMwSZ_b4kw5KRi6ru9AaLEyWZwKKR0pJDm376xrPIHuMN5hqR-4upptOUq9hoxyUuw6gfUgz7dcasjwAQhtLB_QunltKLCK81vIYJbfHCasEu1r-0sZOqP6m1HJsYl-3ma2-TULX5hEF1KkJcDQshZ-FnashnTbp1U59RgLbx1HUfwAZ3tP6wR0GTbxM3OU3fX1V78u8mfQDw" } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2218739472/af86f95fb2284c55a2909d8494837c94/unwrapkey?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2218739472/cb8f91725be244fdad3b519475ff9710/unwrapkey?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key2218739472/af86f95fb2284c55a2909d8494837c94/unwrapkey?api-version=7.2", + ":path": "/keys/key2218739472/cb8f91725be244fdad3b519475ff9710/unwrapkey?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -114,18 +114,18 @@ "Content-Length": "371", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 19 Oct 2021 20:26:21 GMT" + "x-ms-date": "Thu, 21 Oct 2021 21:24:58 GMT" }, "RequestBody": { "alg": "RSA-OAEP", - "value": "MJtEStExswhrzCAz9fBjfA3SuisPixpJ0Glr7B4rcLjizh6LDDoumhYnOM_a2-ednX4Ot_wJYOVXqn5fjDGfAWuPffnnnJ9A992cRtbI1OT6sLBFbm8kegQrspywDPGlqwQqcc88iPbKwfvK1XQhKAqu1tSgZtfcDuq815BIWqIbTE9eNBzsOck9A9vvKAGTtriloePR-0FZJSwIniPcERDS6F90jcuTwTD3PuEHMC-2LgcJu4KO3U9msTONzf8nabCLEwB2LqTa0xDsRXi-Dm_Ze634jqPYScZ0qp1UvH58PzwvBA_5JP2FxOZhKAXEr2a-Hobhdc_tJMczCp0B2g" + "value": "KUB_6YBoiNRhQukPNinsQnp86nGpj7vKQpdQHjypKZqVbORqx3qCiwWZ1cOg0c6hMCvBWyNcTNn5pBBwfA3Z6Da-kZLX8m5ifORFbb7YHZFdVsi0Y9TxQ-YfBKK9UIVqLohrTUTb-mMwSZ_b4kw5KRi6ru9AaLEyWZwKKR0pJDm376xrPIHuMN5hqR-4upptOUq9hoxyUuw6gfUgz7dcasjwAQhtLB_QunltKLCK81vIYJbfHCasEu1r-0sZOqP6m1HJsYl-3ma2-TULX5hEF1KkJcDQshZ-FnashnTbp1U59RgLbx1HUfwAZ3tP6wR0GTbxM3OU3fX1V78u8mfQDw" }, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", "Content-Length": "372", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 19 Oct 2021 20:26:21 GMT", + "Date": "Thu, 21 Oct 2021 21:24:58 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", @@ -133,11 +133,11 @@ "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", "x-ms-keyvault-service-version": "1.9.150.1", - "x-ms-request-id": "16768cb7-edfd-4b90-86d6-83c76ab09ca1", + "x-ms-request-id": "83669f65-3c00-41ec-b076-ac8e7a2fb34e", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "kid": "https://fakekvurl.vault.azure.net/keys/key2218739472/af86f95fb2284c55a2909d8494837c94", + "kid": "https://fakekvurl.vault.azure.net/keys/key2218739472/cb8f91725be244fdad3b519475ff9710", "value": "NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ" } } diff --git a/sdk/keyvault/azkeys/ci.yml b/sdk/keyvault/azkeys/ci.yml index 9db9b59d5ae1..b9adb9578034 100644 --- a/sdk/keyvault/azkeys/ci.yml +++ b/sdk/keyvault/azkeys/ci.yml @@ -25,5 +25,4 @@ stages: - template: /eng/pipelines/templates/jobs/archetype-sdk-client.yml parameters: ServiceDirectory: 'keyvault/azkeys' - RunTests: true RunLiveTests: true diff --git a/sdk/keyvault/azkeys/client.go b/sdk/keyvault/azkeys/client.go index 36a93d04d786..270eeead6c62 100644 --- a/sdk/keyvault/azkeys/client.go +++ b/sdk/keyvault/azkeys/client.go @@ -21,6 +21,7 @@ import ( type Client struct { kvClient *internal.KeyVaultClient vaultUrl string + cred azcore.Credential // keeping this here for NewCryptoClient } // ClientOptions are the configurable options on a Client. @@ -53,7 +54,7 @@ func (c *ClientOptions) toConnectionOptions() *internal.ConnectionOptions { } return &internal.ConnectionOptions{ - HTTPClient: c.Transport, + Transport: c.Transport, Retry: c.Retry, Telemetry: c.Telemetry, Logging: c.Logging, @@ -75,6 +76,7 @@ func NewClient(vaultUrl string, credential azcore.TokenCredential, options *Clie Con: conn, }, vaultUrl: vaultUrl, + cred: credential, }, nil } @@ -1229,3 +1231,272 @@ func (c *Client) ImportKey(ctx context.Context, keyName string, key JSONWebKey, return importKeyResponseFromGenerated(resp), nil } + +// GetRandomBytesOptions contains the optional parameters for the Client.GetRandomBytes function. +type GetRandomBytesOptions struct{} + +func (g GetRandomBytesOptions) toGenerated() *internal.KeyVaultClientGetRandomBytesOptions { + return &internal.KeyVaultClientGetRandomBytesOptions{} +} + +// GetRandomBytesResponse is the response struct for the Client.GetRandomBytes function. +type GetRandomBytesResponse struct { + // The bytes encoded as a base64url string. + Value []byte `json:"value,omitempty"` + + // RawResponse contains the underlying HTTP response. + RawResponse *http.Response +} + +// GetRandomBytes gets the requested number of bytes containing random values from a managed HSM. +// If the operation fails it returns the *KeyVaultError error type. +func (c *Client) GetRandomBytes(ctx context.Context, count *int32, options *GetRandomBytesOptions) (GetRandomBytesResponse, error) { + if options == nil { + options = &GetRandomBytesOptions{} + } + + resp, err := c.kvClient.GetRandomBytes( + ctx, + c.vaultUrl, + internal.GetRandomBytesRequest{Count: count}, + options.toGenerated(), + ) + + if err != nil { + return GetRandomBytesResponse{}, err + } + + return GetRandomBytesResponse{ + Value: resp.Value, + RawResponse: resp.RawResponse, + }, nil +} + +type RotateKeyOptions struct{} + +func (r RotateKeyOptions) toGenerated() *internal.KeyVaultClientRotateKeyOptions { + return &internal.KeyVaultClientRotateKeyOptions{} +} + +type RotateKeyResponse struct { + KeyBundle + // RawResponse contains the underlying HTTP response. + RawResponse *http.Response +} + +func (c *Client) RotateKey(ctx context.Context, name string, options *RotateKeyOptions) (RotateKeyResponse, error) { + if options == nil { + options = &RotateKeyOptions{} + } + + resp, err := c.kvClient.RotateKey( + ctx, + c.vaultUrl, + name, + options.toGenerated(), + ) + if err != nil { + return RotateKeyResponse{}, err + } + + return RotateKeyResponse{ + RawResponse: resp.RawResponse, + KeyBundle: KeyBundle{ + Attributes: keyAttributesFromGenerated(resp.Attributes), + Key: jsonWebKeyFromGenerated(resp.Key), + ReleasePolicy: keyReleasePolicyFromGenerated(resp.ReleasePolicy), + Tags: resp.Tags, + Managed: resp.Managed, + }, + }, nil +} + +// GetKeyRotationPolicyOptions contains the optional parameters for the Client.GetKeyRotationPolicy function +type GetKeyRotationPolicyOptions struct{} + +func (g GetKeyRotationPolicyOptions) toGenerated() *internal.KeyVaultClientGetKeyRotationPolicyOptions { + return &internal.KeyVaultClientGetKeyRotationPolicyOptions{} +} + +// GetKeyRotationPolicyResponse contains the response struct for the Client.GetKeyRotationPolicy function +type GetKeyRotationPolicyResponse struct { + KeyRotationPolicy + // RawResponse contains the underlying HTTP response. + RawResponse *http.Response +} + +func getKeyRotationPolicyResponseFromGenerated(i internal.KeyVaultClientGetKeyRotationPolicyResponse) GetKeyRotationPolicyResponse { + var acts []*LifetimeActions + for _, a := range i.LifetimeActions { + acts = append(acts, lifetimeActionsFromGenerated(a)) + } + var attribs *KeyRotationPolicyAttributes + if i.Attributes != nil { + attribs = &KeyRotationPolicyAttributes{ + ExpiryTime: i.Attributes.ExpiryTime, + Created: i.Attributes.Created, + Updated: i.Attributes.Updated, + } + } + return GetKeyRotationPolicyResponse{ + RawResponse: i.RawResponse, + KeyRotationPolicy: KeyRotationPolicy{ + ID: i.ID, + LifetimeActions: acts, + Attributes: attribs, + }, + } +} + +// The GetKeyRotationPolicy operation returns the specified key policy resources in the specified key vault. This operation requires +// the keys/get permission. +func (c *Client) GetKeyRotationPolicy(ctx context.Context, name string, options *GetKeyRotationPolicyOptions) (GetKeyRotationPolicyResponse, error) { + if options == nil { + options = &GetKeyRotationPolicyOptions{} + } + + resp, err := c.kvClient.GetKeyRotationPolicy( + ctx, + c.vaultUrl, + name, + options.toGenerated(), + ) + if err != nil { + return GetKeyRotationPolicyResponse{}, err + } + + return getKeyRotationPolicyResponseFromGenerated(resp), nil +} + +type ReleaseKeyOptions struct { + // The version of the key to release + Version string + + // The encryption algorithm to use to protected the exported key material + Enc *KeyEncryptionAlgorithm `json:"enc,omitempty"` + + // A client provided nonce for freshness. + Nonce *string `json:"nonce,omitempty"` +} + +// ReleaseKeyResponse contains the response of Client.ReleaseKey +type ReleaseKeyResponse struct { + // RawResponse contains the underlying HTTP response. + RawResponse *http.Response + + // READ-ONLY; A signed object containing the released key. + Value *string `json:"value,omitempty" azure:"ro"` +} + +func (c *Client) ReleaseKey(ctx context.Context, name string, target string, options *ReleaseKeyOptions) (ReleaseKeyResponse, error) { + if options == nil { + options = &ReleaseKeyOptions{} + } + + resp, err := c.kvClient.Release( + ctx, + c.vaultUrl, + name, + options.Version, + internal.KeyReleaseParameters{ + Target: &target, + Enc: (*internal.KeyEncryptionAlgorithm)(options.Enc), + Nonce: options.Nonce, + }, + &internal.KeyVaultClientReleaseOptions{}, + ) + + if err != nil { + return ReleaseKeyResponse{}, err + } + + return ReleaseKeyResponse{ + RawResponse: resp.RawResponse, + Value: resp.Value, + }, err +} + +// UpdateKeyRotationPolicyOptions contains the optional parameters for the Client.UpdateKeyRotationPolicy function +type UpdateKeyRotationPolicyOptions struct { + // The key rotation policy attributes. + Attributes *KeyRotationPolicyAttributes `json:"attributes,omitempty"` + + // Actions that will be performed by Key Vault over the lifetime of a key. For preview, lifetimeActions can only have two items at maximum: one for rotate, + // one for notify. Notification time would be + // default to 30 days before expiry and it is not configurable. + LifetimeActions []*LifetimeActions `json:"lifetimeActions,omitempty"` + + // READ-ONLY; The key policy id. + ID *string `json:"id,omitempty" azure:"ro"` +} + +func (u UpdateKeyRotationPolicyOptions) toGenerated() internal.KeyRotationPolicy { + var attribs *internal.KeyRotationPolicyAttributes + if u.Attributes != nil { + attribs = u.Attributes.toGenerated() + } + var la []*internal.LifetimeActions + for _, l := range u.LifetimeActions { + if l == nil { + la = append(la, nil) + } else { + la = append(la, l.toGenerated()) + } + } + + return internal.KeyRotationPolicy{ + ID: u.ID, + LifetimeActions: la, + Attributes: attribs, + } +} + +// UpdateKeyRotationPolicyResponse contains the response for the Client.UpdateKeyRotationPolicy function +type UpdateKeyRotationPolicyResponse struct { + KeyRotationPolicy + // RawResponse contains the underlying HTTP response. + RawResponse *http.Response +} + +func updateKeyRotationPolicyResponseFromGenerated(i internal.KeyVaultClientUpdateKeyRotationPolicyResponse) UpdateKeyRotationPolicyResponse { + var acts []*LifetimeActions + for _, a := range i.LifetimeActions { + acts = append(acts, lifetimeActionsFromGenerated(a)) + } + var attribs *KeyRotationPolicyAttributes + if i.Attributes != nil { + attribs = &KeyRotationPolicyAttributes{ + ExpiryTime: i.Attributes.ExpiryTime, + Created: i.Attributes.Created, + Updated: i.Attributes.Updated, + } + } + return UpdateKeyRotationPolicyResponse{ + RawResponse: i.RawResponse, + KeyRotationPolicy: KeyRotationPolicy{ + ID: i.ID, + LifetimeActions: acts, + Attributes: attribs, + }, + } +} + +func (c *Client) UpdateKeyRotationPolicy(ctx context.Context, name string, options *UpdateKeyRotationPolicyOptions) (UpdateKeyRotationPolicyResponse, error) { + if options == nil { + options = &UpdateKeyRotationPolicyOptions{} + } + + resp, err := c.kvClient.UpdateKeyRotationPolicy( + ctx, + c.vaultUrl, + name, + options.toGenerated(), + &internal.KeyVaultClientUpdateKeyRotationPolicyOptions{}, + ) + + if err != nil { + return UpdateKeyRotationPolicyResponse{}, err + } + + return updateKeyRotationPolicyResponseFromGenerated(resp), nil +} diff --git a/sdk/keyvault/azkeys/client_test.go b/sdk/keyvault/azkeys/client_test.go index bfa210f31aef..7a231fa01ca9 100644 --- a/sdk/keyvault/azkeys/client_test.go +++ b/sdk/keyvault/azkeys/client_test.go @@ -8,6 +8,7 @@ package azkeys import ( "context" + "encoding/json" "errors" "fmt" "net/http" @@ -23,6 +24,11 @@ import ( var ctx = context.Background() +const HSMTEST = "HSM" +const REGULARTEST = "NON-HSM" + +var testTypes = []string{REGULARTEST, HSMTEST} + func TestMain(m *testing.M) { // Initialize if recording.GetRecordMode() == "record" { @@ -51,368 +57,605 @@ func startTest(t *testing.T) func() { } func TestCreateKeyRSA(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "key") - require.NoError(t, err) - - resp, err := client.CreateRSAKey(ctx, key, nil) - require.NoError(t, err) - require.NotNil(t, resp.Key) - - resp2, err := client.CreateRSAKey(ctx, key+"hsm", &CreateRSAKeyOptions{HardwareProtected: true}) - require.NoError(t, err) - require.NotNil(t, resp2.Key) - - cleanUpKey(t, client, key) - cleanUpKey(t, client, key+"hsm") + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + + resp, err := client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + require.NotNil(t, resp.Key) + + resp2, err := client.CreateRSAKey(ctx, key+"hsm", &CreateRSAKeyOptions{HardwareProtected: true}) + require.NoError(t, err) + require.NotNil(t, resp2.Key) + + cleanUpKey(t, client, key) + cleanUpKey(t, client, key+"hsm") + }) + } } func TestCreateECKey(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "key") - require.NoError(t, err) - - resp, err := client.CreateECKey(ctx, key, nil) - require.NoError(t, err) - require.NotNil(t, resp.Key) - - cleanUpKey(t, client, key) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + + resp, err := client.CreateECKey(ctx, key, nil) + require.NoError(t, err) + require.NotNil(t, resp.Key) + + cleanUpKey(t, client, key) + }) + } } func TestCreateOCTKey(t *testing.T) { - t.Skipf("OCT Key is HSM only") - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "key") - require.NoError(t, err) - - resp, err := client.CreateOCTKey(ctx, key, &CreateOCTKeyOptions{KeySize: to.Int32Ptr(256), HardwareProtected: true}) - require.NoError(t, err) - require.NotNil(t, resp.Key) - - cleanUpKey(t, client, key) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == REGULARTEST { + t.Skip("OCT Key is HSM only") + } + t.Skipf("OCT Key is HSM only") + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + + resp, err := client.CreateOCTKey(ctx, key, &CreateOCTKeyOptions{KeySize: to.Int32Ptr(256), HardwareProtected: true}) + require.NoError(t, err) + require.NotNil(t, resp.Key) + + cleanUpKey(t, client, key) + }) + } } func TestListKeys(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - for i := 0; i < 4; i++ { - key, err := createRandomName(t, fmt.Sprintf("key-%d", i)) - require.NoError(t, err) - - _, err = client.CreateKey(ctx, key, RSA, nil) - require.NoError(t, err) - } - - pager := client.ListKeys(nil) - count := 0 - for pager.NextPage(ctx) { - count += len(pager.PageResponse().Keys) - for _, key := range pager.PageResponse().Keys { - require.NotNil(t, key) - } - } - - require.NoError(t, pager.Err()) - require.GreaterOrEqual(t, count, 4) - - for i := 0; i < 4; i++ { - key, err := createRandomName(t, fmt.Sprintf("key-%d", i)) - require.NoError(t, err) - cleanUpKey(t, client, key) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + for i := 0; i < 4; i++ { + key, err := createRandomName(t, fmt.Sprintf("key-%d", i)) + require.NoError(t, err) + + _, err = client.CreateKey(ctx, key, RSA, nil) + require.NoError(t, err) + } + + pager := client.ListKeys(nil) + count := 0 + for pager.NextPage(ctx) { + count += len(pager.PageResponse().Keys) + for _, key := range pager.PageResponse().Keys { + require.NotNil(t, key) + } + } + + require.NoError(t, pager.Err()) + require.GreaterOrEqual(t, count, 4) + + for i := 0; i < 4; i++ { + key, err := createRandomName(t, fmt.Sprintf("key-%d", i)) + require.NoError(t, err) + cleanUpKey(t, client, key) + } + }) } } func TestGetKey(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "key") - require.NoError(t, err) - - _, err = client.CreateKey(ctx, key, RSA, nil) - require.NoError(t, err) - - resp, err := client.GetKey(ctx, key, nil) - require.NoError(t, err) - require.NotNil(t, resp.Key) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + + _, err = client.CreateKey(ctx, key, RSA, nil) + require.NoError(t, err) + + resp, err := client.GetKey(ctx, key, nil) + require.NoError(t, err) + require.NotNil(t, resp.Key) + }) + } } func TestDeleteKey(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "key") - require.NoError(t, err) - defer cleanUpKey(t, client, key) - - _, err = client.CreateKey(ctx, key, RSA, nil) - require.NoError(t, err) - - resp, err := client.BeginDeleteKey(ctx, key, nil) - require.NoError(t, err) - _, err = resp.PollUntilDone(ctx, 1*time.Second) - require.Nil(t, err) - - _, err = client.GetKey(ctx, key, nil) - require.Error(t, err) - - _, err = client.PurgeDeletedKey(ctx, key, nil) - require.NoError(t, err) - - for i := 0; i < 5; i++ { - _, err = client.GetDeletedKey(ctx, key, nil) - if err != nil { - break - } - require.NoError(t, err) - recording.Sleep(time.Second * 2) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + _, err = client.CreateKey(ctx, key, RSA, nil) + require.NoError(t, err) + + resp, err := client.BeginDeleteKey(ctx, key, nil) + require.NoError(t, err) + _, err = resp.PollUntilDone(ctx, delay()) + require.Nil(t, err) + + _, err = client.GetKey(ctx, key, nil) + require.Error(t, err) + + _, err = client.PurgeDeletedKey(ctx, key, nil) + require.NoError(t, err) + + for i := 0; i < 5; i++ { + _, err = client.GetDeletedKey(ctx, key, nil) + if err != nil { + break + } + require.NoError(t, err) + recording.Sleep(time.Second * 2) + } + + _, err = client.GetDeletedKey(ctx, key, nil) + require.Error(t, err) + }) } - - _, err = client.GetDeletedKey(ctx, key, nil) - require.Error(t, err) } func TestBackupKey(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "key") - require.NoError(t, err) - - _, err = client.CreateRSAKey(context.Background(), key, nil) - require.NoError(t, err) - - defer cleanUpKey(t, client, key) - - backupResp, err := client.BackupKey(context.Background(), key, nil) - require.NoError(t, err) - require.Greater(t, len(backupResp.Value), 0) - - respPoller, err := client.BeginDeleteKey(context.Background(), key, nil) - require.NoError(t, err) - _, err = respPoller.PollUntilDone(context.Background(), delay()) - require.NoError(t, err) - - _, err = client.PurgeDeletedKey(context.Background(), key, nil) - require.NoError(t, err) - - _, err = client.GetKey(context.Background(), key, nil) - var httpErr azcore.HTTPResponse - require.True(t, errors.As(err, &httpErr)) - require.Equal(t, httpErr.RawResponse().StatusCode, http.StatusNotFound) - - _, err = client.GetDeletedKey(context.Background(), key, nil) - require.True(t, errors.As(err, &httpErr)) - require.Equal(t, httpErr.RawResponse().StatusCode, http.StatusNotFound) - - // Poll this operation manually - var restoreResp RestoreKeyBackupResponse - var i int - for i = 0; i < 10; i++ { - restoreResp, err = client.RestoreKeyBackup(context.Background(), backupResp.Value, nil) - if err == nil { - break - } - time.Sleep(delay()) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "backup-key") + require.NoError(t, err) + + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + + defer cleanUpKey(t, client, key) + + backupResp, err := client.BackupKey(ctx, key, nil) + require.NoError(t, err) + require.Greater(t, len(backupResp.Value), 0) + + respPoller, err := client.BeginDeleteKey(ctx, key, nil) + require.NoError(t, err) + _, err = respPoller.PollUntilDone(ctx, delay()) + require.NoError(t, err) + + _, err = client.PurgeDeletedKey(ctx, key, nil) + require.NoError(t, err) + + _, err = client.GetKey(ctx, key, nil) + var httpErr azcore.HTTPResponse + require.True(t, errors.As(err, &httpErr)) + require.Equal(t, httpErr.RawResponse().StatusCode, http.StatusNotFound) + + _, err = client.GetDeletedKey(ctx, key, nil) + require.True(t, errors.As(err, &httpErr)) + require.Equal(t, httpErr.RawResponse().StatusCode, http.StatusNotFound) + + time.Sleep(30 * delay()) + // Poll this operation manually + var restoreResp RestoreKeyBackupResponse + var i int + for i = 0; i < 10; i++ { + restoreResp, err = client.RestoreKeyBackup(ctx, backupResp.Value, nil) + if err == nil { + break + } + time.Sleep(delay()) + } + require.NoError(t, err) + require.NotNil(t, restoreResp.Key) + + // Now the Key should be Get-able + _, err = client.GetKey(ctx, key, nil) + require.NoError(t, err) + }) } - require.NoError(t, err) - require.NotNil(t, restoreResp.Key) - - // Now the Key should be Get-able - _, err = client.GetKey(context.Background(), key, nil) - require.NoError(t, err) } func TestRecoverDeletedKey(t *testing.T) { - stop := startTest(t) - defer stop() + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() - client, err := createClient(t) - require.NoError(t, err) + client, err := createClient(t, testType) + require.NoError(t, err) - key, err := createRandomName(t, "key") - require.NoError(t, err) + key, err := createRandomName(t, "key") + require.NoError(t, err) - _, err = client.CreateRSAKey(context.Background(), key, nil) - require.NoError(t, err) + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) - defer cleanUpKey(t, client, key) + defer cleanUpKey(t, client, key) - pollerResp, err := client.BeginDeleteKey(context.Background(), key, nil) - require.NoError(t, err) + pollerResp, err := client.BeginDeleteKey(ctx, key, nil) + require.NoError(t, err) - _, err = pollerResp.PollUntilDone(context.Background(), delay()) - require.NoError(t, err) + _, err = pollerResp.PollUntilDone(ctx, delay()) + require.NoError(t, err) - resp, err := client.BeginRecoverDeletedKey(context.Background(), key, nil) - require.NoError(t, err) + resp, err := client.BeginRecoverDeletedKey(ctx, key, nil) + require.NoError(t, err) - _, err = resp.PollUntilDone(context.Background(), delay()) - require.NoError(t, err) + _, err = resp.PollUntilDone(ctx, delay()) + require.NoError(t, err) - getResp, err := client.GetKey(context.Background(), key, nil) - require.NoError(t, err) - require.NotNil(t, getResp.Key) + getResp, err := client.GetKey(ctx, key, nil) + require.NoError(t, err) + require.NotNil(t, getResp.Key) + }) + } } func TestUpdateKeyProperties(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "key") - require.NoError(t, err) - - _, err = client.CreateRSAKey(context.Background(), key, nil) - require.NoError(t, err) - defer cleanUpKey(t, client, key) - - resp, err := client.UpdateKeyProperties(ctx, key, &UpdateKeyPropertiesOptions{ - Tags: map[string]*string{ - "Tag1": to.StringPtr("Val1"), - }, - // Uncomment when new azcore with fix with #15786 is released - // KeyAttributes: &KeyAttributes{ - // Attributes: Attributes{ - // Expires: to.TimePtr(time.Now().AddDate(1, 0, 0)), - // }, - // }, - }) - require.NoError(t, err) - require.NotNil(t, resp.Attributes) - require.Equal(t, *resp.Tags["Tag1"], "Val1") - require.NotNil(t, resp.Attributes.Updated) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + resp, err := client.UpdateKeyProperties(ctx, key, &UpdateKeyPropertiesOptions{ + Tags: map[string]*string{ + "Tag1": to.StringPtr("Val1"), + }, + // Uncomment when new azcore with fix with #15786 is released + // KeyAttributes: &KeyAttributes{ + // Attributes: Attributes{ + // Expires: to.TimePtr(time.Now().AddDate(1, 0, 0)), + // }, + // }, + }) + require.NoError(t, err) + require.NotNil(t, resp.Attributes) + require.Equal(t, *resp.Tags["Tag1"], "Val1") + require.NotNil(t, resp.Attributes.Updated) + + }) + } } func TestListDeletedKeys(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "0key") - require.NoError(t, err) - _, err = client.CreateRSAKey(context.Background(), key, nil) - require.NoError(t, err) - defer cleanUpKey(t, client, key) - - pollerResp, err := client.BeginDeleteKey(context.Background(), key, nil) - require.NoError(t, err) - _, err = pollerResp.PollUntilDone(context.Background(), delay()) - require.NoError(t, err) - - key, err = createRandomName(t, "keyy") - require.NoError(t, err) - _, err = client.CreateRSAKey(context.Background(), key, nil) - require.NoError(t, err) - defer cleanUpKey(t, client, key) - - pollerResp, err = client.BeginDeleteKey(context.Background(), key, nil) - require.NoError(t, err) - _, err = pollerResp.PollUntilDone(context.Background(), delay()) - require.NoError(t, err) - - key, err = createRandomName(t, "keyyy") - require.NoError(t, err) - _, err = client.CreateRSAKey(context.Background(), key, nil) - require.NoError(t, err) - defer cleanUpKey(t, client, key) - - pollerResp, err = client.BeginDeleteKey(context.Background(), key, nil) - require.NoError(t, err) - _, err = pollerResp.PollUntilDone(context.Background(), delay()) - require.NoError(t, err) - - pager := client.ListDeletedKeys(nil) - count := 0 - for pager.NextPage(ctx) { - count += len(pager.PageResponse().DeletedKeys) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "list-key0") + require.NoError(t, err) + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + pollerResp, err := client.BeginDeleteKey(ctx, key, nil) + require.NoError(t, err) + _, err = pollerResp.PollUntilDone(ctx, delay()) + require.NoError(t, err) + + key, err = createRandomName(t, "list-key1") + require.NoError(t, err) + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + pollerResp, err = client.BeginDeleteKey(ctx, key, nil) + require.NoError(t, err) + _, err = pollerResp.PollUntilDone(ctx, delay()) + require.NoError(t, err) + + key, err = createRandomName(t, "list-key2") + require.NoError(t, err) + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + pollerResp, err = client.BeginDeleteKey(ctx, key, nil) + require.NoError(t, err) + _, err = pollerResp.PollUntilDone(ctx, delay()) + require.NoError(t, err) + + pager := client.ListDeletedKeys(nil) + count := 0 + for pager.NextPage(ctx) { + count += len(pager.PageResponse().DeletedKeys) + } + + require.GreaterOrEqual(t, count, 3) + }) } - - require.GreaterOrEqual(t, count, 3) } func TestListKeyVersions(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - key, err := createRandomName(t, "key") - require.NoError(t, err) - _, err = client.CreateRSAKey(context.Background(), key, nil) - require.NoError(t, err) - defer cleanUpKey(t, client, key) - - for i := 0; i < 5; i++ { - _, err = client.CreateRSAKey(context.Background(), key, nil) - require.NoError(t, err) + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + for i := 0; i < 5; i++ { + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + } + + pager := client.ListKeyVersions(key, nil) + count := 0 + for pager.NextPage(ctx) { + count += len(pager.PageResponse().Keys) + } + + require.GreaterOrEqual(t, count, 6) + }) } +} - pager := client.ListKeyVersions(key, nil) - count := 0 - for pager.NextPage(ctx) { - count += len(pager.PageResponse().Keys) +func TestImportKey(t *testing.T) { + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + r := RSA + jwk := JSONWebKey{ + KeyType: &r, + KeyOps: to.StringPtrArray("encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey"), + N: toBytes("00a0914d00234ac683b21b4c15d5bed887bdc959c2e57af54ae734e8f00720d775d275e455207e3784ceeb60a50a4655dd72a7a94d271e8ee8f7959a669ca6e775bf0e23badae991b4529d978528b4bd90521d32dd2656796ba82b6bbfc7668c8f5eeb5053747fd199319d29a8440d08f4412d527ff9311eda71825920b47b1c46b11ab3e91d7316407e89c7f340f7b85a34042ce51743b27d4718403d34c7b438af6181be05e4d11eb985d38253d7fe9bf53fc2f1b002d22d2d793fa79a504b6ab42d0492804d7071d727a06cf3a8893aa542b1503f832b296371b6707d4dc6e372f8fe67d8ded1c908fde45ce03bc086a71487fa75e43aa0e0679aa0d20efe35", t), + E: toBytes("10001", t), + D: toBytes("627c7d24668148fe2252c7fa649ea8a5a9ed44d75c766cda42b29b660e99404f0e862d4561a6c95af6a83d213e0a2244b03cd28576473215073785fb067f015da19084ade9f475e08b040a9a2c7ba00253bb8125508c9df140b75161d266be347a5e0f6900fe1d8bbf78ccc25eeb37e0c9d188d6e1fc15169ba4fe12276193d77790d2326928bd60d0d01d6ead8d6ac4861abadceec95358fd6689c50a1671a4a936d2376440a41445501da4e74bfb98f823bd19c45b94eb01d98fc0d2f284507f018ebd929b8180dbe6381fdd434bffb7800aaabdd973d55f9eaf9bb88a6ea7b28c2a80231e72de1ad244826d665582c2362761019de2e9f10cb8bcc2625649", t), + P: toBytes("00d1deac8d68ddd2c1fd52d5999655b2cf1565260de5269e43fd2a85f39280e1708ffff0682166cb6106ee5ea5e9ffd9f98d0becc9ff2cda2febc97259215ad84b9051e563e14a051dce438bc6541a24ac4f014cf9732d36ebfc1e61a00d82cbe412090f7793cfbd4b7605be133dfc3991f7e1bed5786f337de5036fc1e2df4cf3", t), + Q: toBytes("00c3dc66b641a9b73cd833bc439cd34fc6574465ab5b7e8a92d32595a224d56d911e74624225b48c15a670282a51c40d1dad4bc2e9a3c8dab0c76f10052dfb053bc6ed42c65288a8e8bace7a8881184323f94d7db17ea6dfba651218f931a93b8f738f3d8fd3f6ba218d35b96861a0f584b0ab88ddcf446b9815f4d287d83a3237", t), + DP: toBytes("00c9a159be7265cbbabc9afcc4967eb74fe58a4c4945431902d1142da599b760e03838f8cbd26b64324fea6bdc9338503f459793636e59b5361d1e6951e08ddb089e1b507be952a81fbeaf7e76890ea4f536e25505c3f648b1e88377dfc19b4c304e738dfca07211b792286a392a704d0f444c0a802539110b7f1f121c00cff0a9", t), + DQ: toBytes("00a0bd4c0a3d9f64436a082374b5caf2488bac1568696153a6a5e4cd85d186db31e2f58f024c617d29f37b4e6b54c97a1e25efec59c4d1fd3061ac33509ce8cae5c11f4cd2e83f41a8264f785e78dc0996076ee23dfdfc43d67c463afaa0180c4a718357f9a6f270d542479a0f213870e661fb950abca4a14ca290570ba7983347", t), + QI: toBytes("009fe7ae42e92bc04fcd5780464bd21d0c8ac0c599f9af020fde6ab0a7e7d1d39902f5d8fb6c614184c4c1b103fb46e94cd10a6c8a40f9991a1f28269f326435b6c50276fda6493353c650a833f724d80c7d522ba16c79f0eb61f672736b68fb8be3243d10943c4ab7028d09e76cfb5892222e38bc4d35585bf35a88cd68c73b07", t), + } + + resp, err := client.ImportKey(ctx, "importedKey", jwk, nil) + require.NoError(t, err) + require.NotNil(t, resp.Key) + }) } +} - require.GreaterOrEqual(t, count, 6) +func TestGetRandomBytes(t *testing.T) { + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == REGULARTEST { + t.Skip("Managed HSM Only") + } + t.Skip("HSM Tests not ready yet") + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + resp, err := client.GetRandomBytes(ctx, to.Int32Ptr(100), nil) + require.NoError(t, err) + require.Equal(t, 100, len(resp.Value)) + }) + } } -func TestImportKey(t *testing.T) { - stop := startTest(t) - defer stop() +func TestRotateKey(t *testing.T) { + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + createResp, err := client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + resp, err := client.RotateKey(ctx, key, nil) + require.NoError(t, err) + + require.NotEqual(t, *createResp.Key.ID, *resp.Key.ID) + require.NotEqual(t, createResp.Key.N, resp.Key.N) + }) + } +} - client, err := createClient(t) - require.NoError(t, err) +func TestGetKeyRotationPolicy(t *testing.T) { + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + _, err = client.GetKeyRotationPolicy(ctx, key, nil) + require.NoError(t, err) + }) + } +} - r := RSA - jwk := JSONWebKey{ - KeyType: &r, - KeyOps: to.StringPtrArray("encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey"), - N: toBytes("00a0914d00234ac683b21b4c15d5bed887bdc959c2e57af54ae734e8f00720d775d275e455207e3784ceeb60a50a4655dd72a7a94d271e8ee8f7959a669ca6e775bf0e23badae991b4529d978528b4bd90521d32dd2656796ba82b6bbfc7668c8f5eeb5053747fd199319d29a8440d08f4412d527ff9311eda71825920b47b1c46b11ab3e91d7316407e89c7f340f7b85a34042ce51743b27d4718403d34c7b438af6181be05e4d11eb985d38253d7fe9bf53fc2f1b002d22d2d793fa79a504b6ab42d0492804d7071d727a06cf3a8893aa542b1503f832b296371b6707d4dc6e372f8fe67d8ded1c908fde45ce03bc086a71487fa75e43aa0e0679aa0d20efe35", t), - E: toBytes("10001", t), - D: toBytes("627c7d24668148fe2252c7fa649ea8a5a9ed44d75c766cda42b29b660e99404f0e862d4561a6c95af6a83d213e0a2244b03cd28576473215073785fb067f015da19084ade9f475e08b040a9a2c7ba00253bb8125508c9df140b75161d266be347a5e0f6900fe1d8bbf78ccc25eeb37e0c9d188d6e1fc15169ba4fe12276193d77790d2326928bd60d0d01d6ead8d6ac4861abadceec95358fd6689c50a1671a4a936d2376440a41445501da4e74bfb98f823bd19c45b94eb01d98fc0d2f284507f018ebd929b8180dbe6381fdd434bffb7800aaabdd973d55f9eaf9bb88a6ea7b28c2a80231e72de1ad244826d665582c2362761019de2e9f10cb8bcc2625649", t), - P: toBytes("00d1deac8d68ddd2c1fd52d5999655b2cf1565260de5269e43fd2a85f39280e1708ffff0682166cb6106ee5ea5e9ffd9f98d0becc9ff2cda2febc97259215ad84b9051e563e14a051dce438bc6541a24ac4f014cf9732d36ebfc1e61a00d82cbe412090f7793cfbd4b7605be133dfc3991f7e1bed5786f337de5036fc1e2df4cf3", t), - Q: toBytes("00c3dc66b641a9b73cd833bc439cd34fc6574465ab5b7e8a92d32595a224d56d911e74624225b48c15a670282a51c40d1dad4bc2e9a3c8dab0c76f10052dfb053bc6ed42c65288a8e8bace7a8881184323f94d7db17ea6dfba651218f931a93b8f738f3d8fd3f6ba218d35b96861a0f584b0ab88ddcf446b9815f4d287d83a3237", t), - DP: toBytes("00c9a159be7265cbbabc9afcc4967eb74fe58a4c4945431902d1142da599b760e03838f8cbd26b64324fea6bdc9338503f459793636e59b5361d1e6951e08ddb089e1b507be952a81fbeaf7e76890ea4f536e25505c3f648b1e88377dfc19b4c304e738dfca07211b792286a392a704d0f444c0a802539110b7f1f121c00cff0a9", t), - DQ: toBytes("00a0bd4c0a3d9f64436a082374b5caf2488bac1568696153a6a5e4cd85d186db31e2f58f024c617d29f37b4e6b54c97a1e25efec59c4d1fd3061ac33509ce8cae5c11f4cd2e83f41a8264f785e78dc0996076ee23dfdfc43d67c463afaa0180c4a718357f9a6f270d542479a0f213870e661fb950abca4a14ca290570ba7983347", t), - QI: toBytes("009fe7ae42e92bc04fcd5780464bd21d0c8ac0c599f9af020fde6ab0a7e7d1d39902f5d8fb6c614184c4c1b103fb46e94cd10a6c8a40f9991a1f28269f326435b6c50276fda6493353c650a833f724d80c7d522ba16c79f0eb61f672736b68fb8be3243d10943c4ab7028d09e76cfb5892222e38bc4d35585bf35a88cd68c73b07", t), +func TestReleaseKey(t *testing.T) { + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + t.Skip("Release is not currently not enabled in API Version 7.3-preview") + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + // Get attestation token from service + attestationURL := recording.GetEnvVariable(t, "AZURE_KEYVAULT_ATTESTATION_URL", "https://fakewebsite.net/") + req, err := http.NewRequest("GET", fmt.Sprintf("%s/generate-test-token", attestationURL), nil) + require.NoError(t, err) + + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + require.Equal(t, resp.StatusCode, http.StatusOK) + defer resp.Body.Close() + + type targetResponse struct { + Token string `json:"token"` + } + + var tR targetResponse + err = json.NewDecoder(resp.Body).Decode(&tR) + require.NoError(t, err) + + _, err = client.ReleaseKey(ctx, key, tR.Token, nil) + require.NoError(t, err) + }) } +} - resp, err := client.ImportKey(ctx, "importedKey", jwk, nil) - require.NoError(t, err) - require.NotNil(t, resp.Key) - // require.Equal(t, *resp.Key.Kty, createResp.Key.Kty) +func TestUpdateKeyRotationPolicy(t *testing.T) { + for _, testType := range testTypes { + t.Run(fmt.Sprintf("%s_%s", t.Name(), testType), func(t *testing.T) { + if testType == HSMTEST { + t.Skip("HSM NOT READY") + } + stop := startTest(t) + defer stop() + + client, err := createClient(t, testType) + require.NoError(t, err) + + key, err := createRandomName(t, "key") + require.NoError(t, err) + _, err = client.CreateRSAKey(ctx, key, nil) + require.NoError(t, err) + defer cleanUpKey(t, client, key) + + _, err = client.UpdateKeyRotationPolicy(ctx, key, &UpdateKeyRotationPolicyOptions{ + Attributes: &KeyRotationPolicyAttributes{ + ExpiryTime: to.StringPtr("P90D"), + }, + LifetimeActions: []*LifetimeActions{ + { + Action: &LifetimeActionsType{ + Type: ActionTypeNotify.ToPtr(), + }, + Trigger: &LifetimeActionsTrigger{ + TimeBeforeExpiry: to.StringPtr("P30D"), + }, + }, + }, + }) + require.NoError(t, err) + }) + } } diff --git a/sdk/keyvault/azkeys/constants.go b/sdk/keyvault/azkeys/constants.go index f8d8583747f5..725231269fd5 100644 --- a/sdk/keyvault/azkeys/constants.go +++ b/sdk/keyvault/azkeys/constants.go @@ -14,41 +14,41 @@ import "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys/internal" type DeletionRecoveryLevel string const ( - // CustomizedRecoverable - Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent + // DeletionRecoveryLevelCustomizedRecoverable - Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent // deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval // and while the subscription is still available. - CustomizedRecoverable DeletionRecoveryLevel = "CustomizedRecoverable" + DeletionRecoveryLevelCustomizedRecoverable DeletionRecoveryLevel = "CustomizedRecoverable" - // CustomizedRecoverableProtectedSubscription - Denotes a vault and subscription state in which deletion is recoverable, immediate + // DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription - Denotes a vault and subscription state in which deletion is recoverable, immediate // and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays // < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription // itself cannot be cancelled. - CustomizedRecoverableProtectedSubscription DeletionRecoveryLevel = "CustomizedRecoverable+ProtectedSubscription" + DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription DeletionRecoveryLevel = "CustomizedRecoverable+ProtectedSubscription" - // CustomizedRecoverablePurgeable - Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent + // DeletionRecoveryLevelCustomizedRecoverablePurgeable - Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent // deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, // unless a Purge operation is requested, or the subscription is cancelled. - CustomizedRecoverablePurgeable DeletionRecoveryLevel = "CustomizedRecoverable+Purgeable" + DeletionRecoveryLevelCustomizedRecoverablePurgeable DeletionRecoveryLevel = "CustomizedRecoverable+Purgeable" - // Purgeable - Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level + // DeletionRecoveryLevelPurgeable - Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level // corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity // level or higher (vault, resource group, subscription etc.) - Purgeable DeletionRecoveryLevel = "Purgeable" + DeletionRecoveryLevelPurgeable DeletionRecoveryLevel = "Purgeable" - // Recoverable - Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion + // DeletionRecoveryLevelRecoverable - Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion // (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still // available. System wil permanently delete it after 90 days, if not recovered - Recoverable DeletionRecoveryLevel = "Recoverable" + DeletionRecoveryLevelRecoverable DeletionRecoveryLevel = "Recoverable" - // RecoverableProtectedSubscription - Denotes a vault and subscription state in which deletion is recoverable within retention interval + // DeletionRecoveryLevelRecoverableProtectedSubscription - Denotes a vault and subscription state in which deletion is recoverable within retention interval // (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System // wil permanently delete it after 90 days, if not recovered - RecoverableProtectedSubscription DeletionRecoveryLevel = "Recoverable+ProtectedSubscription" + DeletionRecoveryLevelRecoverableProtectedSubscription DeletionRecoveryLevel = "Recoverable+ProtectedSubscription" - // RecoverablePurgeable - Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion + // DeletionRecoveryLevelRecoverablePurgeable - Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion // (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, // or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered - RecoverablePurgeable DeletionRecoveryLevel = "Recoverable+Purgeable" + DeletionRecoveryLevelRecoverablePurgeable DeletionRecoveryLevel = "Recoverable+Purgeable" ) // ToPtr returns a *DeletionRecoveryLevel pointing to the current value. @@ -61,17 +61,17 @@ func recoveryLevelToGenerated(d *DeletionRecoveryLevel) *internal.DeletionRecove if d == nil { return nil } - if *d == CustomizedRecoverable { + if *d == DeletionRecoveryLevelCustomizedRecoverable { return internal.DeletionRecoveryLevelCustomizedRecoverable.ToPtr() - } else if *d == CustomizedRecoverableProtectedSubscription { + } else if *d == DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription { return internal.DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription.ToPtr() - } else if *d == CustomizedRecoverablePurgeable { + } else if *d == DeletionRecoveryLevelCustomizedRecoverablePurgeable { return internal.DeletionRecoveryLevelCustomizedRecoverablePurgeable.ToPtr() - } else if *d == Purgeable { + } else if *d == DeletionRecoveryLevelPurgeable { return internal.DeletionRecoveryLevelPurgeable.ToPtr() - } else if *d == RecoverableProtectedSubscription { + } else if *d == DeletionRecoveryLevelRecoverableProtectedSubscription { return internal.DeletionRecoveryLevelRecoverableProtectedSubscription.ToPtr() - } else if *d == Recoverable { + } else if *d == DeletionRecoveryLevelRecoverable { return internal.DeletionRecoveryLevelRecoverable.ToPtr() } else { return internal.DeletionRecoveryLevelRecoverablePurgeable.ToPtr() @@ -82,17 +82,17 @@ func recoveryLevelToGenerated(d *DeletionRecoveryLevel) *internal.DeletionRecove type JSONWebKeyCurveName string const ( - // P256 - The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. - P256 JSONWebKeyCurveName = "P-256" + // JSONWebKeyCurveNameP256 - The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. + JSONWebKeyCurveNameP256 JSONWebKeyCurveName = "P-256" - // P256K - The SECG SECP256K1 elliptic curve. - P256K JSONWebKeyCurveName = "P-256K" + // JSONWebKeyCurveNameP256K - The SECG SECP256K1 elliptic curve. + JSONWebKeyCurveNameP256K JSONWebKeyCurveName = "P-256K" - // P384 - The NIST P-384 elliptic curve, AKA SECG curve SECP384R1. - P384 JSONWebKeyCurveName = "P-384" + // JSONWebKeyCurveNameP384 - The NIST P-384 elliptic curve, AKA SECG curve SECP384R1. + JSONWebKeyCurveNameP384 JSONWebKeyCurveName = "P-384" - // P521 - The NIST P-521 elliptic curve, AKA SECG curve SECP521R1. - P521 JSONWebKeyCurveName = "P-521" + // JSONWebKeyCurveNameP521 - The NIST P-521 elliptic curve, AKA SECG curve SECP521R1. + JSONWebKeyCurveNameP521 JSONWebKeyCurveName = "P-521" ) // ToPtr returns a *JSONWebKeyCurveName pointing to the current value. @@ -117,3 +117,32 @@ const ( func (c JSONWebKeyOperation) ToPtr() *JSONWebKeyOperation { return &c } + +// ActionType - The type of the action. +type ActionType string + +const ( + // ActionTypeRotate - Rotate the key based on the key policy. + ActionTypeRotate ActionType = "rotate" + // ActionTypeNotify - Trigger event grid events. For preview, the notification time is not configurable and it is default to 30 days before expiry. + ActionTypeNotify ActionType = "notify" +) + +// ToPtr returns a *ActionType pointing to the current value. +func (c ActionType) ToPtr() *ActionType { + return &c +} + +// KeyEncryptionAlgorithm - The encryption algorithm to use to protected the exported key material +type KeyEncryptionAlgorithm string + +const ( + KeyEncryptionAlgorithmCKMRSAAESKEYWRAP KeyEncryptionAlgorithm = "CKM_RSA_AES_KEY_WRAP" + KeyEncryptionAlgorithmRSAAESKEYWRAP256 KeyEncryptionAlgorithm = "RSA_AES_KEY_WRAP_256" + KeyEncryptionAlgorithmRSAAESKEYWRAP384 KeyEncryptionAlgorithm = "RSA_AES_KEY_WRAP_384" +) + +// ToPtr returns a *KeyEncryptionAlgorithm pointing to the current value. +func (c KeyEncryptionAlgorithm) ToPtr() *KeyEncryptionAlgorithm { + return &c +} diff --git a/sdk/keyvault/azkeys/example_test.go b/sdk/keyvault/azkeys/example_test.go index 562cfeeb0fba..79f9881015a3 100644 --- a/sdk/keyvault/azkeys/example_test.go +++ b/sdk/keyvault/azkeys/example_test.go @@ -64,7 +64,7 @@ func ExampleClient_CreateECKey() { panic(err) } - resp, err := client.CreateECKey(context.TODO(), "new-rsa-key", &azkeys.CreateECKeyOptions{CurveName: azkeys.P256.ToPtr()}) + resp, err := client.CreateECKey(context.TODO(), "new-rsa-key", &azkeys.CreateECKeyOptions{CurveName: azkeys.JSONWebKeyCurveNameP256.ToPtr()}) if err != nil { panic(err) } @@ -108,7 +108,7 @@ func ExampleClient_UpdateKeyProperties() { "Tag1": to.StringPtr("val1"), }, KeyAttributes: &azkeys.KeyAttributes{ - RecoveryLevel: azkeys.CustomizedRecoverablePurgeable.ToPtr(), + RecoveryLevel: azkeys.DeletionRecoveryLevelCustomizedRecoverablePurgeable.ToPtr(), }, }) if err != nil { diff --git a/sdk/keyvault/azkeys/internal/connection.go b/sdk/keyvault/azkeys/internal/connection.go index 4b8637513a5b..543f13d22911 100644 --- a/sdk/keyvault/azkeys/internal/connection.go +++ b/sdk/keyvault/azkeys/internal/connection.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -17,11 +16,11 @@ import ( var scopes = []string{"https://vault.azure.net/.default"} -// connectionOptions contains configuration settings for the connection's pipeline. +// ConnectionOptions contains configuration settings for the connection's pipeline. // All zero-value fields will be initialized with their default values. type ConnectionOptions struct { - // HTTPClient sets the transport for making HTTP requests. - HTTPClient policy.Transporter + // Transport sets the transport for making HTTP requests. + Transport policy.Transporter // Retry configures the built-in retry policy behavior. Retry policy.RetryOptions // Telemetry configures the built-in telemetry policy behavior. @@ -41,7 +40,7 @@ type connection struct { p runtime.Pipeline } -// newConnection creates an instance of the connection type with the specified endpoint. +// NewConnection creates an instance of the connection type with the specified endpoint. // Pass nil to accept the default options; this is the same as passing a zero-value options. func NewConnection(cred azcore.Credential, options *ConnectionOptions) *connection { if options == nil { @@ -57,7 +56,7 @@ func NewConnection(cred azcore.Credential, options *ConnectionOptions) *connecti policies = append(policies, cred.NewAuthenticationPolicy(runtime.AuthenticationOptions{TokenRequest: policy.TokenRequestOptions{Scopes: scopes}})) policies = append(policies, runtime.NewLogPolicy(&options.Logging)) client := &connection{ - p: runtime.NewPipeline(options.HTTPClient, policies...), + p: runtime.NewPipeline(options.Transport, policies...), } return client } diff --git a/sdk/keyvault/azkeys/internal/constants.go b/sdk/keyvault/azkeys/internal/constants.go index 2d71352ab28a..bda1d90053b4 100644 --- a/sdk/keyvault/azkeys/internal/constants.go +++ b/sdk/keyvault/azkeys/internal/constants.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -18,15 +17,17 @@ const ( type ActionType string const ( - ActionTypeEmailContacts ActionType = "EmailContacts" - ActionTypeAutoRenew ActionType = "AutoRenew" + // ActionTypeRotate - Rotate the key based on the key policy. + ActionTypeRotate ActionType = "rotate" + // ActionTypeNotify - Trigger event grid events. For preview, the notification time is not configurable and it is default to 30 days before expiry. + ActionTypeNotify ActionType = "notify" ) // PossibleActionTypeValues returns the possible values for the ActionType const type. func PossibleActionTypeValues() []ActionType { return []ActionType{ - ActionTypeEmailContacts, - ActionTypeAutoRenew, + ActionTypeRotate, + ActionTypeNotify, } } @@ -49,8 +50,12 @@ const ( DataActionDeleteHsmKey DataAction = "Microsoft.KeyVault/managedHsm/keys/delete" // DataActionDeleteRoleAssignment - Delete role assignment. DataActionDeleteRoleAssignment DataAction = "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action" + // DataActionDeleteRoleDefinition - Delete role definition. + DataActionDeleteRoleDefinition DataAction = "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action" // DataActionDownloadHsmSecurityDomain - Download an HSM security domain. DataActionDownloadHsmSecurityDomain DataAction = "Microsoft.KeyVault/managedHsm/securitydomain/download/action" + // DataActionDownloadHsmSecurityDomainStatus - Check status of HSM security domain download. + DataActionDownloadHsmSecurityDomainStatus DataAction = "Microsoft.KeyVault/managedHsm/securitydomain/download/read" // DataActionEncryptHsmKey - Encrypt using an HSM key. DataActionEncryptHsmKey DataAction = "Microsoft.KeyVault/managedHsm/keys/encrypt/action" // DataActionExportHsmKey - Export an HSM key. @@ -61,6 +66,8 @@ const ( DataActionImportHsmKey DataAction = "Microsoft.KeyVault/managedHsm/keys/import/action" // DataActionPurgeDeletedHsmKey - Purge a deleted HSM key. DataActionPurgeDeletedHsmKey DataAction = "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete" + // DataActionRandomNumbersGenerate - Generate random numbers. + DataActionRandomNumbersGenerate DataAction = "Microsoft.KeyVault/managedHsm/rng/action" // DataActionReadDeletedHsmKey - Read deleted HSM key. DataActionReadDeletedHsmKey DataAction = "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action" // DataActionReadHsmBackupStatus - Read an HSM backup status. @@ -77,6 +84,8 @@ const ( DataActionReadRoleDefinition DataAction = "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action" // DataActionRecoverDeletedHsmKey - Recover deleted HSM key. DataActionRecoverDeletedHsmKey DataAction = "Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action" + // DataActionReleaseKey - Release an HSM key using Secure Key Release. + DataActionReleaseKey DataAction = "Microsoft.KeyVault/managedHsm/keys/release/action" // DataActionRestoreHsmKeys - Restore HSM keys. DataActionRestoreHsmKeys DataAction = "Microsoft.KeyVault/managedHsm/keys/restore/action" // DataActionSignHsmKey - Sign using an HSM key. @@ -97,6 +106,8 @@ const ( DataActionWriteHsmKey DataAction = "Microsoft.KeyVault/managedHsm/keys/write/action" // DataActionWriteRoleAssignment - Create or update role assignment. DataActionWriteRoleAssignment DataAction = "Microsoft.KeyVault/managedHsm/roleAssignments/write/action" + // DataActionWriteRoleDefinition - Create or update role definition. + DataActionWriteRoleDefinition DataAction = "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action" ) // PossibleDataActionValues returns the possible values for the DataAction const type. @@ -107,12 +118,15 @@ func PossibleDataActionValues() []DataAction { DataActionDecryptHsmKey, DataActionDeleteHsmKey, DataActionDeleteRoleAssignment, + DataActionDeleteRoleDefinition, DataActionDownloadHsmSecurityDomain, + DataActionDownloadHsmSecurityDomainStatus, DataActionEncryptHsmKey, DataActionExportHsmKey, DataActionGetRoleAssignment, DataActionImportHsmKey, DataActionPurgeDeletedHsmKey, + DataActionRandomNumbersGenerate, DataActionReadDeletedHsmKey, DataActionReadHsmBackupStatus, DataActionReadHsmKey, @@ -121,6 +135,7 @@ func PossibleDataActionValues() []DataAction { DataActionReadHsmSecurityDomainTransferKey, DataActionReadRoleDefinition, DataActionRecoverDeletedHsmKey, + DataActionReleaseKey, DataActionRestoreHsmKeys, DataActionSignHsmKey, DataActionStartHsmBackup, @@ -131,6 +146,7 @@ func PossibleDataActionValues() []DataAction { DataActionWrapHsmKey, DataActionWriteHsmKey, DataActionWriteRoleAssignment, + DataActionWriteRoleDefinition, } } @@ -139,9 +155,9 @@ func (c DataAction) ToPtr() *DataAction { return &c } -// DeletionRecoveryLevel - Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the -// certificate can be permanently deleted by a privileged user; otherwise, -// only the system can purge the certificate, at the end of the retention interval. +// DeletionRecoveryLevel - Reflects the deletion recovery level currently in effect for keys in the current vault. If it contains 'Purgeable' the key can +// be permanently deleted by a privileged user; otherwise, only the system +// can purge the key, at the end of the retention interval. type DeletionRecoveryLevel string const ( @@ -276,6 +292,7 @@ type JSONWebKeyOperation string const ( JSONWebKeyOperationDecrypt JSONWebKeyOperation = "decrypt" JSONWebKeyOperationEncrypt JSONWebKeyOperation = "encrypt" + JSONWebKeyOperationExport JSONWebKeyOperation = "export" JSONWebKeyOperationImport JSONWebKeyOperation = "import" JSONWebKeyOperationSign JSONWebKeyOperation = "sign" JSONWebKeyOperationUnwrapKey JSONWebKeyOperation = "unwrapKey" @@ -288,6 +305,7 @@ func PossibleJSONWebKeyOperationValues() []JSONWebKeyOperation { return []JSONWebKeyOperation{ JSONWebKeyOperationDecrypt, JSONWebKeyOperationEncrypt, + JSONWebKeyOperationExport, JSONWebKeyOperationImport, JSONWebKeyOperationSign, JSONWebKeyOperationUnwrapKey, @@ -357,15 +375,15 @@ type JSONWebKeyType string const ( // JSONWebKeyTypeEC - Elliptic Curve. JSONWebKeyTypeEC JSONWebKeyType = "EC" - // JSONWebKeyTypeECHSM - Elliptic Curve with a private key which is not exportable from the HSM. + // JSONWebKeyTypeECHSM - Elliptic Curve with a private key which is stored in the HSM. JSONWebKeyTypeECHSM JSONWebKeyType = "EC-HSM" // JSONWebKeyTypeOct - Octet sequence (used to represent symmetric keys) JSONWebKeyTypeOct JSONWebKeyType = "oct" - // JSONWebKeyTypeOctHSM - Octet sequence (used to represent symmetric keys) which is not exportable from the HSM. + // JSONWebKeyTypeOctHSM - Octet sequence (used to represent symmetric keys) which is stored the HSM. JSONWebKeyTypeOctHSM JSONWebKeyType = "oct-HSM" // JSONWebKeyTypeRSA - RSA (https://tools.ietf.org/html/rfc3447) JSONWebKeyTypeRSA JSONWebKeyType = "RSA" - // JSONWebKeyTypeRSAHSM - RSA with a private key which is not exportable from the HSM. + // JSONWebKeyTypeRSAHSM - RSA with a private key which is stored in the HSM. JSONWebKeyTypeRSAHSM JSONWebKeyType = "RSA-HSM" ) @@ -386,37 +404,26 @@ func (c JSONWebKeyType) ToPtr() *JSONWebKeyType { return &c } -type KeyUsageType string +// KeyEncryptionAlgorithm - The encryption algorithm to use to protected the exported key material +type KeyEncryptionAlgorithm string const ( - KeyUsageTypeCRLSign KeyUsageType = "cRLSign" - KeyUsageTypeDataEncipherment KeyUsageType = "dataEncipherment" - KeyUsageTypeDecipherOnly KeyUsageType = "decipherOnly" - KeyUsageTypeDigitalSignature KeyUsageType = "digitalSignature" - KeyUsageTypeEncipherOnly KeyUsageType = "encipherOnly" - KeyUsageTypeKeyAgreement KeyUsageType = "keyAgreement" - KeyUsageTypeKeyCertSign KeyUsageType = "keyCertSign" - KeyUsageTypeKeyEncipherment KeyUsageType = "keyEncipherment" - KeyUsageTypeNonRepudiation KeyUsageType = "nonRepudiation" + KeyEncryptionAlgorithmCKMRSAAESKEYWRAP KeyEncryptionAlgorithm = "CKM_RSA_AES_KEY_WRAP" + KeyEncryptionAlgorithmRSAAESKEYWRAP256 KeyEncryptionAlgorithm = "RSA_AES_KEY_WRAP_256" + KeyEncryptionAlgorithmRSAAESKEYWRAP384 KeyEncryptionAlgorithm = "RSA_AES_KEY_WRAP_384" ) -// PossibleKeyUsageTypeValues returns the possible values for the KeyUsageType const type. -func PossibleKeyUsageTypeValues() []KeyUsageType { - return []KeyUsageType{ - KeyUsageTypeCRLSign, - KeyUsageTypeDataEncipherment, - KeyUsageTypeDecipherOnly, - KeyUsageTypeDigitalSignature, - KeyUsageTypeEncipherOnly, - KeyUsageTypeKeyAgreement, - KeyUsageTypeKeyCertSign, - KeyUsageTypeKeyEncipherment, - KeyUsageTypeNonRepudiation, +// PossibleKeyEncryptionAlgorithmValues returns the possible values for the KeyEncryptionAlgorithm const type. +func PossibleKeyEncryptionAlgorithmValues() []KeyEncryptionAlgorithm { + return []KeyEncryptionAlgorithm{ + KeyEncryptionAlgorithmCKMRSAAESKEYWRAP, + KeyEncryptionAlgorithmRSAAESKEYWRAP256, + KeyEncryptionAlgorithmRSAAESKEYWRAP384, } } -// ToPtr returns a *KeyUsageType pointing to the current value. -func (c KeyUsageType) ToPtr() *KeyUsageType { +// ToPtr returns a *KeyEncryptionAlgorithm pointing to the current value. +func (c KeyEncryptionAlgorithm) ToPtr() *KeyEncryptionAlgorithm { return &c } @@ -507,24 +514,3 @@ func PossibleRoleTypeValues() []RoleType { func (c RoleType) ToPtr() *RoleType { return &c } - -// SasTokenType - The type of SAS token the SAS definition will create. -type SasTokenType string - -const ( - SasTokenTypeAccount SasTokenType = "account" - SasTokenTypeService SasTokenType = "service" -) - -// PossibleSasTokenTypeValues returns the possible values for the SasTokenType const type. -func PossibleSasTokenTypeValues() []SasTokenType { - return []SasTokenType{ - SasTokenTypeAccount, - SasTokenTypeService, - } -} - -// ToPtr returns a *SasTokenType pointing to the current value. -func (c SasTokenType) ToPtr() *SasTokenType { - return &c -} diff --git a/sdk/keyvault/azkeys/internal/hsmsecuritydomain_client.go b/sdk/keyvault/azkeys/internal/hsmsecuritydomain_client.go index 7b7f2c7526a6..651b706d07d4 100644 --- a/sdk/keyvault/azkeys/internal/hsmsecuritydomain_client.go +++ b/sdk/keyvault/azkeys/internal/hsmsecuritydomain_client.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -69,7 +68,7 @@ func (client *hsmSecurityDomainClient) downloadCreateRequest(ctx context.Context return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, certificateInfoObject) @@ -167,7 +166,7 @@ func (client *hsmSecurityDomainClient) transferKeyCreateRequest(ctx context.Cont return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil diff --git a/sdk/keyvault/azkeys/internal/keyvaultclient_client.go b/sdk/keyvault/azkeys/internal/keyvaultclient_client.go index a0599ec0ea06..e228d022d6da 100644 --- a/sdk/keyvault/azkeys/internal/keyvaultclient_client.go +++ b/sdk/keyvault/azkeys/internal/keyvaultclient_client.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -13,78 +12,19 @@ import ( "context" "errors" "fmt" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "net/http" "net/url" "strconv" "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" ) type KeyVaultClient struct { Con *connection } -// BackupCertificate - Requests that a backup of the specified certificate be downloaded to the client. All versions of the certificate will be downloaded. -// This operation requires the certificates/backup permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) BackupCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientBackupCertificateOptions) (KeyVaultClientBackupCertificateResponse, error) { - req, err := client.backupCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientBackupCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientBackupCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientBackupCertificateResponse{}, client.backupCertificateHandleError(resp) - } - return client.backupCertificateHandleResponse(resp) -} - -// backupCertificateCreateRequest creates the BackupCertificate request. -func (client *KeyVaultClient) backupCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientBackupCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/backup" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// backupCertificateHandleResponse handles the BackupCertificate response. -func (client *KeyVaultClient) backupCertificateHandleResponse(resp *http.Response) (KeyVaultClientBackupCertificateResponse, error) { - result := KeyVaultClientBackupCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.BackupCertificateResult); err != nil { - return KeyVaultClientBackupCertificateResponse{}, err - } - return result, nil -} - -// backupCertificateHandleError handles the BackupCertificate error response. -func (client *KeyVaultClient) backupCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - // BackupKey - The Key Backup operation exports a key from Azure Key Vault in a protected form. Note that this operation does NOT return key material in // a form that can be used outside the Azure Key Vault system, // the returned key material is either protected to a Azure Key Vault HSM or to Azure Key Vault itself. The intent of this operation is to allow a client @@ -125,7 +65,7 @@ func (client *KeyVaultClient) backupKeyCreateRequest(ctx context.Context, vaultB return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil @@ -153,185 +93,6 @@ func (client *KeyVaultClient) backupKeyHandleError(resp *http.Response) error { return runtime.NewResponseError(&errType, resp) } -// BackupSecret - Requests that a backup of the specified secret be downloaded to the client. All versions of the secret will be downloaded. This operation -// requires the secrets/backup permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) BackupSecret(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientBackupSecretOptions) (KeyVaultClientBackupSecretResponse, error) { - req, err := client.backupSecretCreateRequest(ctx, vaultBaseURL, secretName, options) - if err != nil { - return KeyVaultClientBackupSecretResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientBackupSecretResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientBackupSecretResponse{}, client.backupSecretHandleError(resp) - } - return client.backupSecretHandleResponse(resp) -} - -// backupSecretCreateRequest creates the BackupSecret request. -func (client *KeyVaultClient) backupSecretCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientBackupSecretOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/secrets/{secret-name}/backup" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// backupSecretHandleResponse handles the BackupSecret response. -func (client *KeyVaultClient) backupSecretHandleResponse(resp *http.Response) (KeyVaultClientBackupSecretResponse, error) { - result := KeyVaultClientBackupSecretResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.BackupSecretResult); err != nil { - return KeyVaultClientBackupSecretResponse{}, err - } - return result, nil -} - -// backupSecretHandleError handles the BackupSecret error response. -func (client *KeyVaultClient) backupSecretHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// BackupStorageAccount - Requests that a backup of the specified storage account be downloaded to the client. This operation requires the storage/backup -// permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) BackupStorageAccount(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientBackupStorageAccountOptions) (KeyVaultClientBackupStorageAccountResponse, error) { - req, err := client.backupStorageAccountCreateRequest(ctx, vaultBaseURL, storageAccountName, options) - if err != nil { - return KeyVaultClientBackupStorageAccountResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientBackupStorageAccountResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientBackupStorageAccountResponse{}, client.backupStorageAccountHandleError(resp) - } - return client.backupStorageAccountHandleResponse(resp) -} - -// backupStorageAccountCreateRequest creates the BackupStorageAccount request. -func (client *KeyVaultClient) backupStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientBackupStorageAccountOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}/backup" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// backupStorageAccountHandleResponse handles the BackupStorageAccount response. -func (client *KeyVaultClient) backupStorageAccountHandleResponse(resp *http.Response) (KeyVaultClientBackupStorageAccountResponse, error) { - result := KeyVaultClientBackupStorageAccountResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.BackupStorageResult); err != nil { - return KeyVaultClientBackupStorageAccountResponse{}, err - } - return result, nil -} - -// backupStorageAccountHandleError handles the BackupStorageAccount error response. -func (client *KeyVaultClient) backupStorageAccountHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// CreateCertificate - If this is the first version, the certificate resource is created. This operation requires the certificates/create permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) CreateCertificate(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateCreateParameters, options *KeyVaultClientCreateCertificateOptions) (KeyVaultClientCreateCertificateResponse, error) { - req, err := client.createCertificateCreateRequest(ctx, vaultBaseURL, certificateName, parameters, options) - if err != nil { - return KeyVaultClientCreateCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientCreateCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusAccepted) { - return KeyVaultClientCreateCertificateResponse{}, client.createCertificateHandleError(resp) - } - return client.createCertificateHandleResponse(resp) -} - -// createCertificateCreateRequest creates the CreateCertificate request. -func (client *KeyVaultClient) createCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateCreateParameters, options *KeyVaultClientCreateCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/create" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// createCertificateHandleResponse handles the CreateCertificate response. -func (client *KeyVaultClient) createCertificateHandleResponse(resp *http.Response) (KeyVaultClientCreateCertificateResponse, error) { - result := KeyVaultClientCreateCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { - return KeyVaultClientCreateCertificateResponse{}, err - } - return result, nil -} - -// createCertificateHandleError handles the CreateCertificate error response. -func (client *KeyVaultClient) createCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - // CreateKey - The create key operation can be used to create any key type in Azure Key Vault. If the named key already exists, Azure Key Vault creates // a new version of the key. It requires the keys/create // permission. @@ -365,7 +126,7 @@ func (client *KeyVaultClient) createKeyCreateRequest(ctx context.Context, vaultB return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) @@ -432,7 +193,7 @@ func (client *KeyVaultClient) decryptCreateRequest(ctx context.Context, vaultBas return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) @@ -460,56 +221,56 @@ func (client *KeyVaultClient) decryptHandleError(resp *http.Response) error { return runtime.NewResponseError(&errType, resp) } -// DeleteCertificate - Deletes all versions of a certificate object along with its associated policy. Delete certificate cannot be used to remove individual -// versions of a certificate object. This operation requires the -// certificates/delete permission. +// DeleteKey - The delete key operation cannot be used to remove individual versions of a key. This operation removes the cryptographic material associated +// with the key, which means the key is not usable for +// Sign/Verify, Wrap/Unwrap or Encrypt/Decrypt operations. This operation requires the keys/delete permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) DeleteCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientDeleteCertificateOptions) (KeyVaultClientDeleteCertificateResponse, error) { - req, err := client.deleteCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) +func (client *KeyVaultClient) DeleteKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientDeleteKeyOptions) (KeyVaultClientDeleteKeyResponse, error) { + req, err := client.deleteKeyCreateRequest(ctx, vaultBaseURL, keyName, options) if err != nil { - return KeyVaultClientDeleteCertificateResponse{}, err + return KeyVaultClientDeleteKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientDeleteCertificateResponse{}, err + return KeyVaultClientDeleteKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteCertificateResponse{}, client.deleteCertificateHandleError(resp) + return KeyVaultClientDeleteKeyResponse{}, client.deleteKeyHandleError(resp) } - return client.deleteCertificateHandleResponse(resp) + return client.deleteKeyHandleResponse(resp) } -// deleteCertificateCreateRequest creates the DeleteCertificate request. -func (client *KeyVaultClient) deleteCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientDeleteCertificateOptions) (*policy.Request, error) { +// deleteKeyCreateRequest creates the DeleteKey request. +func (client *KeyVaultClient) deleteKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientDeleteKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") + urlPath := "/keys/{key-name}" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil } -// deleteCertificateHandleResponse handles the DeleteCertificate response. -func (client *KeyVaultClient) deleteCertificateHandleResponse(resp *http.Response) (KeyVaultClientDeleteCertificateResponse, error) { - result := KeyVaultClientDeleteCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateBundle); err != nil { - return KeyVaultClientDeleteCertificateResponse{}, err +// deleteKeyHandleResponse handles the DeleteKey response. +func (client *KeyVaultClient) deleteKeyHandleResponse(resp *http.Response) (KeyVaultClientDeleteKeyResponse, error) { + result := KeyVaultClientDeleteKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.DeletedKeyBundle); err != nil { + return KeyVaultClientDeleteKeyResponse{}, err } return result, nil } -// deleteCertificateHandleError handles the DeleteCertificate error response. -func (client *KeyVaultClient) deleteCertificateHandleError(resp *http.Response) error { +// deleteKeyHandleError handles the DeleteKey error response. +func (client *KeyVaultClient) deleteKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -521,51 +282,64 @@ func (client *KeyVaultClient) deleteCertificateHandleError(resp *http.Response) return runtime.NewResponseError(&errType, resp) } -// DeleteCertificateContacts - Deletes the certificate contacts for a specified key vault certificate. This operation requires the certificates/managecontacts -// permission. +// Encrypt - The ENCRYPT operation encrypts an arbitrary sequence of bytes using an encryption key that is stored in Azure Key Vault. Note that the ENCRYPT +// operation only supports a single block of data, the size +// of which is dependent on the target key and the encryption algorithm to be used. The ENCRYPT operation is only strictly necessary for symmetric keys +// stored in Azure Key Vault since protection with an +// asymmetric key can be performed using public portion of the key. This operation is supported for asymmetric keys as a convenience for callers that have +// a key-reference but do not have access to the +// public key material. This operation requires the keys/encrypt permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) DeleteCertificateContacts(ctx context.Context, vaultBaseURL string, options *KeyVaultClientDeleteCertificateContactsOptions) (KeyVaultClientDeleteCertificateContactsResponse, error) { - req, err := client.deleteCertificateContactsCreateRequest(ctx, vaultBaseURL, options) +func (client *KeyVaultClient) Encrypt(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyOperationsParameters, options *KeyVaultClientEncryptOptions) (KeyVaultClientEncryptResponse, error) { + req, err := client.encryptCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) if err != nil { - return KeyVaultClientDeleteCertificateContactsResponse{}, err + return KeyVaultClientEncryptResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientDeleteCertificateContactsResponse{}, err + return KeyVaultClientEncryptResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteCertificateContactsResponse{}, client.deleteCertificateContactsHandleError(resp) + return KeyVaultClientEncryptResponse{}, client.encryptHandleError(resp) } - return client.deleteCertificateContactsHandleResponse(resp) + return client.encryptHandleResponse(resp) } -// deleteCertificateContactsCreateRequest creates the DeleteCertificateContacts request. -func (client *KeyVaultClient) deleteCertificateContactsCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientDeleteCertificateContactsOptions) (*policy.Request, error) { +// encryptCreateRequest creates the Encrypt request. +func (client *KeyVaultClient) encryptCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyOperationsParameters, options *KeyVaultClientEncryptOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/contacts" - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) + urlPath := "/keys/{key-name}/{key-version}/encrypt" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + if keyVersion == "" { + return nil, errors.New("parameter keyVersion cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, nil + return req, runtime.MarshalAsJSON(req, parameters) } -// deleteCertificateContactsHandleResponse handles the DeleteCertificateContacts response. -func (client *KeyVaultClient) deleteCertificateContactsHandleResponse(resp *http.Response) (KeyVaultClientDeleteCertificateContactsResponse, error) { - result := KeyVaultClientDeleteCertificateContactsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { - return KeyVaultClientDeleteCertificateContactsResponse{}, err +// encryptHandleResponse handles the Encrypt response. +func (client *KeyVaultClient) encryptHandleResponse(resp *http.Response) (KeyVaultClientEncryptResponse, error) { + result := KeyVaultClientEncryptResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyOperationResult); err != nil { + return KeyVaultClientEncryptResponse{}, err } return result, nil } -// deleteCertificateContactsHandleError handles the DeleteCertificateContacts error response. -func (client *KeyVaultClient) deleteCertificateContactsHandleError(resp *http.Response) error { +// encryptHandleError handles the Encrypt error response. +func (client *KeyVaultClient) encryptHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -577,55 +351,58 @@ func (client *KeyVaultClient) deleteCertificateContactsHandleError(resp *http.Re return runtime.NewResponseError(&errType, resp) } -// DeleteCertificateIssuer - The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from the vault. This operation requires -// the certificates/manageissuers/deleteissuers permission. +// Export - The export key operation is applicable to all key types. The target key must be marked exportable. This operation requires the keys/export permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) DeleteCertificateIssuer(ctx context.Context, vaultBaseURL string, issuerName string, options *KeyVaultClientDeleteCertificateIssuerOptions) (KeyVaultClientDeleteCertificateIssuerResponse, error) { - req, err := client.deleteCertificateIssuerCreateRequest(ctx, vaultBaseURL, issuerName, options) +func (client *KeyVaultClient) Export(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyExportParameters, options *KeyVaultClientExportOptions) (KeyVaultClientExportResponse, error) { + req, err := client.exportCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) if err != nil { - return KeyVaultClientDeleteCertificateIssuerResponse{}, err + return KeyVaultClientExportResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientDeleteCertificateIssuerResponse{}, err + return KeyVaultClientExportResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteCertificateIssuerResponse{}, client.deleteCertificateIssuerHandleError(resp) + return KeyVaultClientExportResponse{}, client.exportHandleError(resp) } - return client.deleteCertificateIssuerHandleResponse(resp) + return client.exportHandleResponse(resp) } -// deleteCertificateIssuerCreateRequest creates the DeleteCertificateIssuer request. -func (client *KeyVaultClient) deleteCertificateIssuerCreateRequest(ctx context.Context, vaultBaseURL string, issuerName string, options *KeyVaultClientDeleteCertificateIssuerOptions) (*policy.Request, error) { +// exportCreateRequest creates the Export request. +func (client *KeyVaultClient) exportCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyExportParameters, options *KeyVaultClientExportOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers/{issuer-name}" - if issuerName == "" { - return nil, errors.New("parameter issuerName cannot be empty") + urlPath := "/keys/{key-name}/{key-version}/export" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + if keyVersion == "" { + return nil, errors.New("parameter keyVersion cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, nil + return req, runtime.MarshalAsJSON(req, parameters) } -// deleteCertificateIssuerHandleResponse handles the DeleteCertificateIssuer response. -func (client *KeyVaultClient) deleteCertificateIssuerHandleResponse(resp *http.Response) (KeyVaultClientDeleteCertificateIssuerResponse, error) { - result := KeyVaultClientDeleteCertificateIssuerResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { - return KeyVaultClientDeleteCertificateIssuerResponse{}, err +// exportHandleResponse handles the Export response. +func (client *KeyVaultClient) exportHandleResponse(resp *http.Response) (KeyVaultClientExportResponse, error) { + result := KeyVaultClientExportResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { + return KeyVaultClientExportResponse{}, err } return result, nil } -// deleteCertificateIssuerHandleError handles the DeleteCertificateIssuer error response. -func (client *KeyVaultClient) deleteCertificateIssuerHandleError(resp *http.Response) error { +// exportHandleError handles the Export error response. +func (client *KeyVaultClient) exportHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -637,55 +414,56 @@ func (client *KeyVaultClient) deleteCertificateIssuerHandleError(resp *http.Resp return runtime.NewResponseError(&errType, resp) } -// DeleteCertificateOperation - Deletes the creation operation for a specified certificate that is in the process of being created. The certificate is no -// longer created. This operation requires the certificates/update permission. +// GetDeletedKey - The Get Deleted Key operation is applicable for soft-delete enabled vaults. While the operation can be invoked on any vault, it will +// return an error if invoked on a non soft-delete enabled vault. This +// operation requires the keys/get permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) DeleteCertificateOperation(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientDeleteCertificateOperationOptions) (KeyVaultClientDeleteCertificateOperationResponse, error) { - req, err := client.deleteCertificateOperationCreateRequest(ctx, vaultBaseURL, certificateName, options) +func (client *KeyVaultClient) GetDeletedKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientGetDeletedKeyOptions) (KeyVaultClientGetDeletedKeyResponse, error) { + req, err := client.getDeletedKeyCreateRequest(ctx, vaultBaseURL, keyName, options) if err != nil { - return KeyVaultClientDeleteCertificateOperationResponse{}, err + return KeyVaultClientGetDeletedKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientDeleteCertificateOperationResponse{}, err + return KeyVaultClientGetDeletedKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteCertificateOperationResponse{}, client.deleteCertificateOperationHandleError(resp) + return KeyVaultClientGetDeletedKeyResponse{}, client.getDeletedKeyHandleError(resp) } - return client.deleteCertificateOperationHandleResponse(resp) + return client.getDeletedKeyHandleResponse(resp) } -// deleteCertificateOperationCreateRequest creates the DeleteCertificateOperation request. -func (client *KeyVaultClient) deleteCertificateOperationCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientDeleteCertificateOperationOptions) (*policy.Request, error) { +// getDeletedKeyCreateRequest creates the GetDeletedKey request. +func (client *KeyVaultClient) getDeletedKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientGetDeletedKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/pending" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") + urlPath := "/deletedkeys/{key-name}" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil } -// deleteCertificateOperationHandleResponse handles the DeleteCertificateOperation response. -func (client *KeyVaultClient) deleteCertificateOperationHandleResponse(resp *http.Response) (KeyVaultClientDeleteCertificateOperationResponse, error) { - result := KeyVaultClientDeleteCertificateOperationResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { - return KeyVaultClientDeleteCertificateOperationResponse{}, err +// getDeletedKeyHandleResponse handles the GetDeletedKey response. +func (client *KeyVaultClient) getDeletedKeyHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedKeyResponse, error) { + result := KeyVaultClientGetDeletedKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.DeletedKeyBundle); err != nil { + return KeyVaultClientGetDeletedKeyResponse{}, err } return result, nil } -// deleteCertificateOperationHandleError handles the DeleteCertificateOperation error response. -func (client *KeyVaultClient) deleteCertificateOperationHandleError(resp *http.Response) error { +// getDeletedKeyHandleError handles the GetDeletedKey error response. +func (client *KeyVaultClient) getDeletedKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -697,3159 +475,54 @@ func (client *KeyVaultClient) deleteCertificateOperationHandleError(resp *http.R return runtime.NewResponseError(&errType, resp) } -// DeleteKey - The delete key operation cannot be used to remove individual versions of a key. This operation removes the cryptographic material associated -// with the key, which means the key is not usable for -// Sign/Verify, Wrap/Unwrap or Encrypt/Decrypt operations. This operation requires the keys/delete permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) DeleteKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientDeleteKeyOptions) (KeyVaultClientDeleteKeyResponse, error) { - req, err := client.deleteKeyCreateRequest(ctx, vaultBaseURL, keyName, options) - if err != nil { - return KeyVaultClientDeleteKeyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientDeleteKeyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteKeyResponse{}, client.deleteKeyHandleError(resp) - } - return client.deleteKeyHandleResponse(resp) -} - -// deleteKeyCreateRequest creates the DeleteKey request. -func (client *KeyVaultClient) deleteKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientDeleteKeyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{key-name}" - if keyName == "" { - return nil, errors.New("parameter keyName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// deleteKeyHandleResponse handles the DeleteKey response. -func (client *KeyVaultClient) deleteKeyHandleResponse(resp *http.Response) (KeyVaultClientDeleteKeyResponse, error) { - result := KeyVaultClientDeleteKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedKeyBundle); err != nil { - return KeyVaultClientDeleteKeyResponse{}, err - } - return result, nil -} - -// deleteKeyHandleError handles the DeleteKey error response. -func (client *KeyVaultClient) deleteKeyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// DeleteSasDefinition - Deletes a SAS definition from a specified storage account. This operation requires the storage/deletesas permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) DeleteSasDefinition(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, options *KeyVaultClientDeleteSasDefinitionOptions) (KeyVaultClientDeleteSasDefinitionResponse, error) { - req, err := client.deleteSasDefinitionCreateRequest(ctx, vaultBaseURL, storageAccountName, sasDefinitionName, options) - if err != nil { - return KeyVaultClientDeleteSasDefinitionResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientDeleteSasDefinitionResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteSasDefinitionResponse{}, client.deleteSasDefinitionHandleError(resp) - } - return client.deleteSasDefinitionHandleResponse(resp) -} - -// deleteSasDefinitionCreateRequest creates the DeleteSasDefinition request. -func (client *KeyVaultClient) deleteSasDefinitionCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, options *KeyVaultClientDeleteSasDefinitionOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}/sas/{sas-definition-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - if sasDefinitionName == "" { - return nil, errors.New("parameter sasDefinitionName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{sas-definition-name}", url.PathEscape(sasDefinitionName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// deleteSasDefinitionHandleResponse handles the DeleteSasDefinition response. -func (client *KeyVaultClient) deleteSasDefinitionHandleResponse(resp *http.Response) (KeyVaultClientDeleteSasDefinitionResponse, error) { - result := KeyVaultClientDeleteSasDefinitionResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedSasDefinitionBundle); err != nil { - return KeyVaultClientDeleteSasDefinitionResponse{}, err - } - return result, nil -} - -// deleteSasDefinitionHandleError handles the DeleteSasDefinition error response. -func (client *KeyVaultClient) deleteSasDefinitionHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// DeleteSecret - The DELETE operation applies to any secret stored in Azure Key Vault. DELETE cannot be applied to an individual version of a secret. This -// operation requires the secrets/delete permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) DeleteSecret(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientDeleteSecretOptions) (KeyVaultClientDeleteSecretResponse, error) { - req, err := client.deleteSecretCreateRequest(ctx, vaultBaseURL, secretName, options) - if err != nil { - return KeyVaultClientDeleteSecretResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientDeleteSecretResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteSecretResponse{}, client.deleteSecretHandleError(resp) - } - return client.deleteSecretHandleResponse(resp) -} - -// deleteSecretCreateRequest creates the DeleteSecret request. -func (client *KeyVaultClient) deleteSecretCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientDeleteSecretOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/secrets/{secret-name}" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// deleteSecretHandleResponse handles the DeleteSecret response. -func (client *KeyVaultClient) deleteSecretHandleResponse(resp *http.Response) (KeyVaultClientDeleteSecretResponse, error) { - result := KeyVaultClientDeleteSecretResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedSecretBundle); err != nil { - return KeyVaultClientDeleteSecretResponse{}, err - } - return result, nil -} - -// deleteSecretHandleError handles the DeleteSecret error response. -func (client *KeyVaultClient) deleteSecretHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// DeleteStorageAccount - Deletes a storage account. This operation requires the storage/delete permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) DeleteStorageAccount(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientDeleteStorageAccountOptions) (KeyVaultClientDeleteStorageAccountResponse, error) { - req, err := client.deleteStorageAccountCreateRequest(ctx, vaultBaseURL, storageAccountName, options) - if err != nil { - return KeyVaultClientDeleteStorageAccountResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientDeleteStorageAccountResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteStorageAccountResponse{}, client.deleteStorageAccountHandleError(resp) - } - return client.deleteStorageAccountHandleResponse(resp) -} - -// deleteStorageAccountCreateRequest creates the DeleteStorageAccount request. -func (client *KeyVaultClient) deleteStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientDeleteStorageAccountOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// deleteStorageAccountHandleResponse handles the DeleteStorageAccount response. -func (client *KeyVaultClient) deleteStorageAccountHandleResponse(resp *http.Response) (KeyVaultClientDeleteStorageAccountResponse, error) { - result := KeyVaultClientDeleteStorageAccountResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedStorageBundle); err != nil { - return KeyVaultClientDeleteStorageAccountResponse{}, err - } - return result, nil -} - -// deleteStorageAccountHandleError handles the DeleteStorageAccount error response. -func (client *KeyVaultClient) deleteStorageAccountHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// Encrypt - The ENCRYPT operation encrypts an arbitrary sequence of bytes using an encryption key that is stored in Azure Key Vault. Note that the ENCRYPT -// operation only supports a single block of data, the size -// of which is dependent on the target key and the encryption algorithm to be used. The ENCRYPT operation is only strictly necessary for symmetric keys -// stored in Azure Key Vault since protection with an -// asymmetric key can be performed using public portion of the key. This operation is supported for asymmetric keys as a convenience for callers that have -// a key-reference but do not have access to the -// public key material. This operation requires the keys/encrypt permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) Encrypt(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyOperationsParameters, options *KeyVaultClientEncryptOptions) (KeyVaultClientEncryptResponse, error) { - req, err := client.encryptCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) - if err != nil { - return KeyVaultClientEncryptResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientEncryptResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientEncryptResponse{}, client.encryptHandleError(resp) - } - return client.encryptHandleResponse(resp) -} - -// encryptCreateRequest creates the Encrypt request. -func (client *KeyVaultClient) encryptCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyOperationsParameters, options *KeyVaultClientEncryptOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{key-name}/{key-version}/encrypt" - if keyName == "" { - return nil, errors.New("parameter keyName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - if keyVersion == "" { - return nil, errors.New("parameter keyVersion cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// encryptHandleResponse handles the Encrypt response. -func (client *KeyVaultClient) encryptHandleResponse(resp *http.Response) (KeyVaultClientEncryptResponse, error) { - result := KeyVaultClientEncryptResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyOperationResult); err != nil { - return KeyVaultClientEncryptResponse{}, err - } - return result, nil -} - -// encryptHandleError handles the Encrypt error response. -func (client *KeyVaultClient) encryptHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// BeginFullBackup - Creates a full backup using a user-provided SAS token to an Azure blob storage container. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) BeginFullBackup(ctx context.Context, vaultBaseURL string, options *KeyVaultClientBeginFullBackupOptions) (KeyVaultClientFullBackupPollerResponse, error) { - resp, err := client.fullBackup(ctx, vaultBaseURL, options) - if err != nil { - return KeyVaultClientFullBackupPollerResponse{}, err - } - result := KeyVaultClientFullBackupPollerResponse{ - RawResponse: resp, - } - pt, err := runtime.NewPoller("keyVaultClient.FullBackup", resp, client.Con.Pipeline(), client.fullBackupHandleError) - if err != nil { - return KeyVaultClientFullBackupPollerResponse{}, err - } - result.Poller = &KeyVaultClientFullBackupPoller{ - pt: pt, - } - return result, nil -} - -// FullBackup - Creates a full backup using a user-provided SAS token to an Azure blob storage container. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) fullBackup(ctx context.Context, vaultBaseURL string, options *KeyVaultClientBeginFullBackupOptions) (*http.Response, error) { - req, err := client.fullBackupCreateRequest(ctx, vaultBaseURL, options) - if err != nil { - return nil, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return nil, err - } - if !runtime.HasStatusCode(resp, http.StatusAccepted) { - return nil, client.fullBackupHandleError(resp) - } - return resp, nil -} - -// fullBackupCreateRequest creates the FullBackup request. -func (client *KeyVaultClient) fullBackupCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientBeginFullBackupOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/backup" - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - if options != nil && options.AzureStorageBlobContainerURI != nil { - return req, runtime.MarshalAsJSON(req, *options.AzureStorageBlobContainerURI) - } - return req, nil -} - -// fullBackupHandleError handles the FullBackup error response. -func (client *KeyVaultClient) fullBackupHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// FullBackupStatus - Returns the status of full backup operation -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) FullBackupStatus(ctx context.Context, vaultBaseURL string, jobID string, options *KeyVaultClientFullBackupStatusOptions) (KeyVaultClientFullBackupStatusResponse, error) { - req, err := client.fullBackupStatusCreateRequest(ctx, vaultBaseURL, jobID, options) - if err != nil { - return KeyVaultClientFullBackupStatusResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientFullBackupStatusResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientFullBackupStatusResponse{}, client.fullBackupStatusHandleError(resp) - } - return client.fullBackupStatusHandleResponse(resp) -} - -// fullBackupStatusCreateRequest creates the FullBackupStatus request. -func (client *KeyVaultClient) fullBackupStatusCreateRequest(ctx context.Context, vaultBaseURL string, jobID string, options *KeyVaultClientFullBackupStatusOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/backup/{jobId}/pending" - if jobID == "" { - return nil, errors.New("parameter jobID cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{jobId}", url.PathEscape(jobID)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// fullBackupStatusHandleResponse handles the FullBackupStatus response. -func (client *KeyVaultClient) fullBackupStatusHandleResponse(resp *http.Response) (KeyVaultClientFullBackupStatusResponse, error) { - result := KeyVaultClientFullBackupStatusResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.FullBackupOperation); err != nil { - return KeyVaultClientFullBackupStatusResponse{}, err - } - return result, nil -} - -// fullBackupStatusHandleError handles the FullBackupStatus error response. -func (client *KeyVaultClient) fullBackupStatusHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// BeginFullRestoreOperation - Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) BeginFullRestoreOperation(ctx context.Context, vaultBaseURL string, options *KeyVaultClientBeginFullRestoreOperationOptions) (KeyVaultClientFullRestoreOperationPollerResponse, error) { - resp, err := client.fullRestoreOperation(ctx, vaultBaseURL, options) - if err != nil { - return KeyVaultClientFullRestoreOperationPollerResponse{}, err - } - result := KeyVaultClientFullRestoreOperationPollerResponse{ - RawResponse: resp, - } - pt, err := runtime.NewPoller("keyVaultClient.FullRestoreOperation", resp, client.Con.Pipeline(), client.fullRestoreOperationHandleError) - if err != nil { - return KeyVaultClientFullRestoreOperationPollerResponse{}, err - } - result.Poller = &KeyVaultClientFullRestoreOperationPoller{ - pt: pt, - } - return result, nil -} - -// FullRestoreOperation - Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) fullRestoreOperation(ctx context.Context, vaultBaseURL string, options *KeyVaultClientBeginFullRestoreOperationOptions) (*http.Response, error) { - req, err := client.fullRestoreOperationCreateRequest(ctx, vaultBaseURL, options) - if err != nil { - return nil, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return nil, err - } - if !runtime.HasStatusCode(resp, http.StatusAccepted) { - return nil, client.fullRestoreOperationHandleError(resp) - } - return resp, nil -} - -// fullRestoreOperationCreateRequest creates the FullRestoreOperation request. -func (client *KeyVaultClient) fullRestoreOperationCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientBeginFullRestoreOperationOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/restore" - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - if options != nil && options.RestoreBlobDetails != nil { - return req, runtime.MarshalAsJSON(req, *options.RestoreBlobDetails) - } - return req, nil -} - -// fullRestoreOperationHandleError handles the FullRestoreOperation error response. -func (client *KeyVaultClient) fullRestoreOperationHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetCertificate - Gets information about a specific certificate. This operation requires the certificates/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetCertificate(ctx context.Context, vaultBaseURL string, certificateName string, certificateVersion string, options *KeyVaultClientGetCertificateOptions) (KeyVaultClientGetCertificateResponse, error) { - req, err := client.getCertificateCreateRequest(ctx, vaultBaseURL, certificateName, certificateVersion, options) - if err != nil { - return KeyVaultClientGetCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateResponse{}, client.getCertificateHandleError(resp) - } - return client.getCertificateHandleResponse(resp) -} - -// getCertificateCreateRequest creates the GetCertificate request. -func (client *KeyVaultClient) getCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, certificateVersion string, options *KeyVaultClientGetCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/{certificate-version}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - if certificateVersion == "" { - return nil, errors.New("parameter certificateVersion cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-version}", url.PathEscape(certificateVersion)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateHandleResponse handles the GetCertificate response. -func (client *KeyVaultClient) getCertificateHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateResponse, error) { - result := KeyVaultClientGetCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientGetCertificateResponse{}, err - } - return result, nil -} - -// getCertificateHandleError handles the GetCertificate error response. -func (client *KeyVaultClient) getCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetCertificateContacts - The GetCertificateContacts operation returns the set of certificate contact resources in the specified key vault. This operation -// requires the certificates/managecontacts permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetCertificateContacts(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetCertificateContactsOptions) (KeyVaultClientGetCertificateContactsResponse, error) { - req, err := client.getCertificateContactsCreateRequest(ctx, vaultBaseURL, options) - if err != nil { - return KeyVaultClientGetCertificateContactsResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetCertificateContactsResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateContactsResponse{}, client.getCertificateContactsHandleError(resp) - } - return client.getCertificateContactsHandleResponse(resp) -} - -// getCertificateContactsCreateRequest creates the GetCertificateContacts request. -func (client *KeyVaultClient) getCertificateContactsCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetCertificateContactsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/contacts" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateContactsHandleResponse handles the GetCertificateContacts response. -func (client *KeyVaultClient) getCertificateContactsHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateContactsResponse, error) { - result := KeyVaultClientGetCertificateContactsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { - return KeyVaultClientGetCertificateContactsResponse{}, err - } - return result, nil -} - -// getCertificateContactsHandleError handles the GetCertificateContacts error response. -func (client *KeyVaultClient) getCertificateContactsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetCertificateIssuer - The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified key vault. This operation -// requires the certificates/manageissuers/getissuers permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetCertificateIssuer(ctx context.Context, vaultBaseURL string, issuerName string, options *KeyVaultClientGetCertificateIssuerOptions) (KeyVaultClientGetCertificateIssuerResponse, error) { - req, err := client.getCertificateIssuerCreateRequest(ctx, vaultBaseURL, issuerName, options) - if err != nil { - return KeyVaultClientGetCertificateIssuerResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetCertificateIssuerResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateIssuerResponse{}, client.getCertificateIssuerHandleError(resp) - } - return client.getCertificateIssuerHandleResponse(resp) -} - -// getCertificateIssuerCreateRequest creates the GetCertificateIssuer request. -func (client *KeyVaultClient) getCertificateIssuerCreateRequest(ctx context.Context, vaultBaseURL string, issuerName string, options *KeyVaultClientGetCertificateIssuerOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers/{issuer-name}" - if issuerName == "" { - return nil, errors.New("parameter issuerName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateIssuerHandleResponse handles the GetCertificateIssuer response. -func (client *KeyVaultClient) getCertificateIssuerHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateIssuerResponse, error) { - result := KeyVaultClientGetCertificateIssuerResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { - return KeyVaultClientGetCertificateIssuerResponse{}, err - } - return result, nil -} - -// getCertificateIssuerHandleError handles the GetCertificateIssuer error response. -func (client *KeyVaultClient) getCertificateIssuerHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetCertificateIssuers - The GetCertificateIssuers operation returns the set of certificate issuer resources in the specified key vault. This operation -// requires the certificates/manageissuers/getissuers permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetCertificateIssuers(vaultBaseURL string, options *KeyVaultClientGetCertificateIssuersOptions) *KeyVaultClientGetCertificateIssuersPager { - return &KeyVaultClientGetCertificateIssuersPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getCertificateIssuersCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetCertificateIssuersResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.CertificateIssuerListResult.NextLink) - }, - } -} - -// getCertificateIssuersCreateRequest creates the GetCertificateIssuers request. -func (client *KeyVaultClient) getCertificateIssuersCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetCertificateIssuersOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateIssuersHandleResponse handles the GetCertificateIssuers response. -func (client *KeyVaultClient) getCertificateIssuersHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateIssuersResponse, error) { - result := KeyVaultClientGetCertificateIssuersResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateIssuerListResult); err != nil { - return KeyVaultClientGetCertificateIssuersResponse{}, err - } - return result, nil -} - -// getCertificateIssuersHandleError handles the GetCertificateIssuers error response. -func (client *KeyVaultClient) getCertificateIssuersHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetCertificateOperation - Gets the creation operation associated with a specified certificate. This operation requires the certificates/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetCertificateOperation(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificateOperationOptions) (KeyVaultClientGetCertificateOperationResponse, error) { - req, err := client.getCertificateOperationCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientGetCertificateOperationResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetCertificateOperationResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateOperationResponse{}, client.getCertificateOperationHandleError(resp) - } - return client.getCertificateOperationHandleResponse(resp) -} - -// getCertificateOperationCreateRequest creates the GetCertificateOperation request. -func (client *KeyVaultClient) getCertificateOperationCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificateOperationOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/pending" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateOperationHandleResponse handles the GetCertificateOperation response. -func (client *KeyVaultClient) getCertificateOperationHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateOperationResponse, error) { - result := KeyVaultClientGetCertificateOperationResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { - return KeyVaultClientGetCertificateOperationResponse{}, err - } - return result, nil -} - -// getCertificateOperationHandleError handles the GetCertificateOperation error response. -func (client *KeyVaultClient) getCertificateOperationHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetCertificatePolicy - The GetCertificatePolicy operation returns the specified certificate policy resources in the specified key vault. This operation -// requires the certificates/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetCertificatePolicy(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificatePolicyOptions) (KeyVaultClientGetCertificatePolicyResponse, error) { - req, err := client.getCertificatePolicyCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientGetCertificatePolicyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetCertificatePolicyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificatePolicyResponse{}, client.getCertificatePolicyHandleError(resp) - } - return client.getCertificatePolicyHandleResponse(resp) -} - -// getCertificatePolicyCreateRequest creates the GetCertificatePolicy request. -func (client *KeyVaultClient) getCertificatePolicyCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificatePolicyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/policy" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificatePolicyHandleResponse handles the GetCertificatePolicy response. -func (client *KeyVaultClient) getCertificatePolicyHandleResponse(resp *http.Response) (KeyVaultClientGetCertificatePolicyResponse, error) { - result := KeyVaultClientGetCertificatePolicyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificatePolicy); err != nil { - return KeyVaultClientGetCertificatePolicyResponse{}, err - } - return result, nil -} - -// getCertificatePolicyHandleError handles the GetCertificatePolicy error response. -func (client *KeyVaultClient) getCertificatePolicyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetCertificateVersions - The GetCertificateVersions operation returns the versions of a certificate in the specified key vault. This operation requires -// the certificates/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetCertificateVersions(vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificateVersionsOptions) *KeyVaultClientGetCertificateVersionsPager { - return &KeyVaultClientGetCertificateVersionsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getCertificateVersionsCreateRequest(ctx, vaultBaseURL, certificateName, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetCertificateVersionsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.CertificateListResult.NextLink) - }, - } -} - -// getCertificateVersionsCreateRequest creates the GetCertificateVersions request. -func (client *KeyVaultClient) getCertificateVersionsCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificateVersionsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/versions" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateVersionsHandleResponse handles the GetCertificateVersions response. -func (client *KeyVaultClient) getCertificateVersionsHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateVersionsResponse, error) { - result := KeyVaultClientGetCertificateVersionsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateListResult); err != nil { - return KeyVaultClientGetCertificateVersionsResponse{}, err - } - return result, nil -} - -// getCertificateVersionsHandleError handles the GetCertificateVersions error response. -func (client *KeyVaultClient) getCertificateVersionsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetCertificates - The GetCertificates operation returns the set of certificates resources in the specified key vault. This operation requires the certificates/list -// permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetCertificates(vaultBaseURL string, options *KeyVaultClientGetCertificatesOptions) *KeyVaultClientGetCertificatesPager { - return &KeyVaultClientGetCertificatesPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getCertificatesCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetCertificatesResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.CertificateListResult.NextLink) - }, - } -} - -// getCertificatesCreateRequest creates the GetCertificates request. -func (client *KeyVaultClient) getCertificatesCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetCertificatesOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - if options != nil && options.IncludePending != nil { - reqQP.Set("includePending", strconv.FormatBool(*options.IncludePending)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificatesHandleResponse handles the GetCertificates response. -func (client *KeyVaultClient) getCertificatesHandleResponse(resp *http.Response) (KeyVaultClientGetCertificatesResponse, error) { - result := KeyVaultClientGetCertificatesResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateListResult); err != nil { - return KeyVaultClientGetCertificatesResponse{}, err - } - return result, nil -} - -// getCertificatesHandleError handles the GetCertificates error response. -func (client *KeyVaultClient) getCertificatesHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedCertificate - The GetDeletedCertificate operation retrieves the deleted certificate information plus its attributes, such as retention interval, -// scheduled permanent deletion and the current deletion recovery level. -// This operation requires the certificates/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetDeletedCertificateOptions) (KeyVaultClientGetDeletedCertificateResponse, error) { - req, err := client.getDeletedCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientGetDeletedCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetDeletedCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetDeletedCertificateResponse{}, client.getDeletedCertificateHandleError(resp) - } - return client.getDeletedCertificateHandleResponse(resp) -} - -// getDeletedCertificateCreateRequest creates the GetDeletedCertificate request. -func (client *KeyVaultClient) getDeletedCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetDeletedCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedcertificates/{certificate-name}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedCertificateHandleResponse handles the GetDeletedCertificate response. -func (client *KeyVaultClient) getDeletedCertificateHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedCertificateResponse, error) { - result := KeyVaultClientGetDeletedCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateBundle); err != nil { - return KeyVaultClientGetDeletedCertificateResponse{}, err - } - return result, nil -} - -// getDeletedCertificateHandleError handles the GetDeletedCertificate error response. -func (client *KeyVaultClient) getDeletedCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedCertificates - The GetDeletedCertificates operation retrieves the certificates in the current vault which are in a deleted state and ready -// for recovery or purging. This operation includes deletion-specific -// information. This operation requires the certificates/get/list permission. This operation can only be enabled on soft-delete enabled vaults. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedCertificates(vaultBaseURL string, options *KeyVaultClientGetDeletedCertificatesOptions) *KeyVaultClientGetDeletedCertificatesPager { - return &KeyVaultClientGetDeletedCertificatesPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getDeletedCertificatesCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetDeletedCertificatesResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.DeletedCertificateListResult.NextLink) - }, - } -} - -// getDeletedCertificatesCreateRequest creates the GetDeletedCertificates request. -func (client *KeyVaultClient) getDeletedCertificatesCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetDeletedCertificatesOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedcertificates" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - if options != nil && options.IncludePending != nil { - reqQP.Set("includePending", strconv.FormatBool(*options.IncludePending)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedCertificatesHandleResponse handles the GetDeletedCertificates response. -func (client *KeyVaultClient) getDeletedCertificatesHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedCertificatesResponse, error) { - result := KeyVaultClientGetDeletedCertificatesResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateListResult); err != nil { - return KeyVaultClientGetDeletedCertificatesResponse{}, err - } - return result, nil -} - -// getDeletedCertificatesHandleError handles the GetDeletedCertificates error response. -func (client *KeyVaultClient) getDeletedCertificatesHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedKey - The Get Deleted Key operation is applicable for soft-delete enabled vaults. While the operation can be invoked on any vault, it will -// return an error if invoked on a non soft-delete enabled vault. This -// operation requires the keys/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientGetDeletedKeyOptions) (KeyVaultClientGetDeletedKeyResponse, error) { - req, err := client.getDeletedKeyCreateRequest(ctx, vaultBaseURL, keyName, options) - if err != nil { - return KeyVaultClientGetDeletedKeyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetDeletedKeyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetDeletedKeyResponse{}, client.getDeletedKeyHandleError(resp) - } - return client.getDeletedKeyHandleResponse(resp) -} - -// getDeletedKeyCreateRequest creates the GetDeletedKey request. -func (client *KeyVaultClient) getDeletedKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientGetDeletedKeyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedkeys/{key-name}" - if keyName == "" { - return nil, errors.New("parameter keyName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedKeyHandleResponse handles the GetDeletedKey response. -func (client *KeyVaultClient) getDeletedKeyHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedKeyResponse, error) { - result := KeyVaultClientGetDeletedKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedKeyBundle); err != nil { - return KeyVaultClientGetDeletedKeyResponse{}, err - } - return result, nil -} - -// getDeletedKeyHandleError handles the GetDeletedKey error response. -func (client *KeyVaultClient) getDeletedKeyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedKeys - Retrieves a list of the keys in the Key Vault as JSON Web Key structures that contain the public part of a deleted key. This operation -// includes deletion-specific information. The Get Deleted Keys -// operation is applicable for vaults enabled for soft-delete. While the operation can be invoked on any vault, it will return an error if invoked on a -// non soft-delete enabled vault. This operation -// requires the keys/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedKeys(vaultBaseURL string, options *KeyVaultClientGetDeletedKeysOptions) *KeyVaultClientGetDeletedKeysPager { - return &KeyVaultClientGetDeletedKeysPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getDeletedKeysCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetDeletedKeysResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.DeletedKeyListResult.NextLink) - }, - } -} - -// getDeletedKeysCreateRequest creates the GetDeletedKeys request. -func (client *KeyVaultClient) getDeletedKeysCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetDeletedKeysOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedkeys" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedKeysHandleResponse handles the GetDeletedKeys response. -func (client *KeyVaultClient) getDeletedKeysHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedKeysResponse, error) { - result := KeyVaultClientGetDeletedKeysResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedKeyListResult); err != nil { - return KeyVaultClientGetDeletedKeysResponse{}, err - } - return result, nil -} - -// getDeletedKeysHandleError handles the GetDeletedKeys error response. -func (client *KeyVaultClient) getDeletedKeysHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedSasDefinition - The Get Deleted SAS Definition operation returns the specified deleted SAS definition along with its attributes. This operation -// requires the storage/getsas permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedSasDefinition(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, options *KeyVaultClientGetDeletedSasDefinitionOptions) (KeyVaultClientGetDeletedSasDefinitionResponse, error) { - req, err := client.getDeletedSasDefinitionCreateRequest(ctx, vaultBaseURL, storageAccountName, sasDefinitionName, options) - if err != nil { - return KeyVaultClientGetDeletedSasDefinitionResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetDeletedSasDefinitionResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetDeletedSasDefinitionResponse{}, client.getDeletedSasDefinitionHandleError(resp) - } - return client.getDeletedSasDefinitionHandleResponse(resp) -} - -// getDeletedSasDefinitionCreateRequest creates the GetDeletedSasDefinition request. -func (client *KeyVaultClient) getDeletedSasDefinitionCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, options *KeyVaultClientGetDeletedSasDefinitionOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedstorage/{storage-account-name}/sas/{sas-definition-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - if sasDefinitionName == "" { - return nil, errors.New("parameter sasDefinitionName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{sas-definition-name}", url.PathEscape(sasDefinitionName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedSasDefinitionHandleResponse handles the GetDeletedSasDefinition response. -func (client *KeyVaultClient) getDeletedSasDefinitionHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedSasDefinitionResponse, error) { - result := KeyVaultClientGetDeletedSasDefinitionResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedSasDefinitionBundle); err != nil { - return KeyVaultClientGetDeletedSasDefinitionResponse{}, err - } - return result, nil -} - -// getDeletedSasDefinitionHandleError handles the GetDeletedSasDefinition error response. -func (client *KeyVaultClient) getDeletedSasDefinitionHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedSasDefinitions - The Get Deleted Sas Definitions operation returns the SAS definitions that have been deleted for a vault enabled for soft-delete. -// This operation requires the storage/listsas permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedSasDefinitions(vaultBaseURL string, storageAccountName string, options *KeyVaultClientGetDeletedSasDefinitionsOptions) *KeyVaultClientGetDeletedSasDefinitionsPager { - return &KeyVaultClientGetDeletedSasDefinitionsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getDeletedSasDefinitionsCreateRequest(ctx, vaultBaseURL, storageAccountName, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetDeletedSasDefinitionsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.DeletedSasDefinitionListResult.NextLink) - }, - } -} - -// getDeletedSasDefinitionsCreateRequest creates the GetDeletedSasDefinitions request. -func (client *KeyVaultClient) getDeletedSasDefinitionsCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientGetDeletedSasDefinitionsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedstorage/{storage-account-name}/sas" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedSasDefinitionsHandleResponse handles the GetDeletedSasDefinitions response. -func (client *KeyVaultClient) getDeletedSasDefinitionsHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedSasDefinitionsResponse, error) { - result := KeyVaultClientGetDeletedSasDefinitionsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedSasDefinitionListResult); err != nil { - return KeyVaultClientGetDeletedSasDefinitionsResponse{}, err - } - return result, nil -} - -// getDeletedSasDefinitionsHandleError handles the GetDeletedSasDefinitions error response. -func (client *KeyVaultClient) getDeletedSasDefinitionsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedSecret - The Get Deleted Secret operation returns the specified deleted secret along with its attributes. This operation requires the secrets/get -// permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedSecret(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientGetDeletedSecretOptions) (KeyVaultClientGetDeletedSecretResponse, error) { - req, err := client.getDeletedSecretCreateRequest(ctx, vaultBaseURL, secretName, options) - if err != nil { - return KeyVaultClientGetDeletedSecretResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetDeletedSecretResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetDeletedSecretResponse{}, client.getDeletedSecretHandleError(resp) - } - return client.getDeletedSecretHandleResponse(resp) -} - -// getDeletedSecretCreateRequest creates the GetDeletedSecret request. -func (client *KeyVaultClient) getDeletedSecretCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientGetDeletedSecretOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedsecrets/{secret-name}" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedSecretHandleResponse handles the GetDeletedSecret response. -func (client *KeyVaultClient) getDeletedSecretHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedSecretResponse, error) { - result := KeyVaultClientGetDeletedSecretResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedSecretBundle); err != nil { - return KeyVaultClientGetDeletedSecretResponse{}, err - } - return result, nil -} - -// getDeletedSecretHandleError handles the GetDeletedSecret error response. -func (client *KeyVaultClient) getDeletedSecretHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedSecrets - The Get Deleted Secrets operation returns the secrets that have been deleted for a vault enabled for soft-delete. This operation -// requires the secrets/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedSecrets(vaultBaseURL string, options *KeyVaultClientGetDeletedSecretsOptions) *KeyVaultClientGetDeletedSecretsPager { - return &KeyVaultClientGetDeletedSecretsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getDeletedSecretsCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetDeletedSecretsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.DeletedSecretListResult.NextLink) - }, - } -} - -// getDeletedSecretsCreateRequest creates the GetDeletedSecrets request. -func (client *KeyVaultClient) getDeletedSecretsCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetDeletedSecretsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedsecrets" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedSecretsHandleResponse handles the GetDeletedSecrets response. -func (client *KeyVaultClient) getDeletedSecretsHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedSecretsResponse, error) { - result := KeyVaultClientGetDeletedSecretsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedSecretListResult); err != nil { - return KeyVaultClientGetDeletedSecretsResponse{}, err - } - return result, nil -} - -// getDeletedSecretsHandleError handles the GetDeletedSecrets error response. -func (client *KeyVaultClient) getDeletedSecretsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedStorageAccount - The Get Deleted Storage Account operation returns the specified deleted storage account along with its attributes. This operation -// requires the storage/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedStorageAccount(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientGetDeletedStorageAccountOptions) (KeyVaultClientGetDeletedStorageAccountResponse, error) { - req, err := client.getDeletedStorageAccountCreateRequest(ctx, vaultBaseURL, storageAccountName, options) - if err != nil { - return KeyVaultClientGetDeletedStorageAccountResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetDeletedStorageAccountResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetDeletedStorageAccountResponse{}, client.getDeletedStorageAccountHandleError(resp) - } - return client.getDeletedStorageAccountHandleResponse(resp) -} - -// getDeletedStorageAccountCreateRequest creates the GetDeletedStorageAccount request. -func (client *KeyVaultClient) getDeletedStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientGetDeletedStorageAccountOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedstorage/{storage-account-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedStorageAccountHandleResponse handles the GetDeletedStorageAccount response. -func (client *KeyVaultClient) getDeletedStorageAccountHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedStorageAccountResponse, error) { - result := KeyVaultClientGetDeletedStorageAccountResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedStorageBundle); err != nil { - return KeyVaultClientGetDeletedStorageAccountResponse{}, err - } - return result, nil -} - -// getDeletedStorageAccountHandleError handles the GetDeletedStorageAccount error response. -func (client *KeyVaultClient) getDeletedStorageAccountHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetDeletedStorageAccounts - The Get Deleted Storage Accounts operation returns the storage accounts that have been deleted for a vault enabled for soft-delete. -// This operation requires the storage/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetDeletedStorageAccounts(vaultBaseURL string, options *KeyVaultClientGetDeletedStorageAccountsOptions) *KeyVaultClientGetDeletedStorageAccountsPager { - return &KeyVaultClientGetDeletedStorageAccountsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getDeletedStorageAccountsCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetDeletedStorageAccountsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.DeletedStorageListResult.NextLink) - }, - } -} - -// getDeletedStorageAccountsCreateRequest creates the GetDeletedStorageAccounts request. -func (client *KeyVaultClient) getDeletedStorageAccountsCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetDeletedStorageAccountsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedstorage" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedStorageAccountsHandleResponse handles the GetDeletedStorageAccounts response. -func (client *KeyVaultClient) getDeletedStorageAccountsHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedStorageAccountsResponse, error) { - result := KeyVaultClientGetDeletedStorageAccountsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedStorageListResult); err != nil { - return KeyVaultClientGetDeletedStorageAccountsResponse{}, err - } - return result, nil -} - -// getDeletedStorageAccountsHandleError handles the GetDeletedStorageAccounts error response. -func (client *KeyVaultClient) getDeletedStorageAccountsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetKey - The get key operation is applicable to all key types. If the requested key is symmetric, then no key material is released in the response. This -// operation requires the keys/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetKey(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, options *KeyVaultClientGetKeyOptions) (KeyVaultClientGetKeyResponse, error) { - req, err := client.getKeyCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, options) - if err != nil { - return KeyVaultClientGetKeyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetKeyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetKeyResponse{}, client.getKeyHandleError(resp) - } - return client.getKeyHandleResponse(resp) -} - -// getKeyCreateRequest creates the GetKey request. -func (client *KeyVaultClient) getKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, options *KeyVaultClientGetKeyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{key-name}/{key-version}" - if keyName == "" { - return nil, errors.New("parameter keyName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - // if keyVersion == "" { - // return nil, errors.New("parameter keyVersion cannot be empty") - // } - urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getKeyHandleResponse handles the GetKey response. -func (client *KeyVaultClient) getKeyHandleResponse(resp *http.Response) (KeyVaultClientGetKeyResponse, error) { - result := KeyVaultClientGetKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { - return KeyVaultClientGetKeyResponse{}, err - } - return result, nil -} - -// getKeyHandleError handles the GetKey error response. -func (client *KeyVaultClient) getKeyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetKeyVersions - The full key identifier, attributes, and tags are provided in the response. This operation requires the keys/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetKeyVersions(vaultBaseURL string, keyName string, options *KeyVaultClientGetKeyVersionsOptions) *KeyVaultClientGetKeyVersionsPager { - return &KeyVaultClientGetKeyVersionsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getKeyVersionsCreateRequest(ctx, vaultBaseURL, keyName, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetKeyVersionsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.KeyListResult.NextLink) - }, - } -} - -// getKeyVersionsCreateRequest creates the GetKeyVersions request. -func (client *KeyVaultClient) getKeyVersionsCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientGetKeyVersionsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{key-name}/versions" - if keyName == "" { - return nil, errors.New("parameter keyName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getKeyVersionsHandleResponse handles the GetKeyVersions response. -func (client *KeyVaultClient) getKeyVersionsHandleResponse(resp *http.Response) (KeyVaultClientGetKeyVersionsResponse, error) { - result := KeyVaultClientGetKeyVersionsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyListResult); err != nil { - return KeyVaultClientGetKeyVersionsResponse{}, err - } - return result, nil -} - -// getKeyVersionsHandleError handles the GetKeyVersions error response. -func (client *KeyVaultClient) getKeyVersionsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetKeys - Retrieves a list of the keys in the Key Vault as JSON Web Key structures that contain the public part of a stored key. The LIST operation is -// applicable to all key types, however only the base key -// identifier, attributes, and tags are provided in the response. Individual versions of a key are not listed in the response. This operation requires the -// keys/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetKeys(vaultBaseURL string, options *KeyVaultClientGetKeysOptions) *KeyVaultClientGetKeysPager { - return &KeyVaultClientGetKeysPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getKeysCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetKeysResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.KeyListResult.NextLink) - }, - } -} - -// getKeysCreateRequest creates the GetKeys request. -func (client *KeyVaultClient) getKeysCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetKeysOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getKeysHandleResponse handles the GetKeys response. -func (client *KeyVaultClient) getKeysHandleResponse(resp *http.Response) (KeyVaultClientGetKeysResponse, error) { - result := KeyVaultClientGetKeysResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyListResult); err != nil { - return KeyVaultClientGetKeysResponse{}, err - } - return result, nil -} - -// getKeysHandleError handles the GetKeys error response. -func (client *KeyVaultClient) getKeysHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetSasDefinition - Gets information about a SAS definition for the specified storage account. This operation requires the storage/getsas permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetSasDefinition(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, options *KeyVaultClientGetSasDefinitionOptions) (KeyVaultClientGetSasDefinitionResponse, error) { - req, err := client.getSasDefinitionCreateRequest(ctx, vaultBaseURL, storageAccountName, sasDefinitionName, options) - if err != nil { - return KeyVaultClientGetSasDefinitionResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetSasDefinitionResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetSasDefinitionResponse{}, client.getSasDefinitionHandleError(resp) - } - return client.getSasDefinitionHandleResponse(resp) -} - -// getSasDefinitionCreateRequest creates the GetSasDefinition request. -func (client *KeyVaultClient) getSasDefinitionCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, options *KeyVaultClientGetSasDefinitionOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}/sas/{sas-definition-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - if sasDefinitionName == "" { - return nil, errors.New("parameter sasDefinitionName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{sas-definition-name}", url.PathEscape(sasDefinitionName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getSasDefinitionHandleResponse handles the GetSasDefinition response. -func (client *KeyVaultClient) getSasDefinitionHandleResponse(resp *http.Response) (KeyVaultClientGetSasDefinitionResponse, error) { - result := KeyVaultClientGetSasDefinitionResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SasDefinitionBundle); err != nil { - return KeyVaultClientGetSasDefinitionResponse{}, err - } - return result, nil -} - -// getSasDefinitionHandleError handles the GetSasDefinition error response. -func (client *KeyVaultClient) getSasDefinitionHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetSasDefinitions - List storage SAS definitions for the given storage account. This operation requires the storage/listsas permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetSasDefinitions(vaultBaseURL string, storageAccountName string, options *KeyVaultClientGetSasDefinitionsOptions) *KeyVaultClientGetSasDefinitionsPager { - return &KeyVaultClientGetSasDefinitionsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getSasDefinitionsCreateRequest(ctx, vaultBaseURL, storageAccountName, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetSasDefinitionsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.SasDefinitionListResult.NextLink) - }, - } -} - -// getSasDefinitionsCreateRequest creates the GetSasDefinitions request. -func (client *KeyVaultClient) getSasDefinitionsCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientGetSasDefinitionsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}/sas" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getSasDefinitionsHandleResponse handles the GetSasDefinitions response. -func (client *KeyVaultClient) getSasDefinitionsHandleResponse(resp *http.Response) (KeyVaultClientGetSasDefinitionsResponse, error) { - result := KeyVaultClientGetSasDefinitionsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SasDefinitionListResult); err != nil { - return KeyVaultClientGetSasDefinitionsResponse{}, err - } - return result, nil -} - -// getSasDefinitionsHandleError handles the GetSasDefinitions error response. -func (client *KeyVaultClient) getSasDefinitionsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetSecret - The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetSecret(ctx context.Context, vaultBaseURL string, secretName string, secretVersion string, options *KeyVaultClientGetSecretOptions) (KeyVaultClientGetSecretResponse, error) { - req, err := client.getSecretCreateRequest(ctx, vaultBaseURL, secretName, secretVersion, options) - if err != nil { - return KeyVaultClientGetSecretResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetSecretResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetSecretResponse{}, client.getSecretHandleError(resp) - } - return client.getSecretHandleResponse(resp) -} - -// getSecretCreateRequest creates the GetSecret request. -func (client *KeyVaultClient) getSecretCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, secretVersion string, options *KeyVaultClientGetSecretOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/secrets/{secret-name}/{secret-version}" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - if secretVersion == "" { - return nil, errors.New("parameter secretVersion cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-version}", url.PathEscape(secretVersion)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getSecretHandleResponse handles the GetSecret response. -func (client *KeyVaultClient) getSecretHandleResponse(resp *http.Response) (KeyVaultClientGetSecretResponse, error) { - result := KeyVaultClientGetSecretResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SecretBundle); err != nil { - return KeyVaultClientGetSecretResponse{}, err - } - return result, nil -} - -// getSecretHandleError handles the GetSecret error response. -func (client *KeyVaultClient) getSecretHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetSecretVersions - The full secret identifier and attributes are provided in the response. No values are returned for the secrets. This operations requires -// the secrets/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetSecretVersions(vaultBaseURL string, secretName string, options *KeyVaultClientGetSecretVersionsOptions) *KeyVaultClientGetSecretVersionsPager { - return &KeyVaultClientGetSecretVersionsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getSecretVersionsCreateRequest(ctx, vaultBaseURL, secretName, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetSecretVersionsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.SecretListResult.NextLink) - }, - } -} - -// getSecretVersionsCreateRequest creates the GetSecretVersions request. -func (client *KeyVaultClient) getSecretVersionsCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientGetSecretVersionsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/secrets/{secret-name}/versions" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getSecretVersionsHandleResponse handles the GetSecretVersions response. -func (client *KeyVaultClient) getSecretVersionsHandleResponse(resp *http.Response) (KeyVaultClientGetSecretVersionsResponse, error) { - result := KeyVaultClientGetSecretVersionsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SecretListResult); err != nil { - return KeyVaultClientGetSecretVersionsResponse{}, err - } - return result, nil -} - -// getSecretVersionsHandleError handles the GetSecretVersions error response. -func (client *KeyVaultClient) getSecretVersionsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetSecrets - The Get Secrets operation is applicable to the entire vault. However, only the base secret identifier and its attributes are provided in -// the response. Individual secret versions are not listed in the -// response. This operation requires the secrets/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetSecrets(vaultBaseURL string, options *KeyVaultClientGetSecretsOptions) *KeyVaultClientGetSecretsPager { - return &KeyVaultClientGetSecretsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getSecretsCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetSecretsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.SecretListResult.NextLink) - }, - } -} - -// getSecretsCreateRequest creates the GetSecrets request. -func (client *KeyVaultClient) getSecretsCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetSecretsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/secrets" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getSecretsHandleResponse handles the GetSecrets response. -func (client *KeyVaultClient) getSecretsHandleResponse(resp *http.Response) (KeyVaultClientGetSecretsResponse, error) { - result := KeyVaultClientGetSecretsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SecretListResult); err != nil { - return KeyVaultClientGetSecretsResponse{}, err - } - return result, nil -} - -// getSecretsHandleError handles the GetSecrets error response. -func (client *KeyVaultClient) getSecretsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetStorageAccount - Gets information about a specified storage account. This operation requires the storage/get permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetStorageAccount(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientGetStorageAccountOptions) (KeyVaultClientGetStorageAccountResponse, error) { - req, err := client.getStorageAccountCreateRequest(ctx, vaultBaseURL, storageAccountName, options) - if err != nil { - return KeyVaultClientGetStorageAccountResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientGetStorageAccountResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetStorageAccountResponse{}, client.getStorageAccountHandleError(resp) - } - return client.getStorageAccountHandleResponse(resp) -} - -// getStorageAccountCreateRequest creates the GetStorageAccount request. -func (client *KeyVaultClient) getStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientGetStorageAccountOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getStorageAccountHandleResponse handles the GetStorageAccount response. -func (client *KeyVaultClient) getStorageAccountHandleResponse(resp *http.Response) (KeyVaultClientGetStorageAccountResponse, error) { - result := KeyVaultClientGetStorageAccountResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.StorageBundle); err != nil { - return KeyVaultClientGetStorageAccountResponse{}, err - } - return result, nil -} - -// getStorageAccountHandleError handles the GetStorageAccount error response. -func (client *KeyVaultClient) getStorageAccountHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// GetStorageAccounts - List storage accounts managed by the specified key vault. This operation requires the storage/list permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) GetStorageAccounts(vaultBaseURL string, options *KeyVaultClientGetStorageAccountsOptions) *KeyVaultClientGetStorageAccountsPager { - return &KeyVaultClientGetStorageAccountsPager{ - client: client, - requester: func(ctx context.Context) (*policy.Request, error) { - return client.getStorageAccountsCreateRequest(ctx, vaultBaseURL, options) - }, - advancer: func(ctx context.Context, resp KeyVaultClientGetStorageAccountsResponse) (*policy.Request, error) { - return runtime.NewRequest(ctx, http.MethodGet, *resp.StorageListResult.NextLink) - }, - } -} - -// getStorageAccountsCreateRequest creates the GetStorageAccounts request. -func (client *KeyVaultClient) getStorageAccountsCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetStorageAccountsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getStorageAccountsHandleResponse handles the GetStorageAccounts response. -func (client *KeyVaultClient) getStorageAccountsHandleResponse(resp *http.Response) (KeyVaultClientGetStorageAccountsResponse, error) { - result := KeyVaultClientGetStorageAccountsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.StorageListResult); err != nil { - return KeyVaultClientGetStorageAccountsResponse{}, err - } - return result, nil -} - -// getStorageAccountsHandleError handles the GetStorageAccounts error response. -func (client *KeyVaultClient) getStorageAccountsHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// ImportCertificate - Imports an existing valid certificate, containing a private key, into Azure Key Vault. The certificate to be imported can be in either -// PFX or PEM format. If the certificate is in PEM format the PEM -// file must contain the key as well as x509 certificates. This operation requires the certificates/import permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) ImportCertificate(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateImportParameters, options *KeyVaultClientImportCertificateOptions) (KeyVaultClientImportCertificateResponse, error) { - req, err := client.importCertificateCreateRequest(ctx, vaultBaseURL, certificateName, parameters, options) - if err != nil { - return KeyVaultClientImportCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientImportCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientImportCertificateResponse{}, client.importCertificateHandleError(resp) - } - return client.importCertificateHandleResponse(resp) -} - -// importCertificateCreateRequest creates the ImportCertificate request. -func (client *KeyVaultClient) importCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateImportParameters, options *KeyVaultClientImportCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/import" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// importCertificateHandleResponse handles the ImportCertificate response. -func (client *KeyVaultClient) importCertificateHandleResponse(resp *http.Response) (KeyVaultClientImportCertificateResponse, error) { - result := KeyVaultClientImportCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientImportCertificateResponse{}, err - } - return result, nil -} - -// importCertificateHandleError handles the ImportCertificate error response. -func (client *KeyVaultClient) importCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// ImportKey - The import key operation may be used to import any key type into an Azure Key Vault. If the named key already exists, Azure Key Vault creates -// a new version of the key. This operation requires the -// keys/import permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) ImportKey(ctx context.Context, vaultBaseURL string, keyName string, parameters KeyImportParameters, options *KeyVaultClientImportKeyOptions) (KeyVaultClientImportKeyResponse, error) { - req, err := client.importKeyCreateRequest(ctx, vaultBaseURL, keyName, parameters, options) - if err != nil { - return KeyVaultClientImportKeyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientImportKeyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientImportKeyResponse{}, client.importKeyHandleError(resp) - } - return client.importKeyHandleResponse(resp) -} - -// importKeyCreateRequest creates the ImportKey request. -func (client *KeyVaultClient) importKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, parameters KeyImportParameters, options *KeyVaultClientImportKeyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{key-name}" - if keyName == "" { - return nil, errors.New("parameter keyName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// importKeyHandleResponse handles the ImportKey response. -func (client *KeyVaultClient) importKeyHandleResponse(resp *http.Response) (KeyVaultClientImportKeyResponse, error) { - result := KeyVaultClientImportKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { - return KeyVaultClientImportKeyResponse{}, err - } - return result, nil -} - -// importKeyHandleError handles the ImportKey error response. -func (client *KeyVaultClient) importKeyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// MergeCertificate - The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the -// service. This operation requires the certificates/create -// permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) MergeCertificate(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateMergeParameters, options *KeyVaultClientMergeCertificateOptions) (KeyVaultClientMergeCertificateResponse, error) { - req, err := client.mergeCertificateCreateRequest(ctx, vaultBaseURL, certificateName, parameters, options) - if err != nil { - return KeyVaultClientMergeCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientMergeCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusCreated) { - return KeyVaultClientMergeCertificateResponse{}, client.mergeCertificateHandleError(resp) - } - return client.mergeCertificateHandleResponse(resp) -} - -// mergeCertificateCreateRequest creates the MergeCertificate request. -func (client *KeyVaultClient) mergeCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateMergeParameters, options *KeyVaultClientMergeCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/pending/merge" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// mergeCertificateHandleResponse handles the MergeCertificate response. -func (client *KeyVaultClient) mergeCertificateHandleResponse(resp *http.Response) (KeyVaultClientMergeCertificateResponse, error) { - result := KeyVaultClientMergeCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientMergeCertificateResponse{}, err - } - return result, nil -} - -// mergeCertificateHandleError handles the MergeCertificate error response. -func (client *KeyVaultClient) mergeCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// PurgeDeletedCertificate - The PurgeDeletedCertificate operation performs an irreversible deletion of the specified certificate, without possibility for -// recovery. The operation is not available if the recovery level does not -// specify 'Purgeable'. This operation requires the certificate/purge permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) PurgeDeletedCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientPurgeDeletedCertificateOptions) (KeyVaultClientPurgeDeletedCertificateResponse, error) { - req, err := client.purgeDeletedCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientPurgeDeletedCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientPurgeDeletedCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusNoContent) { - return KeyVaultClientPurgeDeletedCertificateResponse{}, client.purgeDeletedCertificateHandleError(resp) - } - return KeyVaultClientPurgeDeletedCertificateResponse{RawResponse: resp}, nil -} - -// purgeDeletedCertificateCreateRequest creates the PurgeDeletedCertificate request. -func (client *KeyVaultClient) purgeDeletedCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientPurgeDeletedCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedcertificates/{certificate-name}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// purgeDeletedCertificateHandleError handles the PurgeDeletedCertificate error response. -func (client *KeyVaultClient) purgeDeletedCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// PurgeDeletedKey - The Purge Deleted Key operation is applicable for soft-delete enabled vaults. While the operation can be invoked on any vault, it will -// return an error if invoked on a non soft-delete enabled vault. -// This operation requires the keys/purge permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) PurgeDeletedKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientPurgeDeletedKeyOptions) (KeyVaultClientPurgeDeletedKeyResponse, error) { - req, err := client.purgeDeletedKeyCreateRequest(ctx, vaultBaseURL, keyName, options) - if err != nil { - return KeyVaultClientPurgeDeletedKeyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientPurgeDeletedKeyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusNoContent) { - return KeyVaultClientPurgeDeletedKeyResponse{}, client.purgeDeletedKeyHandleError(resp) - } - return KeyVaultClientPurgeDeletedKeyResponse{RawResponse: resp}, nil -} - -// purgeDeletedKeyCreateRequest creates the PurgeDeletedKey request. -func (client *KeyVaultClient) purgeDeletedKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientPurgeDeletedKeyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedkeys/{key-name}" - if keyName == "" { - return nil, errors.New("parameter keyName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// purgeDeletedKeyHandleError handles the PurgeDeletedKey error response. -func (client *KeyVaultClient) purgeDeletedKeyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// PurgeDeletedSecret - The purge deleted secret operation removes the secret permanently, without the possibility of recovery. This operation can only -// be enabled on a soft-delete enabled vault. This operation requires the -// secrets/purge permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) PurgeDeletedSecret(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientPurgeDeletedSecretOptions) (KeyVaultClientPurgeDeletedSecretResponse, error) { - req, err := client.purgeDeletedSecretCreateRequest(ctx, vaultBaseURL, secretName, options) - if err != nil { - return KeyVaultClientPurgeDeletedSecretResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientPurgeDeletedSecretResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusNoContent) { - return KeyVaultClientPurgeDeletedSecretResponse{}, client.purgeDeletedSecretHandleError(resp) - } - return KeyVaultClientPurgeDeletedSecretResponse{RawResponse: resp}, nil -} - -// purgeDeletedSecretCreateRequest creates the PurgeDeletedSecret request. -func (client *KeyVaultClient) purgeDeletedSecretCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientPurgeDeletedSecretOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedsecrets/{secret-name}" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// purgeDeletedSecretHandleError handles the PurgeDeletedSecret error response. -func (client *KeyVaultClient) purgeDeletedSecretHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// PurgeDeletedStorageAccount - The purge deleted storage account operation removes the secret permanently, without the possibility of recovery. This operation -// can only be performed on a soft-delete enabled vault. This operation -// requires the storage/purge permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) PurgeDeletedStorageAccount(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientPurgeDeletedStorageAccountOptions) (KeyVaultClientPurgeDeletedStorageAccountResponse, error) { - req, err := client.purgeDeletedStorageAccountCreateRequest(ctx, vaultBaseURL, storageAccountName, options) - if err != nil { - return KeyVaultClientPurgeDeletedStorageAccountResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientPurgeDeletedStorageAccountResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusNoContent) { - return KeyVaultClientPurgeDeletedStorageAccountResponse{}, client.purgeDeletedStorageAccountHandleError(resp) - } - return KeyVaultClientPurgeDeletedStorageAccountResponse{RawResponse: resp}, nil -} - -// purgeDeletedStorageAccountCreateRequest creates the PurgeDeletedStorageAccount request. -func (client *KeyVaultClient) purgeDeletedStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientPurgeDeletedStorageAccountOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedstorage/{storage-account-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// purgeDeletedStorageAccountHandleError handles the PurgeDeletedStorageAccount error response. -func (client *KeyVaultClient) purgeDeletedStorageAccountHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RecoverDeletedCertificate - The RecoverDeletedCertificate operation performs the reversal of the Delete operation. The operation is applicable in vaults -// enabled for soft-delete, and must be issued during the retention interval -// (available in the deleted certificate's attributes). This operation requires the certificates/recover permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RecoverDeletedCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientRecoverDeletedCertificateOptions) (KeyVaultClientRecoverDeletedCertificateResponse, error) { - req, err := client.recoverDeletedCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientRecoverDeletedCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRecoverDeletedCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRecoverDeletedCertificateResponse{}, client.recoverDeletedCertificateHandleError(resp) - } - return client.recoverDeletedCertificateHandleResponse(resp) -} - -// recoverDeletedCertificateCreateRequest creates the RecoverDeletedCertificate request. -func (client *KeyVaultClient) recoverDeletedCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientRecoverDeletedCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedcertificates/{certificate-name}/recover" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// recoverDeletedCertificateHandleResponse handles the RecoverDeletedCertificate response. -func (client *KeyVaultClient) recoverDeletedCertificateHandleResponse(resp *http.Response) (KeyVaultClientRecoverDeletedCertificateResponse, error) { - result := KeyVaultClientRecoverDeletedCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientRecoverDeletedCertificateResponse{}, err - } - return result, nil -} - -// recoverDeletedCertificateHandleError handles the RecoverDeletedCertificate error response. -func (client *KeyVaultClient) recoverDeletedCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RecoverDeletedKey - The Recover Deleted Key operation is applicable for deleted keys in soft-delete enabled vaults. It recovers the deleted key back -// to its latest version under /keys. An attempt to recover an non-deleted -// key will return an error. Consider this the inverse of the delete operation on soft-delete enabled vaults. This operation requires the keys/recover permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RecoverDeletedKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientRecoverDeletedKeyOptions) (KeyVaultClientRecoverDeletedKeyResponse, error) { - req, err := client.recoverDeletedKeyCreateRequest(ctx, vaultBaseURL, keyName, options) - if err != nil { - return KeyVaultClientRecoverDeletedKeyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRecoverDeletedKeyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRecoverDeletedKeyResponse{}, client.recoverDeletedKeyHandleError(resp) - } - return client.recoverDeletedKeyHandleResponse(resp) -} - -// recoverDeletedKeyCreateRequest creates the RecoverDeletedKey request. -func (client *KeyVaultClient) recoverDeletedKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientRecoverDeletedKeyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedkeys/{key-name}/recover" - if keyName == "" { - return nil, errors.New("parameter keyName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// recoverDeletedKeyHandleResponse handles the RecoverDeletedKey response. -func (client *KeyVaultClient) recoverDeletedKeyHandleResponse(resp *http.Response) (KeyVaultClientRecoverDeletedKeyResponse, error) { - result := KeyVaultClientRecoverDeletedKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { - return KeyVaultClientRecoverDeletedKeyResponse{}, err - } - return result, nil -} - -// recoverDeletedKeyHandleError handles the RecoverDeletedKey error response. -func (client *KeyVaultClient) recoverDeletedKeyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RecoverDeletedSasDefinition - Recovers the deleted SAS definition for the specified storage account. This operation can only be performed on a soft-delete -// enabled vault. This operation requires the storage/recover permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RecoverDeletedSasDefinition(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, options *KeyVaultClientRecoverDeletedSasDefinitionOptions) (KeyVaultClientRecoverDeletedSasDefinitionResponse, error) { - req, err := client.recoverDeletedSasDefinitionCreateRequest(ctx, vaultBaseURL, storageAccountName, sasDefinitionName, options) - if err != nil { - return KeyVaultClientRecoverDeletedSasDefinitionResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRecoverDeletedSasDefinitionResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRecoverDeletedSasDefinitionResponse{}, client.recoverDeletedSasDefinitionHandleError(resp) - } - return client.recoverDeletedSasDefinitionHandleResponse(resp) -} - -// recoverDeletedSasDefinitionCreateRequest creates the RecoverDeletedSasDefinition request. -func (client *KeyVaultClient) recoverDeletedSasDefinitionCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, options *KeyVaultClientRecoverDeletedSasDefinitionOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedstorage/{storage-account-name}/sas/{sas-definition-name}/recover" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - if sasDefinitionName == "" { - return nil, errors.New("parameter sasDefinitionName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{sas-definition-name}", url.PathEscape(sasDefinitionName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// recoverDeletedSasDefinitionHandleResponse handles the RecoverDeletedSasDefinition response. -func (client *KeyVaultClient) recoverDeletedSasDefinitionHandleResponse(resp *http.Response) (KeyVaultClientRecoverDeletedSasDefinitionResponse, error) { - result := KeyVaultClientRecoverDeletedSasDefinitionResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SasDefinitionBundle); err != nil { - return KeyVaultClientRecoverDeletedSasDefinitionResponse{}, err - } - return result, nil -} - -// recoverDeletedSasDefinitionHandleError handles the RecoverDeletedSasDefinition error response. -func (client *KeyVaultClient) recoverDeletedSasDefinitionHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RecoverDeletedSecret - Recovers the deleted secret in the specified vault. This operation can only be performed on a soft-delete enabled vault. This -// operation requires the secrets/recover permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RecoverDeletedSecret(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientRecoverDeletedSecretOptions) (KeyVaultClientRecoverDeletedSecretResponse, error) { - req, err := client.recoverDeletedSecretCreateRequest(ctx, vaultBaseURL, secretName, options) - if err != nil { - return KeyVaultClientRecoverDeletedSecretResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRecoverDeletedSecretResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRecoverDeletedSecretResponse{}, client.recoverDeletedSecretHandleError(resp) - } - return client.recoverDeletedSecretHandleResponse(resp) -} - -// recoverDeletedSecretCreateRequest creates the RecoverDeletedSecret request. -func (client *KeyVaultClient) recoverDeletedSecretCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, options *KeyVaultClientRecoverDeletedSecretOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedsecrets/{secret-name}/recover" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// recoverDeletedSecretHandleResponse handles the RecoverDeletedSecret response. -func (client *KeyVaultClient) recoverDeletedSecretHandleResponse(resp *http.Response) (KeyVaultClientRecoverDeletedSecretResponse, error) { - result := KeyVaultClientRecoverDeletedSecretResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SecretBundle); err != nil { - return KeyVaultClientRecoverDeletedSecretResponse{}, err - } - return result, nil -} - -// recoverDeletedSecretHandleError handles the RecoverDeletedSecret error response. -func (client *KeyVaultClient) recoverDeletedSecretHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RecoverDeletedStorageAccount - Recovers the deleted storage account in the specified vault. This operation can only be performed on a soft-delete enabled -// vault. This operation requires the storage/recover permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RecoverDeletedStorageAccount(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientRecoverDeletedStorageAccountOptions) (KeyVaultClientRecoverDeletedStorageAccountResponse, error) { - req, err := client.recoverDeletedStorageAccountCreateRequest(ctx, vaultBaseURL, storageAccountName, options) - if err != nil { - return KeyVaultClientRecoverDeletedStorageAccountResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRecoverDeletedStorageAccountResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRecoverDeletedStorageAccountResponse{}, client.recoverDeletedStorageAccountHandleError(resp) - } - return client.recoverDeletedStorageAccountHandleResponse(resp) -} - -// recoverDeletedStorageAccountCreateRequest creates the RecoverDeletedStorageAccount request. -func (client *KeyVaultClient) recoverDeletedStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, options *KeyVaultClientRecoverDeletedStorageAccountOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedstorage/{storage-account-name}/recover" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// recoverDeletedStorageAccountHandleResponse handles the RecoverDeletedStorageAccount response. -func (client *KeyVaultClient) recoverDeletedStorageAccountHandleResponse(resp *http.Response) (KeyVaultClientRecoverDeletedStorageAccountResponse, error) { - result := KeyVaultClientRecoverDeletedStorageAccountResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.StorageBundle); err != nil { - return KeyVaultClientRecoverDeletedStorageAccountResponse{}, err - } - return result, nil -} - -// recoverDeletedStorageAccountHandleError handles the RecoverDeletedStorageAccount error response. -func (client *KeyVaultClient) recoverDeletedStorageAccountHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RegenerateStorageAccountKey - Regenerates the specified key value for the given storage account. This operation requires the storage/regeneratekey permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RegenerateStorageAccountKey(ctx context.Context, vaultBaseURL string, storageAccountName string, parameters StorageAccountRegenerteKeyParameters, options *KeyVaultClientRegenerateStorageAccountKeyOptions) (KeyVaultClientRegenerateStorageAccountKeyResponse, error) { - req, err := client.regenerateStorageAccountKeyCreateRequest(ctx, vaultBaseURL, storageAccountName, parameters, options) - if err != nil { - return KeyVaultClientRegenerateStorageAccountKeyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRegenerateStorageAccountKeyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRegenerateStorageAccountKeyResponse{}, client.regenerateStorageAccountKeyHandleError(resp) - } - return client.regenerateStorageAccountKeyHandleResponse(resp) -} - -// regenerateStorageAccountKeyCreateRequest creates the RegenerateStorageAccountKey request. -func (client *KeyVaultClient) regenerateStorageAccountKeyCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, parameters StorageAccountRegenerteKeyParameters, options *KeyVaultClientRegenerateStorageAccountKeyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}/regeneratekey" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// regenerateStorageAccountKeyHandleResponse handles the RegenerateStorageAccountKey response. -func (client *KeyVaultClient) regenerateStorageAccountKeyHandleResponse(resp *http.Response) (KeyVaultClientRegenerateStorageAccountKeyResponse, error) { - result := KeyVaultClientRegenerateStorageAccountKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.StorageBundle); err != nil { - return KeyVaultClientRegenerateStorageAccountKeyResponse{}, err - } - return result, nil -} - -// regenerateStorageAccountKeyHandleError handles the RegenerateStorageAccountKey error response. -func (client *KeyVaultClient) regenerateStorageAccountKeyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RestoreCertificate - Restores a backed up certificate, and all its versions, to a vault. This operation requires the certificates/restore permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RestoreCertificate(ctx context.Context, vaultBaseURL string, parameters CertificateRestoreParameters, options *KeyVaultClientRestoreCertificateOptions) (KeyVaultClientRestoreCertificateResponse, error) { - req, err := client.restoreCertificateCreateRequest(ctx, vaultBaseURL, parameters, options) - if err != nil { - return KeyVaultClientRestoreCertificateResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRestoreCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRestoreCertificateResponse{}, client.restoreCertificateHandleError(resp) - } - return client.restoreCertificateHandleResponse(resp) -} - -// restoreCertificateCreateRequest creates the RestoreCertificate request. -func (client *KeyVaultClient) restoreCertificateCreateRequest(ctx context.Context, vaultBaseURL string, parameters CertificateRestoreParameters, options *KeyVaultClientRestoreCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/restore" - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// restoreCertificateHandleResponse handles the RestoreCertificate response. -func (client *KeyVaultClient) restoreCertificateHandleResponse(resp *http.Response) (KeyVaultClientRestoreCertificateResponse, error) { - result := KeyVaultClientRestoreCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientRestoreCertificateResponse{}, err - } - return result, nil -} - -// restoreCertificateHandleError handles the RestoreCertificate error response. -func (client *KeyVaultClient) restoreCertificateHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RestoreKey - Imports a previously backed up key into Azure Key Vault, restoring the key, its key identifier, attributes and access control policies. -// The RESTORE operation may be used to import a previously backed -// up key. Individual versions of a key cannot be restored. The key is restored in its entirety with the same key name as it had when it was backed up. -// If the key name is not available in the target Key -// Vault, the RESTORE operation will be rejected. While the key name is retained during restore, the final key identifier will change if the key is restored -// to a different vault. Restore will restore all -// versions and preserve version identifiers. The RESTORE operation is subject to security constraints: The target Key Vault must be owned by the same Microsoft -// Azure Subscription as the source Key Vault -// The user must have RESTORE permission in the target Key Vault. This operation requires the keys/restore permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RestoreKey(ctx context.Context, vaultBaseURL string, parameters KeyRestoreParameters, options *KeyVaultClientRestoreKeyOptions) (KeyVaultClientRestoreKeyResponse, error) { - req, err := client.restoreKeyCreateRequest(ctx, vaultBaseURL, parameters, options) - if err != nil { - return KeyVaultClientRestoreKeyResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRestoreKeyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRestoreKeyResponse{}, client.restoreKeyHandleError(resp) - } - return client.restoreKeyHandleResponse(resp) -} - -// restoreKeyCreateRequest creates the RestoreKey request. -func (client *KeyVaultClient) restoreKeyCreateRequest(ctx context.Context, vaultBaseURL string, parameters KeyRestoreParameters, options *KeyVaultClientRestoreKeyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/restore" - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// restoreKeyHandleResponse handles the RestoreKey response. -func (client *KeyVaultClient) restoreKeyHandleResponse(resp *http.Response) (KeyVaultClientRestoreKeyResponse, error) { - result := KeyVaultClientRestoreKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { - return KeyVaultClientRestoreKeyResponse{}, err - } - return result, nil -} - -// restoreKeyHandleError handles the RestoreKey error response. -func (client *KeyVaultClient) restoreKeyHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RestoreSecret - Restores a backed up secret, and all its versions, to a vault. This operation requires the secrets/restore permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RestoreSecret(ctx context.Context, vaultBaseURL string, parameters SecretRestoreParameters, options *KeyVaultClientRestoreSecretOptions) (KeyVaultClientRestoreSecretResponse, error) { - req, err := client.restoreSecretCreateRequest(ctx, vaultBaseURL, parameters, options) - if err != nil { - return KeyVaultClientRestoreSecretResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRestoreSecretResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRestoreSecretResponse{}, client.restoreSecretHandleError(resp) - } - return client.restoreSecretHandleResponse(resp) -} - -// restoreSecretCreateRequest creates the RestoreSecret request. -func (client *KeyVaultClient) restoreSecretCreateRequest(ctx context.Context, vaultBaseURL string, parameters SecretRestoreParameters, options *KeyVaultClientRestoreSecretOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/secrets/restore" - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// restoreSecretHandleResponse handles the RestoreSecret response. -func (client *KeyVaultClient) restoreSecretHandleResponse(resp *http.Response) (KeyVaultClientRestoreSecretResponse, error) { - result := KeyVaultClientRestoreSecretResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SecretBundle); err != nil { - return KeyVaultClientRestoreSecretResponse{}, err - } - return result, nil -} - -// restoreSecretHandleError handles the RestoreSecret error response. -func (client *KeyVaultClient) restoreSecretHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// RestoreStatus - Returns the status of restore operation +// GetDeletedKeys - Retrieves a list of the keys in the Key Vault as JSON Web Key structures that contain the public part of a deleted key. This operation +// includes deletion-specific information. The Get Deleted Keys +// operation is applicable for vaults enabled for soft-delete. While the operation can be invoked on any vault, it will return an error if invoked on a +// non soft-delete enabled vault. This operation +// requires the keys/list permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RestoreStatus(ctx context.Context, vaultBaseURL string, jobID string, options *KeyVaultClientRestoreStatusOptions) (KeyVaultClientRestoreStatusResponse, error) { - req, err := client.restoreStatusCreateRequest(ctx, vaultBaseURL, jobID, options) - if err != nil { - return KeyVaultClientRestoreStatusResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientRestoreStatusResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRestoreStatusResponse{}, client.restoreStatusHandleError(resp) +func (client *KeyVaultClient) GetDeletedKeys(vaultBaseURL string, options *KeyVaultClientGetDeletedKeysOptions) *KeyVaultClientGetDeletedKeysPager { + return &KeyVaultClientGetDeletedKeysPager{ + client: client, + requester: func(ctx context.Context) (*policy.Request, error) { + return client.getDeletedKeysCreateRequest(ctx, vaultBaseURL, options) + }, + advancer: func(ctx context.Context, resp KeyVaultClientGetDeletedKeysResponse) (*policy.Request, error) { + return runtime.NewRequest(ctx, http.MethodGet, *resp.DeletedKeyListResult.NextLink) + }, } - return client.restoreStatusHandleResponse(resp) } -// restoreStatusCreateRequest creates the RestoreStatus request. -func (client *KeyVaultClient) restoreStatusCreateRequest(ctx context.Context, vaultBaseURL string, jobID string, options *KeyVaultClientRestoreStatusOptions) (*policy.Request, error) { +// getDeletedKeysCreateRequest creates the GetDeletedKeys request. +func (client *KeyVaultClient) getDeletedKeysCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetDeletedKeysOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/restore/{jobId}/pending" - if jobID == "" { - return nil, errors.New("parameter jobID cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{jobId}", url.PathEscape(jobID)) + urlPath := "/deletedkeys" req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + if options != nil && options.Maxresults != nil { + reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) + } + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil } -// restoreStatusHandleResponse handles the RestoreStatus response. -func (client *KeyVaultClient) restoreStatusHandleResponse(resp *http.Response) (KeyVaultClientRestoreStatusResponse, error) { - result := KeyVaultClientRestoreStatusResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.RestoreOperation); err != nil { - return KeyVaultClientRestoreStatusResponse{}, err +// getDeletedKeysHandleResponse handles the GetDeletedKeys response. +func (client *KeyVaultClient) getDeletedKeysHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedKeysResponse, error) { + result := KeyVaultClientGetDeletedKeysResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.DeletedKeyListResult); err != nil { + return KeyVaultClientGetDeletedKeysResponse{}, err } return result, nil } -// restoreStatusHandleError handles the RestoreStatus error response. -func (client *KeyVaultClient) restoreStatusHandleError(resp *http.Response) error { +// getDeletedKeysHandleError handles the GetDeletedKeys error response. +func (client *KeyVaultClient) getDeletedKeysHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -3861,180 +534,59 @@ func (client *KeyVaultClient) restoreStatusHandleError(resp *http.Response) erro return runtime.NewResponseError(&errType, resp) } -// RestoreStorageAccount - Restores a backed up storage account to a vault. This operation requires the storage/restore permission. +// GetKey - The get key operation is applicable to all key types. If the requested key is symmetric, then no key material is released in the response. This +// operation requires the keys/get permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) RestoreStorageAccount(ctx context.Context, vaultBaseURL string, parameters StorageRestoreParameters, options *KeyVaultClientRestoreStorageAccountOptions) (KeyVaultClientRestoreStorageAccountResponse, error) { - req, err := client.restoreStorageAccountCreateRequest(ctx, vaultBaseURL, parameters, options) +func (client *KeyVaultClient) GetKey(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, options *KeyVaultClientGetKeyOptions) (KeyVaultClientGetKeyResponse, error) { + req, err := client.getKeyCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, options) if err != nil { - return KeyVaultClientRestoreStorageAccountResponse{}, err + return KeyVaultClientGetKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientRestoreStorageAccountResponse{}, err + return KeyVaultClientGetKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRestoreStorageAccountResponse{}, client.restoreStorageAccountHandleError(resp) - } - return client.restoreStorageAccountHandleResponse(resp) -} - -// restoreStorageAccountCreateRequest creates the RestoreStorageAccount request. -func (client *KeyVaultClient) restoreStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, parameters StorageRestoreParameters, options *KeyVaultClientRestoreStorageAccountOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/restore" - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// restoreStorageAccountHandleResponse handles the RestoreStorageAccount response. -func (client *KeyVaultClient) restoreStorageAccountHandleResponse(resp *http.Response) (KeyVaultClientRestoreStorageAccountResponse, error) { - result := KeyVaultClientRestoreStorageAccountResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.StorageBundle); err != nil { - return KeyVaultClientRestoreStorageAccountResponse{}, err - } - return result, nil -} - -// restoreStorageAccountHandleError handles the RestoreStorageAccount error response. -func (client *KeyVaultClient) restoreStorageAccountHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// BeginSelectiveKeyRestoreOperation - Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob -// storage backup folder -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) BeginSelectiveKeyRestoreOperation(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientBeginSelectiveKeyRestoreOperationOptions) (KeyVaultClientSelectiveKeyRestoreOperationPollerResponse, error) { - resp, err := client.selectiveKeyRestoreOperation(ctx, vaultBaseURL, keyName, options) - if err != nil { - return KeyVaultClientSelectiveKeyRestoreOperationPollerResponse{}, err - } - result := KeyVaultClientSelectiveKeyRestoreOperationPollerResponse{ - RawResponse: resp, - } - pt, err := runtime.NewPoller("keyVaultClient.SelectiveKeyRestoreOperation", resp, client.Con.Pipeline(), client.selectiveKeyRestoreOperationHandleError) - if err != nil { - return KeyVaultClientSelectiveKeyRestoreOperationPollerResponse{}, err - } - result.Poller = &KeyVaultClientSelectiveKeyRestoreOperationPoller{ - pt: pt, - } - return result, nil -} - -// SelectiveKeyRestoreOperation - Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage -// backup folder -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) selectiveKeyRestoreOperation(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientBeginSelectiveKeyRestoreOperationOptions) (*http.Response, error) { - req, err := client.selectiveKeyRestoreOperationCreateRequest(ctx, vaultBaseURL, keyName, options) - if err != nil { - return nil, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return nil, err - } - if !runtime.HasStatusCode(resp, http.StatusAccepted) { - return nil, client.selectiveKeyRestoreOperationHandleError(resp) + return KeyVaultClientGetKeyResponse{}, client.getKeyHandleError(resp) } - return resp, nil + return client.getKeyHandleResponse(resp) } -// selectiveKeyRestoreOperationCreateRequest creates the SelectiveKeyRestoreOperation request. -func (client *KeyVaultClient) selectiveKeyRestoreOperationCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientBeginSelectiveKeyRestoreOperationOptions) (*policy.Request, error) { +// getKeyCreateRequest creates the GetKey request. +func (client *KeyVaultClient) getKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, options *KeyVaultClientGetKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{keyName}/restore" + urlPath := "/keys/{key-name}/{key-version}" if keyName == "" { return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{keyName}", url.PathEscape(keyName)) - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + // if keyVersion == "" { + // return nil, errors.New("parameter keyVersion cannot be empty") + // } + urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - if options != nil && options.RestoreBlobDetails != nil { - return req, runtime.MarshalAsJSON(req, *options.RestoreBlobDetails) - } return req, nil } -// selectiveKeyRestoreOperationHandleError handles the SelectiveKeyRestoreOperation error response. -func (client *KeyVaultClient) selectiveKeyRestoreOperationHandleError(resp *http.Response) error { - body, err := runtime.Payload(resp) - if err != nil { - return runtime.NewResponseError(err, resp) - } - errType := KeyVaultError{raw: string(body)} - if err := runtime.UnmarshalAsJSON(resp, &errType); err != nil { - return runtime.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp) - } - return runtime.NewResponseError(&errType, resp) -} - -// SetCertificateContacts - Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts permission. -// If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) SetCertificateContacts(ctx context.Context, vaultBaseURL string, contacts Contacts, options *KeyVaultClientSetCertificateContactsOptions) (KeyVaultClientSetCertificateContactsResponse, error) { - req, err := client.setCertificateContactsCreateRequest(ctx, vaultBaseURL, contacts, options) - if err != nil { - return KeyVaultClientSetCertificateContactsResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientSetCertificateContactsResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientSetCertificateContactsResponse{}, client.setCertificateContactsHandleError(resp) - } - return client.setCertificateContactsHandleResponse(resp) -} - -// setCertificateContactsCreateRequest creates the SetCertificateContacts request. -func (client *KeyVaultClient) setCertificateContactsCreateRequest(ctx context.Context, vaultBaseURL string, contacts Contacts, options *KeyVaultClientSetCertificateContactsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/contacts" - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, contacts) -} - -// setCertificateContactsHandleResponse handles the SetCertificateContacts response. -func (client *KeyVaultClient) setCertificateContactsHandleResponse(resp *http.Response) (KeyVaultClientSetCertificateContactsResponse, error) { - result := KeyVaultClientSetCertificateContactsResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { - return KeyVaultClientSetCertificateContactsResponse{}, err +// getKeyHandleResponse handles the GetKey response. +func (client *KeyVaultClient) getKeyHandleResponse(resp *http.Response) (KeyVaultClientGetKeyResponse, error) { + result := KeyVaultClientGetKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { + return KeyVaultClientGetKeyResponse{}, err } return result, nil } -// setCertificateContactsHandleError handles the SetCertificateContacts error response. -func (client *KeyVaultClient) setCertificateContactsHandleError(resp *http.Response) error { +// getKeyHandleError handles the GetKey error response. +func (client *KeyVaultClient) getKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4046,55 +598,55 @@ func (client *KeyVaultClient) setCertificateContactsHandleError(resp *http.Respo return runtime.NewResponseError(&errType, resp) } -// SetCertificateIssuer - The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation requires the certificates/setissuers -// permission. +// GetKeyRotationPolicy - The GetKeyRotationPolicy operation returns the specified key policy resources in the specified key vault. This operation requires +// the keys/get permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) SetCertificateIssuer(ctx context.Context, vaultBaseURL string, issuerName string, parameter CertificateIssuerSetParameters, options *KeyVaultClientSetCertificateIssuerOptions) (KeyVaultClientSetCertificateIssuerResponse, error) { - req, err := client.setCertificateIssuerCreateRequest(ctx, vaultBaseURL, issuerName, parameter, options) +func (client *KeyVaultClient) GetKeyRotationPolicy(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientGetKeyRotationPolicyOptions) (KeyVaultClientGetKeyRotationPolicyResponse, error) { + req, err := client.getKeyRotationPolicyCreateRequest(ctx, vaultBaseURL, keyName, options) if err != nil { - return KeyVaultClientSetCertificateIssuerResponse{}, err + return KeyVaultClientGetKeyRotationPolicyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientSetCertificateIssuerResponse{}, err + return KeyVaultClientGetKeyRotationPolicyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientSetCertificateIssuerResponse{}, client.setCertificateIssuerHandleError(resp) + return KeyVaultClientGetKeyRotationPolicyResponse{}, client.getKeyRotationPolicyHandleError(resp) } - return client.setCertificateIssuerHandleResponse(resp) + return client.getKeyRotationPolicyHandleResponse(resp) } -// setCertificateIssuerCreateRequest creates the SetCertificateIssuer request. -func (client *KeyVaultClient) setCertificateIssuerCreateRequest(ctx context.Context, vaultBaseURL string, issuerName string, parameter CertificateIssuerSetParameters, options *KeyVaultClientSetCertificateIssuerOptions) (*policy.Request, error) { +// getKeyRotationPolicyCreateRequest creates the GetKeyRotationPolicy request. +func (client *KeyVaultClient) getKeyRotationPolicyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientGetKeyRotationPolicyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers/{issuer-name}" - if issuerName == "" { - return nil, errors.New("parameter issuerName cannot be empty") + urlPath := "/keys/{key-name}/rotationpolicy" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameter) + return req, nil } -// setCertificateIssuerHandleResponse handles the SetCertificateIssuer response. -func (client *KeyVaultClient) setCertificateIssuerHandleResponse(resp *http.Response) (KeyVaultClientSetCertificateIssuerResponse, error) { - result := KeyVaultClientSetCertificateIssuerResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { - return KeyVaultClientSetCertificateIssuerResponse{}, err +// getKeyRotationPolicyHandleResponse handles the GetKeyRotationPolicy response. +func (client *KeyVaultClient) getKeyRotationPolicyHandleResponse(resp *http.Response) (KeyVaultClientGetKeyRotationPolicyResponse, error) { + result := KeyVaultClientGetKeyRotationPolicyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyRotationPolicy); err != nil { + return KeyVaultClientGetKeyRotationPolicyResponse{}, err } return result, nil } -// setCertificateIssuerHandleError handles the SetCertificateIssuer error response. -func (client *KeyVaultClient) setCertificateIssuerHandleError(resp *http.Response) error { +// getKeyRotationPolicyHandleError handles the GetKeyRotationPolicy error response. +func (client *KeyVaultClient) getKeyRotationPolicyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4106,58 +658,54 @@ func (client *KeyVaultClient) setCertificateIssuerHandleError(resp *http.Respons return runtime.NewResponseError(&errType, resp) } -// SetSasDefinition - Creates or updates a new SAS definition for the specified storage account. This operation requires the storage/setsas permission. +// GetKeyVersions - The full key identifier, attributes, and tags are provided in the response. This operation requires the keys/list permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) SetSasDefinition(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, parameters SasDefinitionCreateParameters, options *KeyVaultClientSetSasDefinitionOptions) (KeyVaultClientSetSasDefinitionResponse, error) { - req, err := client.setSasDefinitionCreateRequest(ctx, vaultBaseURL, storageAccountName, sasDefinitionName, parameters, options) - if err != nil { - return KeyVaultClientSetSasDefinitionResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientSetSasDefinitionResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientSetSasDefinitionResponse{}, client.setSasDefinitionHandleError(resp) +func (client *KeyVaultClient) GetKeyVersions(vaultBaseURL string, keyName string, options *KeyVaultClientGetKeyVersionsOptions) *KeyVaultClientGetKeyVersionsPager { + return &KeyVaultClientGetKeyVersionsPager{ + client: client, + requester: func(ctx context.Context) (*policy.Request, error) { + return client.getKeyVersionsCreateRequest(ctx, vaultBaseURL, keyName, options) + }, + advancer: func(ctx context.Context, resp KeyVaultClientGetKeyVersionsResponse) (*policy.Request, error) { + return runtime.NewRequest(ctx, http.MethodGet, *resp.KeyListResult.NextLink) + }, } - return client.setSasDefinitionHandleResponse(resp) } -// setSasDefinitionCreateRequest creates the SetSasDefinition request. -func (client *KeyVaultClient) setSasDefinitionCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, parameters SasDefinitionCreateParameters, options *KeyVaultClientSetSasDefinitionOptions) (*policy.Request, error) { +// getKeyVersionsCreateRequest creates the GetKeyVersions request. +func (client *KeyVaultClient) getKeyVersionsCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientGetKeyVersionsOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}/sas/{sas-definition-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - if sasDefinitionName == "" { - return nil, errors.New("parameter sasDefinitionName cannot be empty") + urlPath := "/keys/{key-name}/versions" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{sas-definition-name}", url.PathEscape(sasDefinitionName)) - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + if options != nil && options.Maxresults != nil { + reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) + } + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) + return req, nil } -// setSasDefinitionHandleResponse handles the SetSasDefinition response. -func (client *KeyVaultClient) setSasDefinitionHandleResponse(resp *http.Response) (KeyVaultClientSetSasDefinitionResponse, error) { - result := KeyVaultClientSetSasDefinitionResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SasDefinitionBundle); err != nil { - return KeyVaultClientSetSasDefinitionResponse{}, err +// getKeyVersionsHandleResponse handles the GetKeyVersions response. +func (client *KeyVaultClient) getKeyVersionsHandleResponse(resp *http.Response) (KeyVaultClientGetKeyVersionsResponse, error) { + result := KeyVaultClientGetKeyVersionsResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyListResult); err != nil { + return KeyVaultClientGetKeyVersionsResponse{}, err } return result, nil } -// setSasDefinitionHandleError handles the SetSasDefinition error response. -func (client *KeyVaultClient) setSasDefinitionHandleError(resp *http.Response) error { +// getKeyVersionsHandleError handles the GetKeyVersions error response. +func (client *KeyVaultClient) getKeyVersionsHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4169,55 +717,53 @@ func (client *KeyVaultClient) setSasDefinitionHandleError(resp *http.Response) e return runtime.NewResponseError(&errType, resp) } -// SetSecret - The SET operation adds a secret to the Azure Key Vault. If the named secret already exists, Azure Key Vault creates a new version of that -// secret. This operation requires the secrets/set permission. +// GetKeys - Retrieves a list of the keys in the Key Vault as JSON Web Key structures that contain the public part of a stored key. The LIST operation is +// applicable to all key types, however only the base key +// identifier, attributes, and tags are provided in the response. Individual versions of a key are not listed in the response. This operation requires the +// keys/list permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) SetSecret(ctx context.Context, vaultBaseURL string, secretName string, parameters SecretSetParameters, options *KeyVaultClientSetSecretOptions) (KeyVaultClientSetSecretResponse, error) { - req, err := client.setSecretCreateRequest(ctx, vaultBaseURL, secretName, parameters, options) - if err != nil { - return KeyVaultClientSetSecretResponse{}, err - } - resp, err := client.Con.Pipeline().Do(req) - if err != nil { - return KeyVaultClientSetSecretResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientSetSecretResponse{}, client.setSecretHandleError(resp) +func (client *KeyVaultClient) GetKeys(vaultBaseURL string, options *KeyVaultClientGetKeysOptions) *KeyVaultClientGetKeysPager { + return &KeyVaultClientGetKeysPager{ + client: client, + requester: func(ctx context.Context) (*policy.Request, error) { + return client.getKeysCreateRequest(ctx, vaultBaseURL, options) + }, + advancer: func(ctx context.Context, resp KeyVaultClientGetKeysResponse) (*policy.Request, error) { + return runtime.NewRequest(ctx, http.MethodGet, *resp.KeyListResult.NextLink) + }, } - return client.setSecretHandleResponse(resp) } -// setSecretCreateRequest creates the SetSecret request. -func (client *KeyVaultClient) setSecretCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, parameters SecretSetParameters, options *KeyVaultClientSetSecretOptions) (*policy.Request, error) { +// getKeysCreateRequest creates the GetKeys request. +func (client *KeyVaultClient) getKeysCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetKeysOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/secrets/{secret-name}" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) + urlPath := "/keys" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + if options != nil && options.Maxresults != nil { + reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) + } + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) + return req, nil } -// setSecretHandleResponse handles the SetSecret response. -func (client *KeyVaultClient) setSecretHandleResponse(resp *http.Response) (KeyVaultClientSetSecretResponse, error) { - result := KeyVaultClientSetSecretResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SecretBundle); err != nil { - return KeyVaultClientSetSecretResponse{}, err +// getKeysHandleResponse handles the GetKeys response. +func (client *KeyVaultClient) getKeysHandleResponse(resp *http.Response) (KeyVaultClientGetKeysResponse, error) { + result := KeyVaultClientGetKeysResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyListResult); err != nil { + return KeyVaultClientGetKeysResponse{}, err } return result, nil } -// setSecretHandleError handles the SetSecret error response. -func (client *KeyVaultClient) setSecretHandleError(resp *http.Response) error { +// getKeysHandleError handles the GetKeys error response. +func (client *KeyVaultClient) getKeysHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4229,54 +775,50 @@ func (client *KeyVaultClient) setSecretHandleError(resp *http.Response) error { return runtime.NewResponseError(&errType, resp) } -// SetStorageAccount - Creates or updates a new storage account. This operation requires the storage/set permission. +// GetRandomBytes - Get the requested number of bytes containing random values from a managed HSM. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) SetStorageAccount(ctx context.Context, vaultBaseURL string, storageAccountName string, parameters StorageAccountCreateParameters, options *KeyVaultClientSetStorageAccountOptions) (KeyVaultClientSetStorageAccountResponse, error) { - req, err := client.setStorageAccountCreateRequest(ctx, vaultBaseURL, storageAccountName, parameters, options) +func (client *KeyVaultClient) GetRandomBytes(ctx context.Context, vaultBaseURL string, parameters GetRandomBytesRequest, options *KeyVaultClientGetRandomBytesOptions) (KeyVaultClientGetRandomBytesResponse, error) { + req, err := client.getRandomBytesCreateRequest(ctx, vaultBaseURL, parameters, options) if err != nil { - return KeyVaultClientSetStorageAccountResponse{}, err + return KeyVaultClientGetRandomBytesResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientSetStorageAccountResponse{}, err + return KeyVaultClientGetRandomBytesResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientSetStorageAccountResponse{}, client.setStorageAccountHandleError(resp) + return KeyVaultClientGetRandomBytesResponse{}, client.getRandomBytesHandleError(resp) } - return client.setStorageAccountHandleResponse(resp) + return client.getRandomBytesHandleResponse(resp) } -// setStorageAccountCreateRequest creates the SetStorageAccount request. -func (client *KeyVaultClient) setStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, parameters StorageAccountCreateParameters, options *KeyVaultClientSetStorageAccountOptions) (*policy.Request, error) { +// getRandomBytesCreateRequest creates the GetRandomBytes request. +func (client *KeyVaultClient) getRandomBytesCreateRequest(ctx context.Context, vaultBaseURL string, parameters GetRandomBytesRequest, options *KeyVaultClientGetRandomBytesOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) + urlPath := "/rng" + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) } -// setStorageAccountHandleResponse handles the SetStorageAccount response. -func (client *KeyVaultClient) setStorageAccountHandleResponse(resp *http.Response) (KeyVaultClientSetStorageAccountResponse, error) { - result := KeyVaultClientSetStorageAccountResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.StorageBundle); err != nil { - return KeyVaultClientSetStorageAccountResponse{}, err +// getRandomBytesHandleResponse handles the GetRandomBytes response. +func (client *KeyVaultClient) getRandomBytesHandleResponse(resp *http.Response) (KeyVaultClientGetRandomBytesResponse, error) { + result := KeyVaultClientGetRandomBytesResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.RandomBytes); err != nil { + return KeyVaultClientGetRandomBytesResponse{}, err } return result, nil } -// setStorageAccountHandleError handles the SetStorageAccount error response. -func (client *KeyVaultClient) setStorageAccountHandleError(resp *http.Response) error { +// getRandomBytesHandleError handles the GetRandomBytes error response. +func (client *KeyVaultClient) getRandomBytesHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4288,59 +830,56 @@ func (client *KeyVaultClient) setStorageAccountHandleError(resp *http.Response) return runtime.NewResponseError(&errType, resp) } -// Sign - The SIGN operation is applicable to asymmetric and symmetric keys stored in Azure Key Vault since this operation uses the private portion of the -// key. This operation requires the keys/sign permission. +// ImportKey - The import key operation may be used to import any key type into an Azure Key Vault. If the named key already exists, Azure Key Vault creates +// a new version of the key. This operation requires the +// keys/import permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) Sign(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeySignParameters, options *KeyVaultClientSignOptions) (KeyVaultClientSignResponse, error) { - req, err := client.signCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) +func (client *KeyVaultClient) ImportKey(ctx context.Context, vaultBaseURL string, keyName string, parameters KeyImportParameters, options *KeyVaultClientImportKeyOptions) (KeyVaultClientImportKeyResponse, error) { + req, err := client.importKeyCreateRequest(ctx, vaultBaseURL, keyName, parameters, options) if err != nil { - return KeyVaultClientSignResponse{}, err + return KeyVaultClientImportKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientSignResponse{}, err + return KeyVaultClientImportKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientSignResponse{}, client.signHandleError(resp) + return KeyVaultClientImportKeyResponse{}, client.importKeyHandleError(resp) } - return client.signHandleResponse(resp) + return client.importKeyHandleResponse(resp) } -// signCreateRequest creates the Sign request. -func (client *KeyVaultClient) signCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeySignParameters, options *KeyVaultClientSignOptions) (*policy.Request, error) { +// importKeyCreateRequest creates the ImportKey request. +func (client *KeyVaultClient) importKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, parameters KeyImportParameters, options *KeyVaultClientImportKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{key-name}/{key-version}/sign" + urlPath := "/keys/{key-name}" if keyName == "" { return nil, errors.New("parameter keyName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - if keyVersion == "" { - return nil, errors.New("parameter keyVersion cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) + req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) } -// signHandleResponse handles the Sign response. -func (client *KeyVaultClient) signHandleResponse(resp *http.Response) (KeyVaultClientSignResponse, error) { - result := KeyVaultClientSignResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyOperationResult); err != nil { - return KeyVaultClientSignResponse{}, err +// importKeyHandleResponse handles the ImportKey response. +func (client *KeyVaultClient) importKeyHandleResponse(resp *http.Response) (KeyVaultClientImportKeyResponse, error) { + result := KeyVaultClientImportKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { + return KeyVaultClientImportKeyResponse{}, err } return result, nil } -// signHandleError handles the Sign error response. -func (client *KeyVaultClient) signHandleError(resp *http.Response) error { +// importKeyHandleError handles the ImportKey error response. +func (client *KeyVaultClient) importKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4352,60 +891,47 @@ func (client *KeyVaultClient) signHandleError(resp *http.Response) error { return runtime.NewResponseError(&errType, resp) } -// UnwrapKey - The UNWRAP operation supports decryption of a symmetric key using the target key encryption key. This operation is the reverse of the WRAP -// operation. The UNWRAP operation applies to asymmetric and -// symmetric keys stored in Azure Key Vault since it uses the private portion of the key. This operation requires the keys/unwrapKey permission. +// PurgeDeletedKey - The Purge Deleted Key operation is applicable for soft-delete enabled vaults. While the operation can be invoked on any vault, it will +// return an error if invoked on a non soft-delete enabled vault. +// This operation requires the keys/purge permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UnwrapKey(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyOperationsParameters, options *KeyVaultClientUnwrapKeyOptions) (KeyVaultClientUnwrapKeyResponse, error) { - req, err := client.unwrapKeyCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) +func (client *KeyVaultClient) PurgeDeletedKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientPurgeDeletedKeyOptions) (KeyVaultClientPurgeDeletedKeyResponse, error) { + req, err := client.purgeDeletedKeyCreateRequest(ctx, vaultBaseURL, keyName, options) if err != nil { - return KeyVaultClientUnwrapKeyResponse{}, err + return KeyVaultClientPurgeDeletedKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUnwrapKeyResponse{}, err + return KeyVaultClientPurgeDeletedKeyResponse{}, err } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUnwrapKeyResponse{}, client.unwrapKeyHandleError(resp) + if !runtime.HasStatusCode(resp, http.StatusNoContent) { + return KeyVaultClientPurgeDeletedKeyResponse{}, client.purgeDeletedKeyHandleError(resp) } - return client.unwrapKeyHandleResponse(resp) + return KeyVaultClientPurgeDeletedKeyResponse{RawResponse: resp}, nil } -// unwrapKeyCreateRequest creates the UnwrapKey request. -func (client *KeyVaultClient) unwrapKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyOperationsParameters, options *KeyVaultClientUnwrapKeyOptions) (*policy.Request, error) { +// purgeDeletedKeyCreateRequest creates the PurgeDeletedKey request. +func (client *KeyVaultClient) purgeDeletedKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientPurgeDeletedKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{key-name}/{key-version}/unwrapkey" + urlPath := "/deletedkeys/{key-name}" if keyName == "" { return nil, errors.New("parameter keyName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - if keyVersion == "" { - return nil, errors.New("parameter keyVersion cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) + req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// unwrapKeyHandleResponse handles the UnwrapKey response. -func (client *KeyVaultClient) unwrapKeyHandleResponse(resp *http.Response) (KeyVaultClientUnwrapKeyResponse, error) { - result := KeyVaultClientUnwrapKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyOperationResult); err != nil { - return KeyVaultClientUnwrapKeyResponse{}, err - } - return result, nil + return req, nil } -// unwrapKeyHandleError handles the UnwrapKey error response. -func (client *KeyVaultClient) unwrapKeyHandleError(resp *http.Response) error { +// purgeDeletedKeyHandleError handles the PurgeDeletedKey error response. +func (client *KeyVaultClient) purgeDeletedKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4417,60 +943,56 @@ func (client *KeyVaultClient) unwrapKeyHandleError(resp *http.Response) error { return runtime.NewResponseError(&errType, resp) } -// UpdateCertificate - The UpdateCertificate operation applies the specified update on the given certificate; the only elements updated are the certificate's -// attributes. This operation requires the certificates/update -// permission. +// RecoverDeletedKey - The Recover Deleted Key operation is applicable for deleted keys in soft-delete enabled vaults. It recovers the deleted key back +// to its latest version under /keys. An attempt to recover an non-deleted +// key will return an error. Consider this the inverse of the delete operation on soft-delete enabled vaults. This operation requires the keys/recover permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UpdateCertificate(ctx context.Context, vaultBaseURL string, certificateName string, certificateVersion string, parameters CertificateUpdateParameters, options *KeyVaultClientUpdateCertificateOptions) (KeyVaultClientUpdateCertificateResponse, error) { - req, err := client.updateCertificateCreateRequest(ctx, vaultBaseURL, certificateName, certificateVersion, parameters, options) +func (client *KeyVaultClient) RecoverDeletedKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientRecoverDeletedKeyOptions) (KeyVaultClientRecoverDeletedKeyResponse, error) { + req, err := client.recoverDeletedKeyCreateRequest(ctx, vaultBaseURL, keyName, options) if err != nil { - return KeyVaultClientUpdateCertificateResponse{}, err + return KeyVaultClientRecoverDeletedKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUpdateCertificateResponse{}, err + return KeyVaultClientRecoverDeletedKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateCertificateResponse{}, client.updateCertificateHandleError(resp) + return KeyVaultClientRecoverDeletedKeyResponse{}, client.recoverDeletedKeyHandleError(resp) } - return client.updateCertificateHandleResponse(resp) + return client.recoverDeletedKeyHandleResponse(resp) } -// updateCertificateCreateRequest creates the UpdateCertificate request. -func (client *KeyVaultClient) updateCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, certificateVersion string, parameters CertificateUpdateParameters, options *KeyVaultClientUpdateCertificateOptions) (*policy.Request, error) { +// recoverDeletedKeyCreateRequest creates the RecoverDeletedKey request. +func (client *KeyVaultClient) recoverDeletedKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientRecoverDeletedKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/{certificate-version}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - if certificateVersion == "" { - return nil, errors.New("parameter certificateVersion cannot be empty") + urlPath := "/deletedkeys/{key-name}/recover" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{certificate-version}", url.PathEscape(certificateVersion)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) + return req, nil } -// updateCertificateHandleResponse handles the UpdateCertificate response. -func (client *KeyVaultClient) updateCertificateHandleResponse(resp *http.Response) (KeyVaultClientUpdateCertificateResponse, error) { - result := KeyVaultClientUpdateCertificateResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientUpdateCertificateResponse{}, err +// recoverDeletedKeyHandleResponse handles the RecoverDeletedKey response. +func (client *KeyVaultClient) recoverDeletedKeyHandleResponse(resp *http.Response) (KeyVaultClientRecoverDeletedKeyResponse, error) { + result := KeyVaultClientRecoverDeletedKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { + return KeyVaultClientRecoverDeletedKeyResponse{}, err } return result, nil } -// updateCertificateHandleError handles the UpdateCertificate error response. -func (client *KeyVaultClient) updateCertificateHandleError(resp *http.Response) error { +// recoverDeletedKeyHandleError handles the RecoverDeletedKey error response. +func (client *KeyVaultClient) recoverDeletedKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4482,55 +1004,59 @@ func (client *KeyVaultClient) updateCertificateHandleError(resp *http.Response) return runtime.NewResponseError(&errType, resp) } -// UpdateCertificateIssuer - The UpdateCertificateIssuer operation performs an update on the specified certificate issuer entity. This operation requires -// the certificates/setissuers permission. +// Release - The release key operation is applicable to all key types. The target key must be marked exportable. This operation requires the keys/release +// permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UpdateCertificateIssuer(ctx context.Context, vaultBaseURL string, issuerName string, parameter CertificateIssuerUpdateParameters, options *KeyVaultClientUpdateCertificateIssuerOptions) (KeyVaultClientUpdateCertificateIssuerResponse, error) { - req, err := client.updateCertificateIssuerCreateRequest(ctx, vaultBaseURL, issuerName, parameter, options) +func (client *KeyVaultClient) Release(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyReleaseParameters, options *KeyVaultClientReleaseOptions) (KeyVaultClientReleaseResponse, error) { + req, err := client.releaseCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) if err != nil { - return KeyVaultClientUpdateCertificateIssuerResponse{}, err + return KeyVaultClientReleaseResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUpdateCertificateIssuerResponse{}, err + return KeyVaultClientReleaseResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateCertificateIssuerResponse{}, client.updateCertificateIssuerHandleError(resp) + return KeyVaultClientReleaseResponse{}, client.releaseHandleError(resp) } - return client.updateCertificateIssuerHandleResponse(resp) + return client.releaseHandleResponse(resp) } -// updateCertificateIssuerCreateRequest creates the UpdateCertificateIssuer request. -func (client *KeyVaultClient) updateCertificateIssuerCreateRequest(ctx context.Context, vaultBaseURL string, issuerName string, parameter CertificateIssuerUpdateParameters, options *KeyVaultClientUpdateCertificateIssuerOptions) (*policy.Request, error) { +// releaseCreateRequest creates the Release request. +func (client *KeyVaultClient) releaseCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyReleaseParameters, options *KeyVaultClientReleaseOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers/{issuer-name}" - if issuerName == "" { - return nil, errors.New("parameter issuerName cannot be empty") + urlPath := "/keys/{key-name}/{key-version}/release" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + // if keyVersion == "" { + // return nil, errors.New("parameter keyVersion cannot be empty") + // } + urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameter) + return req, runtime.MarshalAsJSON(req, parameters) } -// updateCertificateIssuerHandleResponse handles the UpdateCertificateIssuer response. -func (client *KeyVaultClient) updateCertificateIssuerHandleResponse(resp *http.Response) (KeyVaultClientUpdateCertificateIssuerResponse, error) { - result := KeyVaultClientUpdateCertificateIssuerResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { - return KeyVaultClientUpdateCertificateIssuerResponse{}, err +// releaseHandleResponse handles the Release response. +func (client *KeyVaultClient) releaseHandleResponse(resp *http.Response) (KeyVaultClientReleaseResponse, error) { + result := KeyVaultClientReleaseResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyReleaseResult); err != nil { + return KeyVaultClientReleaseResponse{}, err } return result, nil } -// updateCertificateIssuerHandleError handles the UpdateCertificateIssuer error response. -func (client *KeyVaultClient) updateCertificateIssuerHandleError(resp *http.Response) error { +// releaseHandleError handles the Release error response. +func (client *KeyVaultClient) releaseHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4542,54 +1068,58 @@ func (client *KeyVaultClient) updateCertificateIssuerHandleError(resp *http.Resp return runtime.NewResponseError(&errType, resp) } -// UpdateCertificateOperation - Updates a certificate creation operation that is already in progress. This operation requires the certificates/update permission. +// RestoreKey - Imports a previously backed up key into Azure Key Vault, restoring the key, its key identifier, attributes and access control policies. +// The RESTORE operation may be used to import a previously backed +// up key. Individual versions of a key cannot be restored. The key is restored in its entirety with the same key name as it had when it was backed up. +// If the key name is not available in the target Key +// Vault, the RESTORE operation will be rejected. While the key name is retained during restore, the final key identifier will change if the key is restored +// to a different vault. Restore will restore all +// versions and preserve version identifiers. The RESTORE operation is subject to security constraints: The target Key Vault must be owned by the same Microsoft +// Azure Subscription as the source Key Vault +// The user must have RESTORE permission in the target Key Vault. This operation requires the keys/restore permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UpdateCertificateOperation(ctx context.Context, vaultBaseURL string, certificateName string, certificateOperation CertificateOperationUpdateParameter, options *KeyVaultClientUpdateCertificateOperationOptions) (KeyVaultClientUpdateCertificateOperationResponse, error) { - req, err := client.updateCertificateOperationCreateRequest(ctx, vaultBaseURL, certificateName, certificateOperation, options) +func (client *KeyVaultClient) RestoreKey(ctx context.Context, vaultBaseURL string, parameters KeyRestoreParameters, options *KeyVaultClientRestoreKeyOptions) (KeyVaultClientRestoreKeyResponse, error) { + req, err := client.restoreKeyCreateRequest(ctx, vaultBaseURL, parameters, options) if err != nil { - return KeyVaultClientUpdateCertificateOperationResponse{}, err + return KeyVaultClientRestoreKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUpdateCertificateOperationResponse{}, err + return KeyVaultClientRestoreKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateCertificateOperationResponse{}, client.updateCertificateOperationHandleError(resp) + return KeyVaultClientRestoreKeyResponse{}, client.restoreKeyHandleError(resp) } - return client.updateCertificateOperationHandleResponse(resp) + return client.restoreKeyHandleResponse(resp) } -// updateCertificateOperationCreateRequest creates the UpdateCertificateOperation request. -func (client *KeyVaultClient) updateCertificateOperationCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, certificateOperation CertificateOperationUpdateParameter, options *KeyVaultClientUpdateCertificateOperationOptions) (*policy.Request, error) { +// restoreKeyCreateRequest creates the RestoreKey request. +func (client *KeyVaultClient) restoreKeyCreateRequest(ctx context.Context, vaultBaseURL string, parameters KeyRestoreParameters, options *KeyVaultClientRestoreKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/pending" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) + urlPath := "/keys/restore" + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, certificateOperation) + return req, runtime.MarshalAsJSON(req, parameters) } -// updateCertificateOperationHandleResponse handles the UpdateCertificateOperation response. -func (client *KeyVaultClient) updateCertificateOperationHandleResponse(resp *http.Response) (KeyVaultClientUpdateCertificateOperationResponse, error) { - result := KeyVaultClientUpdateCertificateOperationResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { - return KeyVaultClientUpdateCertificateOperationResponse{}, err +// restoreKeyHandleResponse handles the RestoreKey response. +func (client *KeyVaultClient) restoreKeyHandleResponse(resp *http.Response) (KeyVaultClientRestoreKeyResponse, error) { + result := KeyVaultClientRestoreKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { + return KeyVaultClientRestoreKeyResponse{}, err } return result, nil } -// updateCertificateOperationHandleError handles the UpdateCertificateOperation error response. -func (client *KeyVaultClient) updateCertificateOperationHandleError(resp *http.Response) error { +// restoreKeyHandleError handles the RestoreKey error response. +func (client *KeyVaultClient) restoreKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4601,54 +1131,54 @@ func (client *KeyVaultClient) updateCertificateOperationHandleError(resp *http.R return runtime.NewResponseError(&errType, resp) } -// UpdateCertificatePolicy - Set specified members in the certificate policy. Leave others as null. This operation requires the certificates/update permission. +// RotateKey - The operation will rotate the key based on the key policy. It requires the keys/rotate permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UpdateCertificatePolicy(ctx context.Context, vaultBaseURL string, certificateName string, certificatePolicy CertificatePolicy, options *KeyVaultClientUpdateCertificatePolicyOptions) (KeyVaultClientUpdateCertificatePolicyResponse, error) { - req, err := client.updateCertificatePolicyCreateRequest(ctx, vaultBaseURL, certificateName, certificatePolicy, options) +func (client *KeyVaultClient) RotateKey(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientRotateKeyOptions) (KeyVaultClientRotateKeyResponse, error) { + req, err := client.rotateKeyCreateRequest(ctx, vaultBaseURL, keyName, options) if err != nil { - return KeyVaultClientUpdateCertificatePolicyResponse{}, err + return KeyVaultClientRotateKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUpdateCertificatePolicyResponse{}, err + return KeyVaultClientRotateKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateCertificatePolicyResponse{}, client.updateCertificatePolicyHandleError(resp) + return KeyVaultClientRotateKeyResponse{}, client.rotateKeyHandleError(resp) } - return client.updateCertificatePolicyHandleResponse(resp) + return client.rotateKeyHandleResponse(resp) } -// updateCertificatePolicyCreateRequest creates the UpdateCertificatePolicy request. -func (client *KeyVaultClient) updateCertificatePolicyCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, certificatePolicy CertificatePolicy, options *KeyVaultClientUpdateCertificatePolicyOptions) (*policy.Request, error) { +// rotateKeyCreateRequest creates the RotateKey request. +func (client *KeyVaultClient) rotateKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, options *KeyVaultClientRotateKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/policy" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") + urlPath := "/keys/{key-name}/rotate" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, certificatePolicy) + return req, nil } -// updateCertificatePolicyHandleResponse handles the UpdateCertificatePolicy response. -func (client *KeyVaultClient) updateCertificatePolicyHandleResponse(resp *http.Response) (KeyVaultClientUpdateCertificatePolicyResponse, error) { - result := KeyVaultClientUpdateCertificatePolicyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificatePolicy); err != nil { - return KeyVaultClientUpdateCertificatePolicyResponse{}, err +// rotateKeyHandleResponse handles the RotateKey response. +func (client *KeyVaultClient) rotateKeyHandleResponse(resp *http.Response) (KeyVaultClientRotateKeyResponse, error) { + result := KeyVaultClientRotateKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { + return KeyVaultClientRotateKeyResponse{}, err } return result, nil } -// updateCertificatePolicyHandleError handles the UpdateCertificatePolicy error response. -func (client *KeyVaultClient) updateCertificatePolicyHandleError(resp *http.Response) error { +// rotateKeyHandleError handles the RotateKey error response. +func (client *KeyVaultClient) rotateKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4660,59 +1190,59 @@ func (client *KeyVaultClient) updateCertificatePolicyHandleError(resp *http.Resp return runtime.NewResponseError(&errType, resp) } -// UpdateKey - In order to perform this operation, the key must already exist in the Key Vault. Note: The cryptographic material of a key itself cannot -// be changed. This operation requires the keys/update permission. +// Sign - The SIGN operation is applicable to asymmetric and symmetric keys stored in Azure Key Vault since this operation uses the private portion of the +// key. This operation requires the keys/sign permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UpdateKey(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyUpdateParameters, options *KeyVaultClientUpdateKeyOptions) (KeyVaultClientUpdateKeyResponse, error) { - req, err := client.updateKeyCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) +func (client *KeyVaultClient) Sign(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeySignParameters, options *KeyVaultClientSignOptions) (KeyVaultClientSignResponse, error) { + req, err := client.signCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) if err != nil { - return KeyVaultClientUpdateKeyResponse{}, err + return KeyVaultClientSignResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUpdateKeyResponse{}, err + return KeyVaultClientSignResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateKeyResponse{}, client.updateKeyHandleError(resp) + return KeyVaultClientSignResponse{}, client.signHandleError(resp) } - return client.updateKeyHandleResponse(resp) + return client.signHandleResponse(resp) } -// updateKeyCreateRequest creates the UpdateKey request. -func (client *KeyVaultClient) updateKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyUpdateParameters, options *KeyVaultClientUpdateKeyOptions) (*policy.Request, error) { +// signCreateRequest creates the Sign request. +func (client *KeyVaultClient) signCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeySignParameters, options *KeyVaultClientSignOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/keys/{key-name}/{key-version}" + urlPath := "/keys/{key-name}/{key-version}/sign" if keyName == "" { return nil, errors.New("parameter keyName cannot be empty") } urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) - // if keyVersion == "" { - // return nil, errors.New("parameter keyVersion cannot be empty") - // } + if keyVersion == "" { + return nil, errors.New("parameter keyVersion cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) } -// updateKeyHandleResponse handles the UpdateKey response. -func (client *KeyVaultClient) updateKeyHandleResponse(resp *http.Response) (KeyVaultClientUpdateKeyResponse, error) { - result := KeyVaultClientUpdateKeyResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { - return KeyVaultClientUpdateKeyResponse{}, err +// signHandleResponse handles the Sign response. +func (client *KeyVaultClient) signHandleResponse(resp *http.Response) (KeyVaultClientSignResponse, error) { + result := KeyVaultClientSignResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyOperationResult); err != nil { + return KeyVaultClientSignResponse{}, err } return result, nil } -// updateKeyHandleError handles the UpdateKey error response. -func (client *KeyVaultClient) updateKeyHandleError(resp *http.Response) error { +// signHandleError handles the Sign error response. +func (client *KeyVaultClient) signHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4724,58 +1254,60 @@ func (client *KeyVaultClient) updateKeyHandleError(resp *http.Response) error { return runtime.NewResponseError(&errType, resp) } -// UpdateSasDefinition - Updates the specified attributes associated with the given SAS definition. This operation requires the storage/setsas permission. +// UnwrapKey - The UNWRAP operation supports decryption of a symmetric key using the target key encryption key. This operation is the reverse of the WRAP +// operation. The UNWRAP operation applies to asymmetric and +// symmetric keys stored in Azure Key Vault since it uses the private portion of the key. This operation requires the keys/unwrapKey permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UpdateSasDefinition(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, parameters SasDefinitionUpdateParameters, options *KeyVaultClientUpdateSasDefinitionOptions) (KeyVaultClientUpdateSasDefinitionResponse, error) { - req, err := client.updateSasDefinitionCreateRequest(ctx, vaultBaseURL, storageAccountName, sasDefinitionName, parameters, options) +func (client *KeyVaultClient) UnwrapKey(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyOperationsParameters, options *KeyVaultClientUnwrapKeyOptions) (KeyVaultClientUnwrapKeyResponse, error) { + req, err := client.unwrapKeyCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) if err != nil { - return KeyVaultClientUpdateSasDefinitionResponse{}, err + return KeyVaultClientUnwrapKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUpdateSasDefinitionResponse{}, err + return KeyVaultClientUnwrapKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateSasDefinitionResponse{}, client.updateSasDefinitionHandleError(resp) + return KeyVaultClientUnwrapKeyResponse{}, client.unwrapKeyHandleError(resp) } - return client.updateSasDefinitionHandleResponse(resp) + return client.unwrapKeyHandleResponse(resp) } -// updateSasDefinitionCreateRequest creates the UpdateSasDefinition request. -func (client *KeyVaultClient) updateSasDefinitionCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, sasDefinitionName string, parameters SasDefinitionUpdateParameters, options *KeyVaultClientUpdateSasDefinitionOptions) (*policy.Request, error) { +// unwrapKeyCreateRequest creates the UnwrapKey request. +func (client *KeyVaultClient) unwrapKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyOperationsParameters, options *KeyVaultClientUnwrapKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}/sas/{sas-definition-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") + urlPath := "/keys/{key-name}/{key-version}/unwrapkey" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - if sasDefinitionName == "" { - return nil, errors.New("parameter sasDefinitionName cannot be empty") + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + if keyVersion == "" { + return nil, errors.New("parameter keyVersion cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{sas-definition-name}", url.PathEscape(sasDefinitionName)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) } -// updateSasDefinitionHandleResponse handles the UpdateSasDefinition response. -func (client *KeyVaultClient) updateSasDefinitionHandleResponse(resp *http.Response) (KeyVaultClientUpdateSasDefinitionResponse, error) { - result := KeyVaultClientUpdateSasDefinitionResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SasDefinitionBundle); err != nil { - return KeyVaultClientUpdateSasDefinitionResponse{}, err +// unwrapKeyHandleResponse handles the UnwrapKey response. +func (client *KeyVaultClient) unwrapKeyHandleResponse(resp *http.Response) (KeyVaultClientUnwrapKeyResponse, error) { + result := KeyVaultClientUnwrapKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyOperationResult); err != nil { + return KeyVaultClientUnwrapKeyResponse{}, err } return result, nil } -// updateSasDefinitionHandleError handles the UpdateSasDefinition error response. -func (client *KeyVaultClient) updateSasDefinitionHandleError(resp *http.Response) error { +// unwrapKeyHandleError handles the UnwrapKey error response. +func (client *KeyVaultClient) unwrapKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4787,60 +1319,59 @@ func (client *KeyVaultClient) updateSasDefinitionHandleError(resp *http.Response return runtime.NewResponseError(&errType, resp) } -// UpdateSecret - The UPDATE operation changes specified attributes of an existing stored secret. Attributes that are not specified in the request are left -// unchanged. The value of a secret itself cannot be changed. -// This operation requires the secrets/set permission. +// UpdateKey - In order to perform this operation, the key must already exist in the Key Vault. Note: The cryptographic material of a key itself cannot +// be changed. This operation requires the keys/update permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UpdateSecret(ctx context.Context, vaultBaseURL string, secretName string, secretVersion string, parameters SecretUpdateParameters, options *KeyVaultClientUpdateSecretOptions) (KeyVaultClientUpdateSecretResponse, error) { - req, err := client.updateSecretCreateRequest(ctx, vaultBaseURL, secretName, secretVersion, parameters, options) +func (client *KeyVaultClient) UpdateKey(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyUpdateParameters, options *KeyVaultClientUpdateKeyOptions) (KeyVaultClientUpdateKeyResponse, error) { + req, err := client.updateKeyCreateRequest(ctx, vaultBaseURL, keyName, keyVersion, parameters, options) if err != nil { - return KeyVaultClientUpdateSecretResponse{}, err + return KeyVaultClientUpdateKeyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUpdateSecretResponse{}, err + return KeyVaultClientUpdateKeyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateSecretResponse{}, client.updateSecretHandleError(resp) + return KeyVaultClientUpdateKeyResponse{}, client.updateKeyHandleError(resp) } - return client.updateSecretHandleResponse(resp) + return client.updateKeyHandleResponse(resp) } -// updateSecretCreateRequest creates the UpdateSecret request. -func (client *KeyVaultClient) updateSecretCreateRequest(ctx context.Context, vaultBaseURL string, secretName string, secretVersion string, parameters SecretUpdateParameters, options *KeyVaultClientUpdateSecretOptions) (*policy.Request, error) { +// updateKeyCreateRequest creates the UpdateKey request. +func (client *KeyVaultClient) updateKeyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string, parameters KeyUpdateParameters, options *KeyVaultClientUpdateKeyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/secrets/{secret-name}/{secret-version}" - if secretName == "" { - return nil, errors.New("parameter secretName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{secret-name}", url.PathEscape(secretName)) - if secretVersion == "" { - return nil, errors.New("parameter secretVersion cannot be empty") + urlPath := "/keys/{key-name}/{key-version}" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{secret-version}", url.PathEscape(secretVersion)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + // if keyVersion == "" { + // return nil, errors.New("parameter keyVersion cannot be empty") + // } + urlPath = strings.ReplaceAll(urlPath, "{key-version}", url.PathEscape(keyVersion)) req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) } -// updateSecretHandleResponse handles the UpdateSecret response. -func (client *KeyVaultClient) updateSecretHandleResponse(resp *http.Response) (KeyVaultClientUpdateSecretResponse, error) { - result := KeyVaultClientUpdateSecretResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.SecretBundle); err != nil { - return KeyVaultClientUpdateSecretResponse{}, err +// updateKeyHandleResponse handles the UpdateKey response. +func (client *KeyVaultClient) updateKeyHandleResponse(resp *http.Response) (KeyVaultClientUpdateKeyResponse, error) { + result := KeyVaultClientUpdateKeyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyBundle); err != nil { + return KeyVaultClientUpdateKeyResponse{}, err } return result, nil } -// updateSecretHandleError handles the UpdateSecret error response. -func (client *KeyVaultClient) updateSecretHandleError(resp *http.Response) error { +// updateKeyHandleError handles the UpdateKey error response. +func (client *KeyVaultClient) updateKeyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4852,54 +1383,54 @@ func (client *KeyVaultClient) updateSecretHandleError(resp *http.Response) error return runtime.NewResponseError(&errType, resp) } -// UpdateStorageAccount - Updates the specified attributes associated with the given storage account. This operation requires the storage/set/update permission. +// UpdateKeyRotationPolicy - Set specified members in the key policy. Leave others as undefined. This operation requires the keys/update permission. // If the operation fails it returns the *KeyVaultError error type. -func (client *KeyVaultClient) UpdateStorageAccount(ctx context.Context, vaultBaseURL string, storageAccountName string, parameters StorageAccountUpdateParameters, options *KeyVaultClientUpdateStorageAccountOptions) (KeyVaultClientUpdateStorageAccountResponse, error) { - req, err := client.updateStorageAccountCreateRequest(ctx, vaultBaseURL, storageAccountName, parameters, options) +func (client *KeyVaultClient) UpdateKeyRotationPolicy(ctx context.Context, vaultBaseURL string, keyName string, keyRotationPolicy KeyRotationPolicy, options *KeyVaultClientUpdateKeyRotationPolicyOptions) (KeyVaultClientUpdateKeyRotationPolicyResponse, error) { + req, err := client.updateKeyRotationPolicyCreateRequest(ctx, vaultBaseURL, keyName, keyRotationPolicy, options) if err != nil { - return KeyVaultClientUpdateStorageAccountResponse{}, err + return KeyVaultClientUpdateKeyRotationPolicyResponse{}, err } resp, err := client.Con.Pipeline().Do(req) if err != nil { - return KeyVaultClientUpdateStorageAccountResponse{}, err + return KeyVaultClientUpdateKeyRotationPolicyResponse{}, err } if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateStorageAccountResponse{}, client.updateStorageAccountHandleError(resp) + return KeyVaultClientUpdateKeyRotationPolicyResponse{}, client.updateKeyRotationPolicyHandleError(resp) } - return client.updateStorageAccountHandleResponse(resp) + return client.updateKeyRotationPolicyHandleResponse(resp) } -// updateStorageAccountCreateRequest creates the UpdateStorageAccount request. -func (client *KeyVaultClient) updateStorageAccountCreateRequest(ctx context.Context, vaultBaseURL string, storageAccountName string, parameters StorageAccountUpdateParameters, options *KeyVaultClientUpdateStorageAccountOptions) (*policy.Request, error) { +// updateKeyRotationPolicyCreateRequest creates the UpdateKeyRotationPolicy request. +func (client *KeyVaultClient) updateKeyRotationPolicyCreateRequest(ctx context.Context, vaultBaseURL string, keyName string, keyRotationPolicy KeyRotationPolicy, options *KeyVaultClientUpdateKeyRotationPolicyOptions) (*policy.Request, error) { host := "{vaultBaseUrl}" host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/storage/{storage-account-name}" - if storageAccountName == "" { - return nil, errors.New("parameter storageAccountName cannot be empty") + urlPath := "/keys/{key-name}/rotationpolicy" + if keyName == "" { + return nil, errors.New("parameter keyName cannot be empty") } - urlPath = strings.ReplaceAll(urlPath, "{storage-account-name}", url.PathEscape(storageAccountName)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) + urlPath = strings.ReplaceAll(urlPath, "{key-name}", url.PathEscape(keyName)) + req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) if err != nil { return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) + return req, runtime.MarshalAsJSON(req, keyRotationPolicy) } -// updateStorageAccountHandleResponse handles the UpdateStorageAccount response. -func (client *KeyVaultClient) updateStorageAccountHandleResponse(resp *http.Response) (KeyVaultClientUpdateStorageAccountResponse, error) { - result := KeyVaultClientUpdateStorageAccountResponse{RawResponse: resp} - if err := runtime.UnmarshalAsJSON(resp, &result.StorageBundle); err != nil { - return KeyVaultClientUpdateStorageAccountResponse{}, err +// updateKeyRotationPolicyHandleResponse handles the UpdateKeyRotationPolicy response. +func (client *KeyVaultClient) updateKeyRotationPolicyHandleResponse(resp *http.Response) (KeyVaultClientUpdateKeyRotationPolicyResponse, error) { + result := KeyVaultClientUpdateKeyRotationPolicyResponse{RawResponse: resp} + if err := runtime.UnmarshalAsJSON(resp, &result.KeyRotationPolicy); err != nil { + return KeyVaultClientUpdateKeyRotationPolicyResponse{}, err } return result, nil } -// updateStorageAccountHandleError handles the UpdateStorageAccount error response. -func (client *KeyVaultClient) updateStorageAccountHandleError(resp *http.Response) error { +// updateKeyRotationPolicyHandleError handles the UpdateKeyRotationPolicy error response. +func (client *KeyVaultClient) updateKeyRotationPolicyHandleError(resp *http.Response) error { body, err := runtime.Payload(resp) if err != nil { return runtime.NewResponseError(err, resp) @@ -4950,7 +1481,7 @@ func (client *KeyVaultClient) verifyCreateRequest(ctx context.Context, vaultBase return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) @@ -5017,7 +1548,7 @@ func (client *KeyVaultClient) wrapKeyCreateRequest(ctx context.Context, vaultBas return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) diff --git a/sdk/keyvault/azkeys/internal/models.go b/sdk/keyvault/azkeys/internal/models.go index d645aa28bc5c..3a844ba3df6d 100644 --- a/sdk/keyvault/azkeys/internal/models.go +++ b/sdk/keyvault/azkeys/internal/models.go @@ -3,42 +3,19 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal import ( "encoding/json" - "reflect" - "time" - "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "reflect" + "time" ) -// Action - The action that will be executed. -type Action struct { - // The type of the action. - ActionType *ActionType `json:"action_type,omitempty"` -} - -// AdministratorDetails - Details of the organization administrator of the certificate issuer. -type AdministratorDetails struct { - // Email address. - EmailAddress *string `json:"email,omitempty"` - - // First name. - FirstName *string `json:"first_name,omitempty"` - - // Last name. - LastName *string `json:"last_name,omitempty"` - - // Phone number. - Phone *string `json:"phone,omitempty"` -} - // Attributes - The object attributes managed by the KeyVault service. type Attributes struct { // Determines whether the object is enabled. @@ -59,7 +36,8 @@ type Attributes struct { // MarshalJSON implements the json.Marshaller interface for type Attributes. func (a Attributes) MarshalJSON() ([]byte, error) { - objectMap := a.marshalInternal() + objectMap := make(map[string]interface{}) + a.marshalInternal(objectMap) return json.Marshal(objectMap) } @@ -72,14 +50,12 @@ func (a *Attributes) UnmarshalJSON(data []byte) error { return a.unmarshalInternal(rawMsg) } -func (a Attributes) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) +func (a Attributes) marshalInternal(objectMap map[string]interface{}) { populate(objectMap, "created", (*timeUnix)(a.Created)) populate(objectMap, "enabled", a.Enabled) populate(objectMap, "exp", (*timeUnix)(a.Expires)) populate(objectMap, "nbf", (*timeUnix)(a.NotBefore)) populate(objectMap, "updated", (*timeUnix)(a.Updated)) - return objectMap } func (a *Attributes) unmarshalInternal(rawMsg map[string]json.RawMessage) error { @@ -117,39 +93,6 @@ func (a *Attributes) unmarshalInternal(rawMsg map[string]json.RawMessage) error return nil } -// BackupCertificateResult - The backup certificate result, containing the backup blob. -type BackupCertificateResult struct { - // READ-ONLY; The backup blob containing the backed up certificate. - Value []byte `json:"value,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type BackupCertificateResult. -func (b BackupCertificateResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", b.Value, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type BackupCertificateResult. -func (b *BackupCertificateResult) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &b.Value, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - // BackupKeyResult - The backup key result, containing the backup blob. type BackupKeyResult struct { // READ-ONLY; The backup blob containing the backed up key. @@ -183,94 +126,47 @@ func (b *BackupKeyResult) UnmarshalJSON(data []byte) error { return nil } -// BackupSecretResult - The backup secret result, containing the backup blob. -type BackupSecretResult struct { - // READ-ONLY; The backup blob containing the backed up secret. - Value []byte `json:"value,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type BackupSecretResult. -func (b BackupSecretResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", b.Value, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type BackupSecretResult. -func (b *BackupSecretResult) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &b.Value, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} +type CertificateInfoObject struct { + // REQUIRED; Certificates needed from customer + Certificates []*SecurityDomainJSONWebKey `json:"certificates,omitempty"` -// BackupStorageResult - The backup storage result, containing the backup blob. -type BackupStorageResult struct { - // READ-ONLY; The backup blob containing the backed up storage account. - Value []byte `json:"value,omitempty" azure:"ro"` + // Customer to specify the number of certificates (minimum 2 and maximum 10) to restore Security Domain + Required *int32 `json:"required,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type BackupStorageResult. -func (b BackupStorageResult) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type CertificateInfoObject. +func (c CertificateInfoObject) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", b.Value, runtime.Base64URLFormat) + populate(objectMap, "certificates", c.Certificates) + populate(objectMap, "required", c.Required) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type BackupStorageResult. -func (b *BackupStorageResult) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &b.Value, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} +// DeletedKeyBundle - A DeletedKeyBundle consisting of a WebKey plus its Attributes and deletion info +type DeletedKeyBundle struct { + KeyBundle + // The url of the recovery object, used to identify and recover the deleted key. + RecoveryID *string `json:"recoveryId,omitempty"` -// CertificateAttributes - The certificate management attributes. -type CertificateAttributes struct { - Attributes - // READ-ONLY; softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. - RecoverableDays *int32 `json:"recoverableDays,omitempty" azure:"ro"` + // READ-ONLY; The time when the key was deleted, in UTC + DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` - // READ-ONLY; Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate - // can be permanently deleted by a privileged user; otherwise, - // only the system can purge the certificate, at the end of the retention interval. - RecoveryLevel *DeletionRecoveryLevel `json:"recoveryLevel,omitempty" azure:"ro"` + // READ-ONLY; The time when the key is scheduled to be purged, in UTC + ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type CertificateAttributes. -func (c CertificateAttributes) MarshalJSON() ([]byte, error) { - objectMap := c.Attributes.marshalInternal() - populate(objectMap, "recoverableDays", c.RecoverableDays) - populate(objectMap, "recoveryLevel", c.RecoveryLevel) +// MarshalJSON implements the json.Marshaller interface for type DeletedKeyBundle. +func (d DeletedKeyBundle) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + d.KeyBundle.marshalInternal(objectMap) + populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) + populate(objectMap, "recoveryId", d.RecoveryID) + populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateAttributes. -func (c *CertificateAttributes) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedKeyBundle. +func (d *DeletedKeyBundle) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -278,304 +174,273 @@ func (c *CertificateAttributes) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "recoverableDays": - err = unpopulate(val, &c.RecoverableDays) + case "deletedDate": + var aux timeUnix + err = unpopulate(val, &aux) + d.DeletedDate = (*time.Time)(&aux) delete(rawMsg, key) - case "recoveryLevel": - err = unpopulate(val, &c.RecoveryLevel) + case "recoveryId": + err = unpopulate(val, &d.RecoveryID) + delete(rawMsg, key) + case "scheduledPurgeDate": + var aux timeUnix + err = unpopulate(val, &aux) + d.ScheduledPurgeDate = (*time.Time)(&aux) delete(rawMsg, key) } if err != nil { return err } } - return c.Attributes.unmarshalInternal(rawMsg) + if err := d.KeyBundle.unmarshalInternal(rawMsg); err != nil { + return err + } + return nil } -// CertificateBundle - A certificate bundle consists of a certificate (X509) plus its attributes. -type CertificateBundle struct { - // The certificate attributes. - Attributes *CertificateAttributes `json:"attributes,omitempty"` - - // CER contents of x509 certificate. - Cer []byte `json:"cer,omitempty"` - - // The content type of the secret. - ContentType *string `json:"contentType,omitempty"` - - // Application specific metadata in the form of key-value pairs - Tags map[string]*string `json:"tags,omitempty"` - - // READ-ONLY; The certificate id. - ID *string `json:"id,omitempty" azure:"ro"` - - // READ-ONLY; The key id. - Kid *string `json:"kid,omitempty" azure:"ro"` - - // READ-ONLY; The management policy. - Policy *CertificatePolicy `json:"policy,omitempty" azure:"ro"` +// DeletedKeyItem - The deleted key item containing the deleted key metadata and information about deletion. +type DeletedKeyItem struct { + KeyItem + // The url of the recovery object, used to identify and recover the deleted key. + RecoveryID *string `json:"recoveryId,omitempty"` - // READ-ONLY; The secret id. - Sid *string `json:"sid,omitempty" azure:"ro"` + // READ-ONLY; The time when the key was deleted, in UTC + DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` - // READ-ONLY; Thumbprint of the certificate. - X509Thumbprint []byte `json:"x5t,omitempty" azure:"ro"` + // READ-ONLY; The time when the key is scheduled to be purged, in UTC + ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type CertificateBundle. -func (c CertificateBundle) MarshalJSON() ([]byte, error) { - objectMap := c.marshalInternal() +// MarshalJSON implements the json.Marshaller interface for type DeletedKeyItem. +func (d DeletedKeyItem) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + d.KeyItem.marshalInternal(objectMap) + populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) + populate(objectMap, "recoveryId", d.RecoveryID) + populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateBundle. -func (c *CertificateBundle) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedKeyItem. +func (d *DeletedKeyItem) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err } - return c.unmarshalInternal(rawMsg) -} - -func (c CertificateBundle) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.Attributes) - populateByteArray(objectMap, "cer", c.Cer, runtime.Base64StdFormat) - populate(objectMap, "contentType", c.ContentType) - populate(objectMap, "id", c.ID) - populate(objectMap, "kid", c.Kid) - populate(objectMap, "policy", c.Policy) - populate(objectMap, "sid", c.Sid) - populate(objectMap, "tags", c.Tags) - populateByteArray(objectMap, "x5t", c.X509Thumbprint, runtime.Base64URLFormat) - return objectMap -} - -func (c *CertificateBundle) unmarshalInternal(rawMsg map[string]json.RawMessage) error { for key, val := range rawMsg { var err error switch key { - case "attributes": - err = unpopulate(val, &c.Attributes) - delete(rawMsg, key) - case "cer": - err = runtime.DecodeByteArray(string(val), &c.Cer, runtime.Base64StdFormat) - delete(rawMsg, key) - case "contentType": - err = unpopulate(val, &c.ContentType) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &c.ID) - delete(rawMsg, key) - case "kid": - err = unpopulate(val, &c.Kid) - delete(rawMsg, key) - case "policy": - err = unpopulate(val, &c.Policy) - delete(rawMsg, key) - case "sid": - err = unpopulate(val, &c.Sid) + case "deletedDate": + var aux timeUnix + err = unpopulate(val, &aux) + d.DeletedDate = (*time.Time)(&aux) delete(rawMsg, key) - case "tags": - err = unpopulate(val, &c.Tags) + case "recoveryId": + err = unpopulate(val, &d.RecoveryID) delete(rawMsg, key) - case "x5t": - err = runtime.DecodeByteArray(string(val), &c.X509Thumbprint, runtime.Base64URLFormat) + case "scheduledPurgeDate": + var aux timeUnix + err = unpopulate(val, &aux) + d.ScheduledPurgeDate = (*time.Time)(&aux) delete(rawMsg, key) } if err != nil { return err } } + if err := d.KeyItem.unmarshalInternal(rawMsg); err != nil { + return err + } return nil } -// CertificateCreateParameters - The certificate create parameters. -type CertificateCreateParameters struct { - // The attributes of the certificate (optional). - CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` - - // The management policy for the certificate. - CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` +// DeletedKeyListResult - A list of keys that have been deleted in this vault. +type DeletedKeyListResult struct { + // READ-ONLY; The URL to get the next set of deleted keys. + NextLink *string `json:"nextLink,omitempty" azure:"ro"` - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` + // READ-ONLY; A response message containing a list of deleted keys in the vault along with a link to the next page of deleted keys + Value []*DeletedKeyItem `json:"value,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type CertificateCreateParameters. -func (c CertificateCreateParameters) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type DeletedKeyListResult. +func (d DeletedKeyListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.CertificateAttributes) - populate(objectMap, "policy", c.CertificatePolicy) - populate(objectMap, "tags", c.Tags) + populate(objectMap, "nextLink", d.NextLink) + populate(objectMap, "value", d.Value) return json.Marshal(objectMap) } -// CertificateImportParameters - The certificate import parameters. -type CertificateImportParameters struct { - // REQUIRED; Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key. - Base64EncodedCertificate *string `json:"value,omitempty"` - - // The attributes of the certificate (optional). - CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` - - // The management policy for the certificate. - CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` +// Error - The key vault server error. +type Error struct { + // READ-ONLY; The error code. + Code *string `json:"code,omitempty" azure:"ro"` - // If the private key in base64EncodedCertificate is encrypted, the password used for encryption. - Password *string `json:"pwd,omitempty"` + // READ-ONLY; The key vault server error. + InnerError *Error `json:"innererror,omitempty" azure:"ro"` - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` + // READ-ONLY; The error message. + Message *string `json:"message,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type CertificateImportParameters. -func (c CertificateImportParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "value", c.Base64EncodedCertificate) - populate(objectMap, "attributes", c.CertificateAttributes) - populate(objectMap, "policy", c.CertificatePolicy) - populate(objectMap, "pwd", c.Password) - populate(objectMap, "tags", c.Tags) - return json.Marshal(objectMap) +// GetRandomBytesRequest - The get random bytes request object. +type GetRandomBytesRequest struct { + // REQUIRED; The requested number of random bytes. + Count *int32 `json:"count,omitempty"` } -type CertificateInfoObject struct { - // REQUIRED; Certificates needed from customer - Certificates []*SecurityDomainCertificateItem `json:"certificates,omitempty"` - - // Customer to specify the number of certificates (minimum 2 and maximum 10) to restore Security Domain - Required *int32 `json:"required,omitempty"` +// HSMSecurityDomainBeginDownloadOptions contains the optional parameters for the HSMSecurityDomain.BeginDownload method. +type HSMSecurityDomainBeginDownloadOptions struct { + // placeholder for future optional parameters } -// MarshalJSON implements the json.Marshaller interface for type CertificateInfoObject. -func (c CertificateInfoObject) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "certificates", c.Certificates) - populate(objectMap, "required", c.Required) - return json.Marshal(objectMap) +// HSMSecurityDomainBeginUploadOptions contains the optional parameters for the HSMSecurityDomain.BeginUpload method. +type HSMSecurityDomainBeginUploadOptions struct { + // placeholder for future optional parameters } -// CertificateIssuerItem - The certificate issuer item containing certificate issuer metadata. -type CertificateIssuerItem struct { - // Certificate Identifier. - ID *string `json:"id,omitempty"` - - // The issuer provider. - Provider *string `json:"provider,omitempty"` +// HSMSecurityDomainDownloadPendingOptions contains the optional parameters for the HSMSecurityDomain.DownloadPending method. +type HSMSecurityDomainDownloadPendingOptions struct { + // placeholder for future optional parameters } -// CertificateIssuerListResult - The certificate issuer list result. -type CertificateIssuerListResult struct { - // READ-ONLY; The URL to get the next set of certificate issuers. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers. - Value []*CertificateIssuerItem `json:"value,omitempty" azure:"ro"` +// HSMSecurityDomainTransferKeyOptions contains the optional parameters for the HSMSecurityDomain.TransferKey method. +type HSMSecurityDomainTransferKeyOptions struct { + // placeholder for future optional parameters } -// MarshalJSON implements the json.Marshaller interface for type CertificateIssuerListResult. -func (c CertificateIssuerListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", c.NextLink) - populate(objectMap, "value", c.Value) - return json.Marshal(objectMap) +// HSMSecurityDomainUploadPendingOptions contains the optional parameters for the HSMSecurityDomain.UploadPending method. +type HSMSecurityDomainUploadPendingOptions struct { + // placeholder for future optional parameters } -// CertificateIssuerSetParameters - The certificate issuer set parameters. -type CertificateIssuerSetParameters struct { - // REQUIRED; The issuer provider. - Provider *string `json:"provider,omitempty"` - - // Attributes of the issuer object. - Attributes *IssuerAttributes `json:"attributes,omitempty"` - - // The credentials to be used for the issuer. - Credentials *IssuerCredentials `json:"credentials,omitempty"` +// JSONWebKey - As of http://tools.ietf.org/html/draft-ietf-jose-json-web-key-18 +type JSONWebKey struct { + // Elliptic curve name. For valid values, see JsonWebKeyCurveName. + Crv *JSONWebKeyCurveName `json:"crv,omitempty"` - // Details of the organization as provided to the issuer. - OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` -} + // RSA private exponent, or the D component of an EC private key. + D []byte `json:"d,omitempty"` -// CertificateIssuerUpdateParameters - The certificate issuer update parameters. -type CertificateIssuerUpdateParameters struct { - // Attributes of the issuer object. - Attributes *IssuerAttributes `json:"attributes,omitempty"` + // RSA private key parameter. + DP []byte `json:"dp,omitempty"` - // The credentials to be used for the issuer. - Credentials *IssuerCredentials `json:"credentials,omitempty"` + // RSA private key parameter. + DQ []byte `json:"dq,omitempty"` - // Details of the organization as provided to the issuer. - OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` + // RSA public exponent. + E []byte `json:"e,omitempty"` - // The issuer provider. - Provider *string `json:"provider,omitempty"` -} + // Symmetric key. + K []byte `json:"k,omitempty"` + KeyOps []*string `json:"key_ops,omitempty"` -// MarshalJSON implements the json.Marshaller interface for type CertificateIssuerUpdateParameters. -func (c CertificateIssuerUpdateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.Attributes) - populate(objectMap, "credentials", c.Credentials) - populate(objectMap, "org_details", c.OrganizationDetails) - populate(objectMap, "provider", c.Provider) - return json.Marshal(objectMap) -} + // Key identifier. + Kid *string `json:"kid,omitempty"` -// CertificateItem - The certificate item containing certificate metadata. -type CertificateItem struct { - // The certificate management attributes. - Attributes *CertificateAttributes `json:"attributes,omitempty"` + // JsonWebKey Key Type (kty), as defined in https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. + Kty *JSONWebKeyType `json:"kty,omitempty"` - // Certificate identifier. - ID *string `json:"id,omitempty"` + // RSA modulus. + N []byte `json:"n,omitempty"` - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` + // RSA secret prime. + P []byte `json:"p,omitempty"` + + // RSA secret prime, with p < q. + Q []byte `json:"q,omitempty"` + + // RSA private key parameter. + QI []byte `json:"qi,omitempty"` + + // Protected Key, used with 'Bring Your Own Key'. + T []byte `json:"key_hsm,omitempty"` + + // X component of an EC public key. + X []byte `json:"x,omitempty"` - // Thumbprint of the certificate. - X509Thumbprint []byte `json:"x5t,omitempty"` + // Y component of an EC public key. + Y []byte `json:"y,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type CertificateItem. -func (c CertificateItem) MarshalJSON() ([]byte, error) { - objectMap := c.marshalInternal() +// MarshalJSON implements the json.Marshaller interface for type JSONWebKey. +func (j JSONWebKey) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "crv", j.Crv) + populateByteArray(objectMap, "d", j.D, runtime.Base64URLFormat) + populateByteArray(objectMap, "dp", j.DP, runtime.Base64URLFormat) + populateByteArray(objectMap, "dq", j.DQ, runtime.Base64URLFormat) + populateByteArray(objectMap, "e", j.E, runtime.Base64URLFormat) + populateByteArray(objectMap, "k", j.K, runtime.Base64URLFormat) + populate(objectMap, "key_ops", j.KeyOps) + populate(objectMap, "kid", j.Kid) + populate(objectMap, "kty", j.Kty) + populateByteArray(objectMap, "n", j.N, runtime.Base64URLFormat) + populateByteArray(objectMap, "p", j.P, runtime.Base64URLFormat) + populateByteArray(objectMap, "q", j.Q, runtime.Base64URLFormat) + populateByteArray(objectMap, "qi", j.QI, runtime.Base64URLFormat) + populateByteArray(objectMap, "key_hsm", j.T, runtime.Base64URLFormat) + populateByteArray(objectMap, "x", j.X, runtime.Base64URLFormat) + populateByteArray(objectMap, "y", j.Y, runtime.Base64URLFormat) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateItem. -func (c *CertificateItem) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type JSONWebKey. +func (j *JSONWebKey) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err } - return c.unmarshalInternal(rawMsg) -} - -func (c CertificateItem) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.Attributes) - populate(objectMap, "id", c.ID) - populate(objectMap, "tags", c.Tags) - populateByteArray(objectMap, "x5t", c.X509Thumbprint, runtime.Base64URLFormat) - return objectMap -} - -func (c *CertificateItem) unmarshalInternal(rawMsg map[string]json.RawMessage) error { for key, val := range rawMsg { var err error switch key { - case "attributes": - err = unpopulate(val, &c.Attributes) + case "crv": + err = unpopulate(val, &j.Crv) delete(rawMsg, key) - case "id": - err = unpopulate(val, &c.ID) + case "d": + err = runtime.DecodeByteArray(string(val), &j.D, runtime.Base64URLFormat) delete(rawMsg, key) - case "tags": - err = unpopulate(val, &c.Tags) + case "dp": + err = runtime.DecodeByteArray(string(val), &j.DP, runtime.Base64URLFormat) + delete(rawMsg, key) + case "dq": + err = runtime.DecodeByteArray(string(val), &j.DQ, runtime.Base64URLFormat) + delete(rawMsg, key) + case "e": + err = runtime.DecodeByteArray(string(val), &j.E, runtime.Base64URLFormat) + delete(rawMsg, key) + case "k": + err = runtime.DecodeByteArray(string(val), &j.K, runtime.Base64URLFormat) + delete(rawMsg, key) + case "key_ops": + err = unpopulate(val, &j.KeyOps) + delete(rawMsg, key) + case "kid": + err = unpopulate(val, &j.Kid) + delete(rawMsg, key) + case "kty": + err = unpopulate(val, &j.Kty) + delete(rawMsg, key) + case "n": + err = runtime.DecodeByteArray(string(val), &j.N, runtime.Base64URLFormat) + delete(rawMsg, key) + case "p": + err = runtime.DecodeByteArray(string(val), &j.P, runtime.Base64URLFormat) + delete(rawMsg, key) + case "q": + err = runtime.DecodeByteArray(string(val), &j.Q, runtime.Base64URLFormat) + delete(rawMsg, key) + case "qi": + err = runtime.DecodeByteArray(string(val), &j.QI, runtime.Base64URLFormat) + delete(rawMsg, key) + case "key_hsm": + err = runtime.DecodeByteArray(string(val), &j.T, runtime.Base64URLFormat) + delete(rawMsg, key) + case "x": + err = runtime.DecodeByteArray(string(val), &j.X, runtime.Base64URLFormat) delete(rawMsg, key) - case "x5t": - err = runtime.DecodeByteArray(string(val), &c.X509Thumbprint, runtime.Base64URLFormat) + case "y": + err = runtime.DecodeByteArray(string(val), &j.Y, runtime.Base64URLFormat) delete(rawMsg, key) } if err != nil { @@ -585,91 +450,33 @@ func (c *CertificateItem) unmarshalInternal(rawMsg map[string]json.RawMessage) e return nil } -// CertificateListResult - The certificate list result. -type CertificateListResult struct { - // READ-ONLY; The URL to get the next set of certificates. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of certificates in the key vault along with a link to the next page of certificates. - Value []*CertificateItem `json:"value,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateListResult. -func (c CertificateListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", c.NextLink) - populate(objectMap, "value", c.Value) - return json.Marshal(objectMap) -} - -// CertificateMergeParameters - The certificate merge parameters -type CertificateMergeParameters struct { - // REQUIRED; The certificate or the certificate chain to merge. - X509Certificates [][]byte `json:"x5c,omitempty"` - - // The attributes of the certificate (optional). - CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateMergeParameters. -func (c CertificateMergeParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.CertificateAttributes) - populate(objectMap, "tags", c.Tags) - populate(objectMap, "x5c", c.X509Certificates) - return json.Marshal(objectMap) -} - -// CertificateOperation - A certificate operation is returned in case of asynchronous requests. -type CertificateOperation struct { - // Indicates if cancellation was requested on the certificate operation. - CancellationRequested *bool `json:"cancellation_requested,omitempty"` - - // The certificate signing request (CSR) that is being used in the certificate operation. - Csr []byte `json:"csr,omitempty"` - - // Error encountered, if any, during the certificate operation. - Error *Error `json:"error,omitempty"` - - // Parameters for the issuer of the X509 component of a certificate. - IssuerParameters *IssuerParameters `json:"issuer,omitempty"` - - // Identifier for the certificate operation. - RequestID *string `json:"request_id,omitempty"` - - // Status of the certificate operation. - Status *string `json:"status,omitempty"` - - // The status details of the certificate operation. - StatusDetails *string `json:"status_details,omitempty"` +// KeyAttributes - The attributes of a key managed by the key vault service. +type KeyAttributes struct { + Attributes + // Indicates if the private key can be exported. + Exportable *bool `json:"exportable,omitempty"` - // Location which contains the result of the certificate operation. - Target *string `json:"target,omitempty"` + // READ-ONLY; softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. + RecoverableDays *int32 `json:"recoverableDays,omitempty" azure:"ro"` - // READ-ONLY; The certificate id. - ID *string `json:"id,omitempty" azure:"ro"` + // READ-ONLY; Reflects the deletion recovery level currently in effect for keys in the current vault. If it contains 'Purgeable' the key can be permanently + // deleted by a privileged user; otherwise, only the system + // can purge the key, at the end of the retention interval. + RecoveryLevel *DeletionRecoveryLevel `json:"recoveryLevel,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type CertificateOperation. -func (c CertificateOperation) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyAttributes. +func (k KeyAttributes) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "cancellation_requested", c.CancellationRequested) - populateByteArray(objectMap, "csr", c.Csr, runtime.Base64StdFormat) - populate(objectMap, "error", c.Error) - populate(objectMap, "id", c.ID) - populate(objectMap, "issuer", c.IssuerParameters) - populate(objectMap, "request_id", c.RequestID) - populate(objectMap, "status", c.Status) - populate(objectMap, "status_details", c.StatusDetails) - populate(objectMap, "target", c.Target) + k.Attributes.marshalInternal(objectMap) + populate(objectMap, "exportable", k.Exportable) + populate(objectMap, "recoverableDays", k.RecoverableDays) + populate(objectMap, "recoveryLevel", k.RecoveryLevel) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateOperation. -func (c *CertificateOperation) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyAttributes. +func (k *KeyAttributes) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -677,115 +484,86 @@ func (c *CertificateOperation) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "cancellation_requested": - err = unpopulate(val, &c.CancellationRequested) - delete(rawMsg, key) - case "csr": - err = runtime.DecodeByteArray(string(val), &c.Csr, runtime.Base64StdFormat) - delete(rawMsg, key) - case "error": - err = unpopulate(val, &c.Error) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &c.ID) + case "exportable": + err = unpopulate(val, &k.Exportable) delete(rawMsg, key) - case "issuer": - err = unpopulate(val, &c.IssuerParameters) - delete(rawMsg, key) - case "request_id": - err = unpopulate(val, &c.RequestID) - delete(rawMsg, key) - case "status": - err = unpopulate(val, &c.Status) - delete(rawMsg, key) - case "status_details": - err = unpopulate(val, &c.StatusDetails) + case "recoverableDays": + err = unpopulate(val, &k.RecoverableDays) delete(rawMsg, key) - case "target": - err = unpopulate(val, &c.Target) + case "recoveryLevel": + err = unpopulate(val, &k.RecoveryLevel) delete(rawMsg, key) } if err != nil { return err } } + if err := k.Attributes.unmarshalInternal(rawMsg); err != nil { + return err + } return nil } -// CertificateOperationUpdateParameter - The certificate operation update parameters. -type CertificateOperationUpdateParameter struct { - // REQUIRED; Indicates if cancellation was requested on the certificate operation. - CancellationRequested *bool `json:"cancellation_requested,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateOperationUpdateParameter. -func (c CertificateOperationUpdateParameter) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "cancellation_requested", c.CancellationRequested) - return json.Marshal(objectMap) -} - -// CertificatePolicy - Management policy for a certificate. -type CertificatePolicy struct { - // The certificate attributes. - Attributes *CertificateAttributes `json:"attributes,omitempty"` - - // Parameters for the issuer of the X509 component of a certificate. - IssuerParameters *IssuerParameters `json:"issuer,omitempty"` - - // Properties of the key backing a certificate. - KeyProperties *KeyProperties `json:"key_props,omitempty"` - - // Actions that will be performed by Key Vault over the lifetime of a certificate. - LifetimeActions []*LifetimeAction `json:"lifetime_actions,omitempty"` - - // Properties of the secret backing a certificate. - SecretProperties *SecretProperties `json:"secret_props,omitempty"` +// KeyBundle - A KeyBundle consisting of a WebKey plus its attributes. +type KeyBundle struct { + // The key management attributes. + Attributes *KeyAttributes `json:"attributes,omitempty"` - // Properties of the X509 component of a certificate. - X509CertificateProperties *X509CertificateProperties `json:"x509_props,omitempty"` + // The Json web key. + Key *JSONWebKey `json:"key,omitempty"` - // READ-ONLY; The certificate id. - ID *string `json:"id,omitempty" azure:"ro"` -} + // The policy rules under which the key can be exported. + ReleasePolicy *KeyReleasePolicy `json:"release_policy,omitempty"` -// MarshalJSON implements the json.Marshaller interface for type CertificatePolicy. -func (c CertificatePolicy) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.Attributes) - populate(objectMap, "id", c.ID) - populate(objectMap, "issuer", c.IssuerParameters) - populate(objectMap, "key_props", c.KeyProperties) - populate(objectMap, "lifetime_actions", c.LifetimeActions) - populate(objectMap, "secret_props", c.SecretProperties) - populate(objectMap, "x509_props", c.X509CertificateProperties) - return json.Marshal(objectMap) -} + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` -// CertificateRestoreParameters - The certificate restore parameters. -type CertificateRestoreParameters struct { - // REQUIRED; The backup blob associated with a certificate bundle. - CertificateBundleBackup []byte `json:"value,omitempty"` + // READ-ONLY; True if the key's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true. + Managed *bool `json:"managed,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type CertificateRestoreParameters. -func (c CertificateRestoreParameters) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyBundle. +func (k KeyBundle) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", c.CertificateBundleBackup, runtime.Base64URLFormat) + k.marshalInternal(objectMap) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateRestoreParameters. -func (c *CertificateRestoreParameters) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyBundle. +func (k *KeyBundle) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err } + return k.unmarshalInternal(rawMsg) +} + +func (k KeyBundle) marshalInternal(objectMap map[string]interface{}) { + populate(objectMap, "attributes", k.Attributes) + populate(objectMap, "key", k.Key) + populate(objectMap, "managed", k.Managed) + populate(objectMap, "release_policy", k.ReleasePolicy) + populate(objectMap, "tags", k.Tags) +} + +func (k *KeyBundle) unmarshalInternal(rawMsg map[string]json.RawMessage) error { for key, val := range rawMsg { var err error switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &c.CertificateBundleBackup, runtime.Base64URLFormat) + case "attributes": + err = unpopulate(val, &k.Attributes) + delete(rawMsg, key) + case "key": + err = unpopulate(val, &k.Key) + delete(rawMsg, key) + case "managed": + err = unpopulate(val, &k.Managed) + delete(rawMsg, key) + case "release_policy": + err = unpopulate(val, &k.ReleasePolicy) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, &k.Tags) delete(rawMsg, key) } if err != nil { @@ -795,132 +573,196 @@ func (c *CertificateRestoreParameters) UnmarshalJSON(data []byte) error { return nil } -// CertificateUpdateParameters - The certificate update parameters. -type CertificateUpdateParameters struct { - // The attributes of the certificate (optional). - CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` +// KeyCreateParameters - The key create parameters. +type KeyCreateParameters struct { + // REQUIRED; The type of key to create. For valid values, see JsonWebKeyType. + Kty *JSONWebKeyType `json:"kty,omitempty"` + + // Elliptic curve name. For valid values, see JsonWebKeyCurveName. + Curve *JSONWebKeyCurveName `json:"crv,omitempty"` + + // The attributes of a key managed by the key vault service. + KeyAttributes *KeyAttributes `json:"attributes,omitempty"` + KeyOps []*JSONWebKeyOperation `json:"key_ops,omitempty"` + + // The key size in bits. For example: 2048, 3072, or 4096 for RSA. + KeySize *int32 `json:"key_size,omitempty"` + + // The public exponent for a RSA key. + PublicExponent *int32 `json:"public_exponent,omitempty"` - // The management policy for the certificate. - CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` + // The policy rules under which the key can be exported. + ReleasePolicy *KeyReleasePolicy `json:"release_policy,omitempty"` // Application specific metadata in the form of key-value pairs. Tags map[string]*string `json:"tags,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type CertificateUpdateParameters. -func (c CertificateUpdateParameters) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyCreateParameters. +func (k KeyCreateParameters) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.CertificateAttributes) - populate(objectMap, "policy", c.CertificatePolicy) - populate(objectMap, "tags", c.Tags) + populate(objectMap, "crv", k.Curve) + populate(objectMap, "attributes", k.KeyAttributes) + populate(objectMap, "key_ops", k.KeyOps) + populate(objectMap, "key_size", k.KeySize) + populate(objectMap, "kty", k.Kty) + populate(objectMap, "public_exponent", k.PublicExponent) + populate(objectMap, "release_policy", k.ReleasePolicy) + populate(objectMap, "tags", k.Tags) return json.Marshal(objectMap) } -// Contact - The contact information for the vault certificates. -type Contact struct { - // Email address. - EmailAddress *string `json:"email,omitempty"` +// KeyExportParameters - The export key parameters. +type KeyExportParameters struct { + // The encryption algorithm to use to protected the exported key material + Enc *KeyEncryptionAlgorithm `json:"enc,omitempty"` - // Name. - Name *string `json:"name,omitempty"` + // The export key encryption Json web key. This key MUST be a RSA key that supports encryption. + WrappingKey *JSONWebKey `json:"wrappingKey,omitempty"` - // Phone number. - Phone *string `json:"phone,omitempty"` + // The export key encryption key identifier. This key MUST be a RSA key that supports encryption. + WrappingKid *string `json:"wrappingKid,omitempty"` } -// Contacts - The contacts for the vault certificates. -type Contacts struct { - // The contact list for the vault certificates. - ContactList []*Contact `json:"contacts,omitempty"` +// KeyImportParameters - The key import parameters. +type KeyImportParameters struct { + // REQUIRED; The Json web key + Key *JSONWebKey `json:"key,omitempty"` - // READ-ONLY; Identifier for the contacts collection. - ID *string `json:"id,omitempty" azure:"ro"` + // Whether to import as a hardware key (HSM) or software key. + Hsm *bool `json:"Hsm,omitempty"` + + // The key management attributes. + KeyAttributes *KeyAttributes `json:"attributes,omitempty"` + + // The policy rules under which the key can be exported. + ReleasePolicy *KeyReleasePolicy `json:"release_policy,omitempty"` + + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type Contacts. -func (c Contacts) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyImportParameters. +func (k KeyImportParameters) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "contacts", c.ContactList) - populate(objectMap, "id", c.ID) + populate(objectMap, "Hsm", k.Hsm) + populate(objectMap, "key", k.Key) + populate(objectMap, "attributes", k.KeyAttributes) + populate(objectMap, "release_policy", k.ReleasePolicy) + populate(objectMap, "tags", k.Tags) return json.Marshal(objectMap) } -// DeletedCertificateBundle - A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information on when it will be purged. -type DeletedCertificateBundle struct { - CertificateBundle - // The url of the recovery object, used to identify and recover the deleted certificate. - RecoveryID *string `json:"recoveryId,omitempty"` +// KeyItem - The key item containing key metadata. +type KeyItem struct { + // The key management attributes. + Attributes *KeyAttributes `json:"attributes,omitempty"` - // READ-ONLY; The time when the certificate was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` + // Key identifier. + Kid *string `json:"kid,omitempty"` - // READ-ONLY; The time when the certificate is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` + + // READ-ONLY; True if the key's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true. + Managed *bool `json:"managed,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateBundle. -func (d DeletedCertificateBundle) MarshalJSON() ([]byte, error) { - objectMap := d.CertificateBundle.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) +// MarshalJSON implements the json.Marshaller interface for type KeyItem. +func (k KeyItem) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + k.marshalInternal(objectMap) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedCertificateBundle. -func (d *DeletedCertificateBundle) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyItem. +func (k *KeyItem) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err } + return k.unmarshalInternal(rawMsg) +} + +func (k KeyItem) marshalInternal(objectMap map[string]interface{}) { + populate(objectMap, "attributes", k.Attributes) + populate(objectMap, "kid", k.Kid) + populate(objectMap, "managed", k.Managed) + populate(objectMap, "tags", k.Tags) +} + +func (k *KeyItem) unmarshalInternal(rawMsg map[string]json.RawMessage) error { for key, val := range rawMsg { var err error switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) + case "attributes": + err = unpopulate(val, &k.Attributes) delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) + case "kid": + err = unpopulate(val, &k.Kid) delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) + case "managed": + err = unpopulate(val, &k.Managed) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, &k.Tags) delete(rawMsg, key) } if err != nil { return err } } - return d.CertificateBundle.unmarshalInternal(rawMsg) + return nil } -// DeletedCertificateItem - The deleted certificate item containing metadata about the deleted certificate. -type DeletedCertificateItem struct { - CertificateItem - // The url of the recovery object, used to identify and recover the deleted certificate. - RecoveryID *string `json:"recoveryId,omitempty"` +// KeyListResult - The key list result. +type KeyListResult struct { + // READ-ONLY; The URL to get the next set of keys. + NextLink *string `json:"nextLink,omitempty" azure:"ro"` - // READ-ONLY; The time when the certificate was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` + // READ-ONLY; A response message containing a list of keys in the key vault along with a link to the next page of keys. + Value []*KeyItem `json:"value,omitempty" azure:"ro"` +} - // READ-ONLY; The time when the certificate is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` +// MarshalJSON implements the json.Marshaller interface for type KeyListResult. +func (k KeyListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "nextLink", k.NextLink) + populate(objectMap, "value", k.Value) + return json.Marshal(objectMap) } -// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateItem. -func (d DeletedCertificateItem) MarshalJSON() ([]byte, error) { - objectMap := d.CertificateItem.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) +// KeyOperationResult - The key operation result. +type KeyOperationResult struct { + // READ-ONLY + AdditionalAuthenticatedData []byte `json:"aad,omitempty" azure:"ro"` + + // READ-ONLY + AuthenticationTag []byte `json:"tag,omitempty" azure:"ro"` + + // READ-ONLY + Iv []byte `json:"iv,omitempty" azure:"ro"` + + // READ-ONLY; Key identifier + Kid *string `json:"kid,omitempty" azure:"ro"` + + // READ-ONLY + Result []byte `json:"value,omitempty" azure:"ro"` +} + +// MarshalJSON implements the json.Marshaller interface for type KeyOperationResult. +func (k KeyOperationResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateByteArray(objectMap, "aad", k.AdditionalAuthenticatedData, runtime.Base64URLFormat) + populateByteArray(objectMap, "tag", k.AuthenticationTag, runtime.Base64URLFormat) + populateByteArray(objectMap, "iv", k.Iv, runtime.Base64URLFormat) + populate(objectMap, "kid", k.Kid) + populateByteArray(objectMap, "value", k.Result, runtime.Base64URLFormat) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedCertificateItem. -func (d *DeletedCertificateItem) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyOperationResult. +func (k *KeyOperationResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -928,68 +770,60 @@ func (d *DeletedCertificateItem) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) + case "aad": + err = runtime.DecodeByteArray(string(val), &k.AdditionalAuthenticatedData, runtime.Base64URLFormat) delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) + case "tag": + err = runtime.DecodeByteArray(string(val), &k.AuthenticationTag, runtime.Base64URLFormat) delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) + case "iv": + err = runtime.DecodeByteArray(string(val), &k.Iv, runtime.Base64URLFormat) + delete(rawMsg, key) + case "kid": + err = unpopulate(val, &k.Kid) + delete(rawMsg, key) + case "value": + err = runtime.DecodeByteArray(string(val), &k.Result, runtime.Base64URLFormat) delete(rawMsg, key) } if err != nil { return err } } - return d.CertificateItem.unmarshalInternal(rawMsg) + return nil } -// DeletedCertificateListResult - A list of certificates that have been deleted in this vault. -type DeletedCertificateListResult struct { - // READ-ONLY; The URL to get the next set of deleted certificates. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates - Value []*DeletedCertificateItem `json:"value,omitempty" azure:"ro"` -} +// KeyOperationsParameters - The key operations parameters. +type KeyOperationsParameters struct { + // REQUIRED; algorithm identifier + Algorithm *JSONWebKeyEncryptionAlgorithm `json:"alg,omitempty"` -// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateListResult. -func (d DeletedCertificateListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", d.NextLink) - populate(objectMap, "value", d.Value) - return json.Marshal(objectMap) -} + // REQUIRED + Value []byte `json:"value,omitempty"` -// DeletedKeyBundle - A DeletedKeyBundle consisting of a WebKey plus its Attributes and deletion info -type DeletedKeyBundle struct { - KeyBundle - // The url of the recovery object, used to identify and recover the deleted key. - RecoveryID *string `json:"recoveryId,omitempty"` + // Additional data to authenticate but not encrypt/decrypt when using authenticated crypto algorithms. + AAD []byte `json:"aad,omitempty"` - // READ-ONLY; The time when the key was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` + // Initialization vector for symmetric algorithms. + Iv []byte `json:"iv,omitempty"` - // READ-ONLY; The time when the key is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` + // The tag to authenticate when performing decryption with an authenticated algorithm. + Tag []byte `json:"tag,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type DeletedKeyBundle. -func (d DeletedKeyBundle) MarshalJSON() ([]byte, error) { - objectMap := d.KeyBundle.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) +// MarshalJSON implements the json.Marshaller interface for type KeyOperationsParameters. +func (k KeyOperationsParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateByteArray(objectMap, "aad", k.AAD, runtime.Base64URLFormat) + populate(objectMap, "alg", k.Algorithm) + populateByteArray(objectMap, "iv", k.Iv, runtime.Base64URLFormat) + populateByteArray(objectMap, "tag", k.Tag, runtime.Base64URLFormat) + populateByteArray(objectMap, "value", k.Value, runtime.Base64URLFormat) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedKeyBundle. -func (d *DeletedKeyBundle) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyOperationsParameters. +func (k *KeyOperationsParameters) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -997,51 +831,77 @@ func (d *DeletedKeyBundle) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) + case "aad": + err = runtime.DecodeByteArray(string(val), &k.AAD, runtime.Base64URLFormat) delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) + case "alg": + err = unpopulate(val, &k.Algorithm) delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) + case "iv": + err = runtime.DecodeByteArray(string(val), &k.Iv, runtime.Base64URLFormat) + delete(rawMsg, key) + case "tag": + err = runtime.DecodeByteArray(string(val), &k.Tag, runtime.Base64URLFormat) + delete(rawMsg, key) + case "value": + err = runtime.DecodeByteArray(string(val), &k.Value, runtime.Base64URLFormat) delete(rawMsg, key) } if err != nil { return err } } - return d.KeyBundle.unmarshalInternal(rawMsg) + return nil } -// DeletedKeyItem - The deleted key item containing the deleted key metadata and information about deletion. -type DeletedKeyItem struct { - KeyItem - // The url of the recovery object, used to identify and recover the deleted key. - RecoveryID *string `json:"recoveryId,omitempty"` +// KeyProperties - Properties of the key pair backing a certificate. +type KeyProperties struct { + // Elliptic curve name. For valid values, see JsonWebKeyCurveName. + Curve *JSONWebKeyCurveName `json:"crv,omitempty"` - // READ-ONLY; The time when the key was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` + // Indicates if the private key can be exported. + Exportable *bool `json:"exportable,omitempty"` - // READ-ONLY; The time when the key is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` + // The key size in bits. For example: 2048, 3072, or 4096 for RSA. + KeySize *int32 `json:"key_size,omitempty"` + + // The type of key pair to be used for the certificate. + KeyType *JSONWebKeyType `json:"kty,omitempty"` + + // Indicates if the same key pair will be used on certificate renewal. + ReuseKey *bool `json:"reuse_key,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type DeletedKeyItem. -func (d DeletedKeyItem) MarshalJSON() ([]byte, error) { - objectMap := d.KeyItem.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) +// KeyReleaseParameters - The release key parameters. +type KeyReleaseParameters struct { + // REQUIRED; The attestation assertion for the target of the key release. + Target *string `json:"target,omitempty"` + + // The encryption algorithm to use to protected the exported key material + Enc *KeyEncryptionAlgorithm `json:"enc,omitempty"` + + // A client provided nonce for freshness. + Nonce *string `json:"nonce,omitempty"` +} + +type KeyReleasePolicy struct { + // Content type and version of key release policy + ContentType *string `json:"contentType,omitempty"` + + // Blob encoding the policy rules under which the key can be released. + Data []byte `json:"data,omitempty"` +} + +// MarshalJSON implements the json.Marshaller interface for type KeyReleasePolicy. +func (k KeyReleasePolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "contentType", k.ContentType) + populateByteArray(objectMap, "data", k.Data, runtime.Base64URLFormat) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedKeyItem. -func (d *DeletedKeyItem) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyReleasePolicy. +func (k *KeyReleasePolicy) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -1049,69 +909,41 @@ func (d *DeletedKeyItem) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) - delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) + case "contentType": + err = unpopulate(val, &k.ContentType) delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) + case "data": + err = runtime.DecodeByteArray(string(val), &k.Data, runtime.Base64URLFormat) delete(rawMsg, key) } if err != nil { return err } } - return d.KeyItem.unmarshalInternal(rawMsg) + return nil } -// DeletedKeyListResult - A list of keys that have been deleted in this vault. -type DeletedKeyListResult struct { - // READ-ONLY; The URL to get the next set of deleted keys. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` +// KeyReleaseResult - The release result, containing the released key. +type KeyReleaseResult struct { + // READ-ONLY; A signed object containing the released key. + Value *string `json:"value,omitempty" azure:"ro"` +} - // READ-ONLY; A response message containing a list of deleted keys in the vault along with a link to the next page of deleted keys - Value []*DeletedKeyItem `json:"value,omitempty" azure:"ro"` +// KeyRestoreParameters - The key restore parameters. +type KeyRestoreParameters struct { + // REQUIRED; The backup blob associated with a key bundle. + KeyBundleBackup []byte `json:"value,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type DeletedKeyListResult. -func (d DeletedKeyListResult) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyRestoreParameters. +func (k KeyRestoreParameters) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", d.NextLink) - populate(objectMap, "value", d.Value) - return json.Marshal(objectMap) -} - -// DeletedSasDefinitionBundle - A deleted SAS definition bundle consisting of its previous id, attributes and its tags, as well as information on when it -// will be purged. -type DeletedSasDefinitionBundle struct { - SasDefinitionBundle - // The url of the recovery object, used to identify and recover the deleted SAS definition. - RecoveryID *string `json:"recoveryId,omitempty"` - - // READ-ONLY; The time when the SAS definition was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` - - // READ-ONLY; The time when the SAS definition is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type DeletedSasDefinitionBundle. -func (d DeletedSasDefinitionBundle) MarshalJSON() ([]byte, error) { - objectMap := d.SasDefinitionBundle.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) + populateByteArray(objectMap, "value", k.KeyBundleBackup, runtime.Base64URLFormat) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedSasDefinitionBundle. -func (d *DeletedSasDefinitionBundle) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyRestoreParameters. +func (k *KeyRestoreParameters) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -1119,120 +951,64 @@ func (d *DeletedSasDefinitionBundle) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) - delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) - delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) + case "value": + err = runtime.DecodeByteArray(string(val), &k.KeyBundleBackup, runtime.Base64URLFormat) delete(rawMsg, key) } if err != nil { return err } } - return d.SasDefinitionBundle.unmarshalInternal(rawMsg) -} - -// DeletedSasDefinitionItem - The deleted SAS definition item containing metadata about the deleted SAS definition. -type DeletedSasDefinitionItem struct { - SasDefinitionItem - // The url of the recovery object, used to identify and recover the deleted SAS definition. - RecoveryID *string `json:"recoveryId,omitempty"` - - // READ-ONLY; The time when the SAS definition was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` - - // READ-ONLY; The time when the SAS definition is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type DeletedSasDefinitionItem. -func (d DeletedSasDefinitionItem) MarshalJSON() ([]byte, error) { - objectMap := d.SasDefinitionItem.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) - return json.Marshal(objectMap) + return nil } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedSasDefinitionItem. -func (d *DeletedSasDefinitionItem) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) - delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) - delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return d.SasDefinitionItem.unmarshalInternal(rawMsg) -} +// KeyRotationPolicy - Management policy for a key. +type KeyRotationPolicy struct { + // The key rotation policy attributes. + Attributes *KeyRotationPolicyAttributes `json:"attributes,omitempty"` -// DeletedSasDefinitionListResult - The deleted SAS definition list result -type DeletedSasDefinitionListResult struct { - // READ-ONLY; The URL to get the next set of deleted SAS definitions. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` + // Actions that will be performed by Key Vault over the lifetime of a key. For preview, lifetimeActions can only have two items at maximum: one for rotate, + // one for notify. Notification time would be + // default to 30 days before expiry and it is not configurable. + LifetimeActions []*LifetimeActions `json:"lifetimeActions,omitempty"` - // READ-ONLY; A response message containing a list of the deleted SAS definitions in the vault along with a link to the next page of deleted sas definitions - Value []*DeletedSasDefinitionItem `json:"value,omitempty" azure:"ro"` + // READ-ONLY; The key policy id. + ID *string `json:"id,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type DeletedSasDefinitionListResult. -func (d DeletedSasDefinitionListResult) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyRotationPolicy. +func (k KeyRotationPolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", d.NextLink) - populate(objectMap, "value", d.Value) + populate(objectMap, "attributes", k.Attributes) + populate(objectMap, "id", k.ID) + populate(objectMap, "lifetimeActions", k.LifetimeActions) return json.Marshal(objectMap) } -// DeletedSecretBundle - A Deleted Secret consisting of its previous id, attributes and its tags, as well as information on when it will be purged. -type DeletedSecretBundle struct { - SecretBundle - // The url of the recovery object, used to identify and recover the deleted secret. - RecoveryID *string `json:"recoveryId,omitempty"` +// KeyRotationPolicyAttributes - The key rotation policy attributes. +type KeyRotationPolicyAttributes struct { + // The expiryTime will be applied on the new key version. It should be at least 28 days. It will be in ISO 8601 Format. Examples: 90 days: P90D, 3 months: + // P3M, 48 hours: PT48H, 1 year and 10 days: P1Y10D + ExpiryTime *string `json:"expiryTime,omitempty"` - // READ-ONLY; The time when the secret was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` + // READ-ONLY; The key rotation policy created time in UTC. + Created *time.Time `json:"created,omitempty" azure:"ro"` - // READ-ONLY; The time when the secret is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` + // READ-ONLY; The key rotation policy's last updated time in UTC. + Updated *time.Time `json:"updated,omitempty" azure:"ro"` } -// MarshalJSON implements the json.Marshaller interface for type DeletedSecretBundle. -func (d DeletedSecretBundle) MarshalJSON() ([]byte, error) { - objectMap := d.SecretBundle.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) +// MarshalJSON implements the json.Marshaller interface for type KeyRotationPolicyAttributes. +func (k KeyRotationPolicyAttributes) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "created", (*timeUnix)(k.Created)) + populate(objectMap, "expiryTime", k.ExpiryTime) + populate(objectMap, "updated", (*timeUnix)(k.Updated)) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedSecretBundle. -func (d *DeletedSecretBundle) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyRotationPolicyAttributes. +func (k *KeyRotationPolicyAttributes) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -1240,51 +1016,46 @@ func (d *DeletedSecretBundle) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "deletedDate": + case "created": var aux timeUnix err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) + k.Created = (*time.Time)(&aux) delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) + case "expiryTime": + err = unpopulate(val, &k.ExpiryTime) delete(rawMsg, key) - case "scheduledPurgeDate": + case "updated": var aux timeUnix err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) + k.Updated = (*time.Time)(&aux) delete(rawMsg, key) } if err != nil { return err } } - return d.SecretBundle.unmarshalInternal(rawMsg) + return nil } -// DeletedSecretItem - The deleted secret item containing metadata about the deleted secret. -type DeletedSecretItem struct { - SecretItem - // The url of the recovery object, used to identify and recover the deleted secret. - RecoveryID *string `json:"recoveryId,omitempty"` - - // READ-ONLY; The time when the secret was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` +// KeySignParameters - The key operations parameters. +type KeySignParameters struct { + // REQUIRED; The signing/verification algorithm identifier. For more information on possible algorithm types, see JsonWebKeySignatureAlgorithm. + Algorithm *JSONWebKeySignatureAlgorithm `json:"alg,omitempty"` - // READ-ONLY; The time when the secret is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` + // REQUIRED + Value []byte `json:"value,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type DeletedSecretItem. -func (d DeletedSecretItem) MarshalJSON() ([]byte, error) { - objectMap := d.SecretItem.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) +// MarshalJSON implements the json.Marshaller interface for type KeySignParameters. +func (k KeySignParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "alg", k.Algorithm) + populateByteArray(objectMap, "value", k.Value, runtime.Base64URLFormat) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedSecretItem. -func (d *DeletedSecretItem) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeySignParameters. +func (k *KeySignParameters) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -1292,217 +1063,210 @@ func (d *DeletedSecretItem) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) - delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) + case "alg": + err = unpopulate(val, &k.Algorithm) delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) + case "value": + err = runtime.DecodeByteArray(string(val), &k.Value, runtime.Base64URLFormat) delete(rawMsg, key) } if err != nil { return err } } - return d.SecretItem.unmarshalInternal(rawMsg) + return nil } -// DeletedSecretListResult - The deleted secret list result -type DeletedSecretListResult struct { - // READ-ONLY; The URL to get the next set of deleted secrets. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` +// KeyUpdateParameters - The key update parameters. +type KeyUpdateParameters struct { + // The attributes of a key managed by the key vault service. + KeyAttributes *KeyAttributes `json:"attributes,omitempty"` + + // Json web key operations. For more information on possible key operations, see JsonWebKeyOperation. + KeyOps []*JSONWebKeyOperation `json:"key_ops,omitempty"` + + // The policy rules under which the key can be exported. + ReleasePolicy *KeyReleasePolicy `json:"release_policy,omitempty"` - // READ-ONLY; A response message containing a list of the deleted secrets in the vault along with a link to the next page of deleted secrets - Value []*DeletedSecretItem `json:"value,omitempty" azure:"ro"` + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type DeletedSecretListResult. -func (d DeletedSecretListResult) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyUpdateParameters. +func (k KeyUpdateParameters) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", d.NextLink) - populate(objectMap, "value", d.Value) + populate(objectMap, "attributes", k.KeyAttributes) + populate(objectMap, "key_ops", k.KeyOps) + populate(objectMap, "release_policy", k.ReleasePolicy) + populate(objectMap, "tags", k.Tags) return json.Marshal(objectMap) } -// DeletedStorageAccountItem - The deleted storage account item containing metadata about the deleted storage account. -type DeletedStorageAccountItem struct { - StorageAccountItem - // The url of the recovery object, used to identify and recover the deleted storage account. - RecoveryID *string `json:"recoveryId,omitempty"` - - // READ-ONLY; The time when the storage account was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` - - // READ-ONLY; The time when the storage account is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` +// KeyVaultClientBackupKeyOptions contains the optional parameters for the KeyVaultClient.BackupKey method. +type KeyVaultClientBackupKeyOptions struct { + // placeholder for future optional parameters } -// MarshalJSON implements the json.Marshaller interface for type DeletedStorageAccountItem. -func (d DeletedStorageAccountItem) MarshalJSON() ([]byte, error) { - objectMap := d.StorageAccountItem.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) - return json.Marshal(objectMap) +// KeyVaultClientCreateKeyOptions contains the optional parameters for the KeyVaultClient.CreateKey method. +type KeyVaultClientCreateKeyOptions struct { + // placeholder for future optional parameters } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedStorageAccountItem. -func (d *DeletedStorageAccountItem) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) - delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) - delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return d.StorageAccountItem.unmarshalInternal(rawMsg) +// KeyVaultClientDecryptOptions contains the optional parameters for the KeyVaultClient.Decrypt method. +type KeyVaultClientDecryptOptions struct { + // placeholder for future optional parameters } -// DeletedStorageBundle - A deleted storage account bundle consisting of its previous id, attributes and its tags, as well as information on when it will -// be purged. -type DeletedStorageBundle struct { - StorageBundle - // The url of the recovery object, used to identify and recover the deleted storage account. - RecoveryID *string `json:"recoveryId,omitempty"` +// KeyVaultClientDeleteKeyOptions contains the optional parameters for the KeyVaultClient.DeleteKey method. +type KeyVaultClientDeleteKeyOptions struct { + // placeholder for future optional parameters +} - // READ-ONLY; The time when the storage account was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` +// KeyVaultClientEncryptOptions contains the optional parameters for the KeyVaultClient.Encrypt method. +type KeyVaultClientEncryptOptions struct { + // placeholder for future optional parameters +} - // READ-ONLY; The time when the storage account is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` +// KeyVaultClientExportOptions contains the optional parameters for the KeyVaultClient.Export method. +type KeyVaultClientExportOptions struct { + // placeholder for future optional parameters } -// MarshalJSON implements the json.Marshaller interface for type DeletedStorageBundle. -func (d DeletedStorageBundle) MarshalJSON() ([]byte, error) { - objectMap := d.StorageBundle.marshalInternal() - populate(objectMap, "deletedDate", (*timeUnix)(d.DeletedDate)) - populate(objectMap, "recoveryId", d.RecoveryID) - populate(objectMap, "scheduledPurgeDate", (*timeUnix)(d.ScheduledPurgeDate)) - return json.Marshal(objectMap) +// KeyVaultClientGetDeletedKeyOptions contains the optional parameters for the KeyVaultClient.GetDeletedKey method. +type KeyVaultClientGetDeletedKeyOptions struct { + // placeholder for future optional parameters } -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedStorageBundle. -func (d *DeletedStorageBundle) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "deletedDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.DeletedDate = (*time.Time)(&aux) - delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) - delete(rawMsg, key) - case "scheduledPurgeDate": - var aux timeUnix - err = unpopulate(val, &aux) - d.ScheduledPurgeDate = (*time.Time)(&aux) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return d.StorageBundle.unmarshalInternal(rawMsg) +// KeyVaultClientGetDeletedKeysOptions contains the optional parameters for the KeyVaultClient.GetDeletedKeys method. +type KeyVaultClientGetDeletedKeysOptions struct { + // Maximum number of results to return in a page. If not specified the service will return up to 25 results. + Maxresults *int32 } -// DeletedStorageListResult - The deleted storage account list result -type DeletedStorageListResult struct { - // READ-ONLY; The URL to get the next set of deleted storage accounts. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` +// KeyVaultClientGetKeyOptions contains the optional parameters for the KeyVaultClient.GetKey method. +type KeyVaultClientGetKeyOptions struct { + // placeholder for future optional parameters +} - // READ-ONLY; A response message containing a list of the deleted storage accounts in the vault along with a link to the next page of deleted storage accounts - Value []*DeletedStorageAccountItem `json:"value,omitempty" azure:"ro"` +// KeyVaultClientGetKeyRotationPolicyOptions contains the optional parameters for the KeyVaultClient.GetKeyRotationPolicy method. +type KeyVaultClientGetKeyRotationPolicyOptions struct { + // placeholder for future optional parameters } -// MarshalJSON implements the json.Marshaller interface for type DeletedStorageListResult. -func (d DeletedStorageListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", d.NextLink) - populate(objectMap, "value", d.Value) - return json.Marshal(objectMap) +// KeyVaultClientGetKeyVersionsOptions contains the optional parameters for the KeyVaultClient.GetKeyVersions method. +type KeyVaultClientGetKeyVersionsOptions struct { + // Maximum number of results to return in a page. If not specified the service will return up to 25 results. + Maxresults *int32 } -// Error - The key vault server error. -type Error struct { - // READ-ONLY; The error code. - Code *string `json:"code,omitempty" azure:"ro"` +// KeyVaultClientGetKeysOptions contains the optional parameters for the KeyVaultClient.GetKeys method. +type KeyVaultClientGetKeysOptions struct { + // Maximum number of results to return in a page. If not specified the service will return up to 25 results. + Maxresults *int32 +} - // READ-ONLY; The key vault server error. - InnerError *Error `json:"innererror,omitempty" azure:"ro"` +// KeyVaultClientGetRandomBytesOptions contains the optional parameters for the KeyVaultClient.GetRandomBytes method. +type KeyVaultClientGetRandomBytesOptions struct { + // placeholder for future optional parameters +} - // READ-ONLY; The error message. - Message *string `json:"message,omitempty" azure:"ro"` +// KeyVaultClientImportKeyOptions contains the optional parameters for the KeyVaultClient.ImportKey method. +type KeyVaultClientImportKeyOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientPurgeDeletedKeyOptions contains the optional parameters for the KeyVaultClient.PurgeDeletedKey method. +type KeyVaultClientPurgeDeletedKeyOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientRecoverDeletedKeyOptions contains the optional parameters for the KeyVaultClient.RecoverDeletedKey method. +type KeyVaultClientRecoverDeletedKeyOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientReleaseOptions contains the optional parameters for the KeyVaultClient.Release method. +type KeyVaultClientReleaseOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientRestoreKeyOptions contains the optional parameters for the KeyVaultClient.RestoreKey method. +type KeyVaultClientRestoreKeyOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientRotateKeyOptions contains the optional parameters for the KeyVaultClient.RotateKey method. +type KeyVaultClientRotateKeyOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientSignOptions contains the optional parameters for the KeyVaultClient.Sign method. +type KeyVaultClientSignOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientUnwrapKeyOptions contains the optional parameters for the KeyVaultClient.UnwrapKey method. +type KeyVaultClientUnwrapKeyOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientUpdateKeyOptions contains the optional parameters for the KeyVaultClient.UpdateKey method. +type KeyVaultClientUpdateKeyOptions struct { + // placeholder for future optional parameters +} + +// KeyVaultClientUpdateKeyRotationPolicyOptions contains the optional parameters for the KeyVaultClient.UpdateKeyRotationPolicy method. +type KeyVaultClientUpdateKeyRotationPolicyOptions struct { + // placeholder for future optional parameters } -// FullBackupOperation - Full backup operation -type FullBackupOperation struct { - // The Azure blob storage container Uri which contains the full backup - AzureStorageBlobContainerURI *string `json:"azureStorageBlobContainerUri,omitempty"` +// KeyVaultClientVerifyOptions contains the optional parameters for the KeyVaultClient.Verify method. +type KeyVaultClientVerifyOptions struct { + // placeholder for future optional parameters +} - // The end time of the backup operation in UTC - EndTime *time.Time `json:"endTime,omitempty"` +// KeyVaultClientWrapKeyOptions contains the optional parameters for the KeyVaultClient.WrapKey method. +type KeyVaultClientWrapKeyOptions struct { + // placeholder for future optional parameters +} - // Error encountered, if any, during the full backup operation. - Error *Error `json:"error,omitempty"` +// KeyVaultError - The key vault error exception. +// Implements the error and azcore.HTTPResponse interfaces. +type KeyVaultError struct { + raw string + // READ-ONLY; The key vault server error. + InnerError *Error `json:"error,omitempty" azure:"ro"` +} - // Identifier for the full backup operation. - JobID *string `json:"jobId,omitempty"` +// Error implements the error interface for type KeyVaultError. +// The contents of the error text are not contractual and subject to change. +func (e KeyVaultError) Error() string { + return e.raw +} - // The start time of the backup operation in UTC - StartTime *time.Time `json:"startTime,omitempty"` +// KeyVerifyParameters - The key verify parameters. +type KeyVerifyParameters struct { + // REQUIRED; The signing/verification algorithm. For more information on possible algorithm types, see JsonWebKeySignatureAlgorithm. + Algorithm *JSONWebKeySignatureAlgorithm `json:"alg,omitempty"` - // Status of the backup operation. - Status *string `json:"status,omitempty"` + // REQUIRED; The digest used for signing. + Digest []byte `json:"digest,omitempty"` - // The status details of backup operation. - StatusDetails *string `json:"statusDetails,omitempty"` + // REQUIRED; The signature to be verified. + Signature []byte `json:"value,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type FullBackupOperation. -func (f FullBackupOperation) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type KeyVerifyParameters. +func (k KeyVerifyParameters) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "azureStorageBlobContainerUri", f.AzureStorageBlobContainerURI) - populate(objectMap, "endTime", (*timeUnix)(f.EndTime)) - populate(objectMap, "error", f.Error) - populate(objectMap, "jobId", f.JobID) - populate(objectMap, "startTime", (*timeUnix)(f.StartTime)) - populate(objectMap, "status", f.Status) - populate(objectMap, "statusDetails", f.StatusDetails) + populate(objectMap, "alg", k.Algorithm) + populateByteArray(objectMap, "digest", k.Digest, runtime.Base64URLFormat) + populateByteArray(objectMap, "value", k.Signature, runtime.Base64URLFormat) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type FullBackupOperation. -func (f *FullBackupOperation) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyVerifyParameters. +func (k *KeyVerifyParameters) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -1510,30 +1274,14 @@ func (f *FullBackupOperation) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "azureStorageBlobContainerUri": - err = unpopulate(val, &f.AzureStorageBlobContainerURI) - delete(rawMsg, key) - case "endTime": - var aux timeUnix - err = unpopulate(val, &aux) - f.EndTime = (*time.Time)(&aux) - delete(rawMsg, key) - case "error": - err = unpopulate(val, &f.Error) - delete(rawMsg, key) - case "jobId": - err = unpopulate(val, &f.JobID) - delete(rawMsg, key) - case "startTime": - var aux timeUnix - err = unpopulate(val, &aux) - f.StartTime = (*time.Time)(&aux) + case "alg": + err = unpopulate(val, &k.Algorithm) delete(rawMsg, key) - case "status": - err = unpopulate(val, &f.Status) + case "digest": + err = runtime.DecodeByteArray(string(val), &k.Digest, runtime.Base64URLFormat) delete(rawMsg, key) - case "statusDetails": - err = unpopulate(val, &f.StatusDetails) + case "value": + err = runtime.DecodeByteArray(string(val), &k.Signature, runtime.Base64URLFormat) delete(rawMsg, key) } if err != nil { @@ -1543,54 +1291,76 @@ func (f *FullBackupOperation) UnmarshalJSON(data []byte) error { return nil } -// HSMSecurityDomainBeginDownloadOptions contains the optional parameters for the HSMSecurityDomain.BeginDownload method. -type HSMSecurityDomainBeginDownloadOptions struct { - // placeholder for future optional parameters +// KeyVerifyResult - The key verify result. +type KeyVerifyResult struct { + // READ-ONLY; True if the signature is verified, otherwise false. + Value *bool `json:"value,omitempty" azure:"ro"` } -// HSMSecurityDomainBeginUploadOptions contains the optional parameters for the HSMSecurityDomain.BeginUpload method. -type HSMSecurityDomainBeginUploadOptions struct { - // placeholder for future optional parameters -} +// LifetimeActions - Action and its trigger that will be performed by Key Vault over the lifetime of a key. +type LifetimeActions struct { + // The action that will be executed. + Action *LifetimeActionsType `json:"action,omitempty"` -// HSMSecurityDomainDownloadPendingOptions contains the optional parameters for the HSMSecurityDomain.DownloadPending method. -type HSMSecurityDomainDownloadPendingOptions struct { - // placeholder for future optional parameters + // The condition that will execute the action. + Trigger *LifetimeActionsTrigger `json:"trigger,omitempty"` } -// HSMSecurityDomainTransferKeyOptions contains the optional parameters for the HSMSecurityDomain.TransferKey method. -type HSMSecurityDomainTransferKeyOptions struct { - // placeholder for future optional parameters +// LifetimeActionsTrigger - A condition to be satisfied for an action to be executed. +type LifetimeActionsTrigger struct { + // Time after creation to attempt to rotate. It only applies to rotate. It will be in ISO 8601 duration format. Example: 90 days : "P90D" + TimeAfterCreate *string `json:"timeAfterCreate,omitempty"` + + // Time before expiry to attempt to rotate or notify. It will be in ISO 8601 duration format. Example: 90 days : "P90D" + TimeBeforeExpiry *string `json:"timeBeforeExpiry,omitempty"` } -// HSMSecurityDomainUploadPendingOptions contains the optional parameters for the HSMSecurityDomain.UploadPending method. -type HSMSecurityDomainUploadPendingOptions struct { - // placeholder for future optional parameters +// LifetimeActionsType - The action that will be executed. +type LifetimeActionsType struct { + // The type of the action. + Type *ActionType `json:"type,omitempty"` } -// IssuerAttributes - The attributes of an issuer managed by the Key Vault service. -type IssuerAttributes struct { - // Determines whether the issuer is enabled. - Enabled *bool `json:"enabled,omitempty"` +// Permission - Role definition permissions. +type Permission struct { + // Action permissions that are granted. + Actions []*string `json:"actions,omitempty"` - // READ-ONLY; Creation time in UTC. - Created *time.Time `json:"created,omitempty" azure:"ro"` + // Data action permissions that are granted. + DataActions []*DataAction `json:"dataActions,omitempty"` - // READ-ONLY; Last updated time in UTC. - Updated *time.Time `json:"updated,omitempty" azure:"ro"` + // Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. + NotActions []*string `json:"notActions,omitempty"` + + // Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. + NotDataActions []*DataAction `json:"notDataActions,omitempty"` +} + +// MarshalJSON implements the json.Marshaller interface for type Permission. +func (p Permission) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "actions", p.Actions) + populate(objectMap, "dataActions", p.DataActions) + populate(objectMap, "notActions", p.NotActions) + populate(objectMap, "notDataActions", p.NotDataActions) + return json.Marshal(objectMap) } -// MarshalJSON implements the json.Marshaller interface for type IssuerAttributes. -func (i IssuerAttributes) MarshalJSON() ([]byte, error) { +// RandomBytes - The get random bytes response object containing the bytes. +type RandomBytes struct { + // REQUIRED; The bytes encoded as a base64url string. + Value []byte `json:"value,omitempty"` +} + +// MarshalJSON implements the json.Marshaller interface for type RandomBytes. +func (r RandomBytes) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "created", (*timeUnix)(i.Created)) - populate(objectMap, "enabled", i.Enabled) - populate(objectMap, "updated", (*timeUnix)(i.Updated)) + populateByteArray(objectMap, "value", r.Value, runtime.Base64URLFormat) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type IssuerAttributes. -func (i *IssuerAttributes) UnmarshalJSON(data []byte) error { +// UnmarshalJSON implements the json.Unmarshaller interface for type RandomBytes. +func (r *RandomBytes) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return err @@ -1598,18 +1368,8 @@ func (i *IssuerAttributes) UnmarshalJSON(data []byte) error { for key, val := range rawMsg { var err error switch key { - case "created": - var aux timeUnix - err = unpopulate(val, &aux) - i.Created = (*time.Time)(&aux) - delete(rawMsg, key) - case "enabled": - err = unpopulate(val, &i.Enabled) - delete(rawMsg, key) - case "updated": - var aux timeUnix - err = unpopulate(val, &aux) - i.Updated = (*time.Time)(&aux) + case "value": + err = runtime.DecodeByteArray(string(val), &r.Value, runtime.Base64URLFormat) delete(rawMsg, key) } if err != nil { @@ -1619,2085 +1379,186 @@ func (i *IssuerAttributes) UnmarshalJSON(data []byte) error { return nil } -// IssuerBundle - The issuer for Key Vault certificate. -type IssuerBundle struct { - // Attributes of the issuer object. - Attributes *IssuerAttributes `json:"attributes,omitempty"` - - // The credentials to be used for the issuer. - Credentials *IssuerCredentials `json:"credentials,omitempty"` +// RoleAssignment - Role Assignments +type RoleAssignment struct { + // Role assignment properties. + Properties *RoleAssignmentPropertiesWithScope `json:"properties,omitempty"` - // Details of the organization as provided to the issuer. - OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` + // READ-ONLY; The role assignment ID. + ID *string `json:"id,omitempty" azure:"ro"` - // The issuer provider. - Provider *string `json:"provider,omitempty"` + // READ-ONLY; The role assignment name. + Name *string `json:"name,omitempty" azure:"ro"` - // READ-ONLY; Identifier for the issuer object. - ID *string `json:"id,omitempty" azure:"ro"` + // READ-ONLY; The role assignment type. + Type *string `json:"type,omitempty" azure:"ro"` } -// IssuerCredentials - The credentials to be used for the certificate issuer. -type IssuerCredentials struct { - // The user name/account name/account id. - AccountID *string `json:"account_id,omitempty"` - - // The password/secret/account key. - Password *string `json:"pwd,omitempty"` +// RoleAssignmentCreateParameters - Role assignment create parameters. +type RoleAssignmentCreateParameters struct { + // REQUIRED; Role assignment properties. + Properties *RoleAssignmentProperties `json:"properties,omitempty"` } -// IssuerParameters - Parameters for the issuer of the X509 component of a certificate. -type IssuerParameters struct { - // Indicates if the certificates generated under this policy should be published to certificate transparency logs. - CertificateTransparency *bool `json:"cert_transparency,omitempty"` +// RoleAssignmentFilter - Role Assignments filter +type RoleAssignmentFilter struct { + // Returns role assignment of the specific principal. + PrincipalID *string `json:"principalId,omitempty"` +} - // Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL' - CertificateType *string `json:"cty,omitempty"` +// RoleAssignmentListResult - Role assignment list operation result. +type RoleAssignmentListResult struct { + // The URL to use for getting the next set of results. + NextLink *string `json:"nextLink,omitempty"` - // Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'. - Name *string `json:"name,omitempty"` + // Role assignment list. + Value []*RoleAssignment `json:"value,omitempty"` } -// JSONWebKey - As of http://tools.ietf.org/html/draft-ietf-jose-json-web-key-18 -type JSONWebKey struct { - // Elliptic curve name. For valid values, see JsonWebKeyCurveName. - Crv *JSONWebKeyCurveName `json:"crv,omitempty"` +// MarshalJSON implements the json.Marshaller interface for type RoleAssignmentListResult. +func (r RoleAssignmentListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "nextLink", r.NextLink) + populate(objectMap, "value", r.Value) + return json.Marshal(objectMap) +} - // RSA private exponent, or the D component of an EC private key. - D []byte `json:"d,omitempty"` +// RoleAssignmentProperties - Role assignment properties. +type RoleAssignmentProperties struct { + // REQUIRED; The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security + // group. + PrincipalID *string `json:"principalId,omitempty"` - // RSA private key parameter. - DP []byte `json:"dp,omitempty"` + // REQUIRED; The role definition ID used in the role assignment. + RoleDefinitionID *string `json:"roleDefinitionId,omitempty"` +} - // RSA private key parameter. - DQ []byte `json:"dq,omitempty"` +// RoleAssignmentPropertiesWithScope - Role assignment properties with scope. +type RoleAssignmentPropertiesWithScope struct { + // The principal ID. + PrincipalID *string `json:"principalId,omitempty"` - // RSA public exponent. - E []byte `json:"e,omitempty"` + // The role definition ID. + RoleDefinitionID *string `json:"roleDefinitionId,omitempty"` - // Symmetric key. - K []byte `json:"k,omitempty"` - KeyOps []*string `json:"key_ops,omitempty"` + // The role scope. + Scope *RoleScope `json:"scope,omitempty"` +} - // Key identifier. - Kid *string `json:"kid,omitempty"` +// RoleAssignmentsCreateOptions contains the optional parameters for the RoleAssignments.Create method. +type RoleAssignmentsCreateOptions struct { + // placeholder for future optional parameters +} - // JsonWebKey Key Type (kty), as defined in https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. - Kty *JSONWebKeyType `json:"kty,omitempty"` +// RoleAssignmentsDeleteOptions contains the optional parameters for the RoleAssignments.Delete method. +type RoleAssignmentsDeleteOptions struct { + // placeholder for future optional parameters +} - // RSA modulus. - N []byte `json:"n,omitempty"` +// RoleAssignmentsGetOptions contains the optional parameters for the RoleAssignments.Get method. +type RoleAssignmentsGetOptions struct { + // placeholder for future optional parameters +} - // RSA secret prime. - P []byte `json:"p,omitempty"` - - // RSA secret prime, with p < q. - Q []byte `json:"q,omitempty"` - - // RSA private key parameter. - QI []byte `json:"qi,omitempty"` - - // Protected Key, used with 'Bring Your Own Key'. - T []byte `json:"key_hsm,omitempty"` - - // X component of an EC public key. - X []byte `json:"x,omitempty"` - - // Y component of an EC public key. - Y []byte `json:"y,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type JSONWebKey. -func (j JSONWebKey) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "crv", j.Crv) - populateByteArray(objectMap, "d", j.D, runtime.Base64URLFormat) - populateByteArray(objectMap, "dp", j.DP, runtime.Base64URLFormat) - populateByteArray(objectMap, "dq", j.DQ, runtime.Base64URLFormat) - populateByteArray(objectMap, "e", j.E, runtime.Base64URLFormat) - populateByteArray(objectMap, "k", j.K, runtime.Base64URLFormat) - populate(objectMap, "key_ops", j.KeyOps) - populate(objectMap, "kid", j.Kid) - populate(objectMap, "kty", j.Kty) - populateByteArray(objectMap, "n", j.N, runtime.Base64URLFormat) - populateByteArray(objectMap, "p", j.P, runtime.Base64URLFormat) - populateByteArray(objectMap, "q", j.Q, runtime.Base64URLFormat) - populateByteArray(objectMap, "qi", j.QI, runtime.Base64URLFormat) - populateByteArray(objectMap, "key_hsm", j.T, runtime.Base64URLFormat) - populateByteArray(objectMap, "x", j.X, runtime.Base64URLFormat) - populateByteArray(objectMap, "y", j.Y, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type JSONWebKey. -func (j *JSONWebKey) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "crv": - err = unpopulate(val, &j.Crv) - delete(rawMsg, key) - case "d": - err = runtime.DecodeByteArray(string(val), &j.D, runtime.Base64URLFormat) - delete(rawMsg, key) - case "dp": - err = runtime.DecodeByteArray(string(val), &j.DP, runtime.Base64URLFormat) - delete(rawMsg, key) - case "dq": - err = runtime.DecodeByteArray(string(val), &j.DQ, runtime.Base64URLFormat) - delete(rawMsg, key) - case "e": - err = runtime.DecodeByteArray(string(val), &j.E, runtime.Base64URLFormat) - delete(rawMsg, key) - case "k": - err = runtime.DecodeByteArray(string(val), &j.K, runtime.Base64URLFormat) - delete(rawMsg, key) - case "key_ops": - err = unpopulate(val, &j.KeyOps) - delete(rawMsg, key) - case "kid": - err = unpopulate(val, &j.Kid) - delete(rawMsg, key) - case "kty": - err = unpopulate(val, &j.Kty) - delete(rawMsg, key) - case "n": - err = runtime.DecodeByteArray(string(val), &j.N, runtime.Base64URLFormat) - delete(rawMsg, key) - case "p": - err = runtime.DecodeByteArray(string(val), &j.P, runtime.Base64URLFormat) - delete(rawMsg, key) - case "q": - err = runtime.DecodeByteArray(string(val), &j.Q, runtime.Base64URLFormat) - delete(rawMsg, key) - case "qi": - err = runtime.DecodeByteArray(string(val), &j.QI, runtime.Base64URLFormat) - delete(rawMsg, key) - case "key_hsm": - err = runtime.DecodeByteArray(string(val), &j.T, runtime.Base64URLFormat) - delete(rawMsg, key) - case "x": - err = runtime.DecodeByteArray(string(val), &j.X, runtime.Base64URLFormat) - delete(rawMsg, key) - case "y": - err = runtime.DecodeByteArray(string(val), &j.Y, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// KeyAttributes - The attributes of a key managed by the key vault service. -type KeyAttributes struct { - Attributes - // READ-ONLY; softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. - RecoverableDays *int32 `json:"recoverableDays,omitempty" azure:"ro"` - - // READ-ONLY; Reflects the deletion recovery level currently in effect for keys in the current vault. If it contains 'Purgeable' the key can be permanently - // deleted by a privileged user; otherwise, only the system - // can purge the key, at the end of the retention interval. - RecoveryLevel *DeletionRecoveryLevel `json:"recoveryLevel,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyAttributes. -func (k KeyAttributes) MarshalJSON() ([]byte, error) { - objectMap := k.Attributes.marshalInternal() - populate(objectMap, "recoverableDays", k.RecoverableDays) - populate(objectMap, "recoveryLevel", k.RecoveryLevel) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type KeyAttributes. -func (k *KeyAttributes) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "recoverableDays": - err = unpopulate(val, &k.RecoverableDays) - delete(rawMsg, key) - case "recoveryLevel": - err = unpopulate(val, &k.RecoveryLevel) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return k.Attributes.unmarshalInternal(rawMsg) -} - -// KeyBundle - A KeyBundle consisting of a WebKey plus its attributes. -type KeyBundle struct { - // The key management attributes. - Attributes *KeyAttributes `json:"attributes,omitempty"` - - // The Json web key. - Key *JSONWebKey `json:"key,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` - - // READ-ONLY; True if the key's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true. - Managed *bool `json:"managed,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyBundle. -func (k KeyBundle) MarshalJSON() ([]byte, error) { - objectMap := k.marshalInternal() - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type KeyBundle. -func (k *KeyBundle) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - return k.unmarshalInternal(rawMsg) -} - -func (k KeyBundle) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", k.Attributes) - populate(objectMap, "key", k.Key) - populate(objectMap, "managed", k.Managed) - populate(objectMap, "tags", k.Tags) - return objectMap -} - -func (k *KeyBundle) unmarshalInternal(rawMsg map[string]json.RawMessage) error { - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &k.Attributes) - delete(rawMsg, key) - case "key": - err = unpopulate(val, &k.Key) - delete(rawMsg, key) - case "managed": - err = unpopulate(val, &k.Managed) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &k.Tags) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// KeyCreateParameters - The key create parameters. -type KeyCreateParameters struct { - // REQUIRED; The type of key to create. For valid values, see JsonWebKeyType. - Kty *JSONWebKeyType `json:"kty,omitempty"` - - // Elliptic curve name. For valid values, see JsonWebKeyCurveName. - Curve *JSONWebKeyCurveName `json:"crv,omitempty"` - - // The attributes of a key managed by the key vault service. - KeyAttributes *KeyAttributes `json:"attributes,omitempty"` - KeyOps []*JSONWebKeyOperation `json:"key_ops,omitempty"` - - // The key size in bits. For example: 2048, 3072, or 4096 for RSA. - KeySize *int32 `json:"key_size,omitempty"` - - // The public exponent for a RSA key. - PublicExponent *int32 `json:"public_exponent,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyCreateParameters. -func (k KeyCreateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "crv", k.Curve) - populate(objectMap, "attributes", k.KeyAttributes) - populate(objectMap, "key_ops", k.KeyOps) - populate(objectMap, "key_size", k.KeySize) - populate(objectMap, "kty", k.Kty) - populate(objectMap, "public_exponent", k.PublicExponent) - populate(objectMap, "tags", k.Tags) - return json.Marshal(objectMap) -} - -// KeyImportParameters - The key import parameters. -type KeyImportParameters struct { - // REQUIRED; The Json web key - Key *JSONWebKey `json:"key,omitempty"` - - // Whether to import as a hardware key (HSM) or software key. - Hsm *bool `json:"Hsm,omitempty"` - - // The key management attributes. - KeyAttributes *KeyAttributes `json:"attributes,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyImportParameters. -func (k KeyImportParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "Hsm", k.Hsm) - populate(objectMap, "key", k.Key) - populate(objectMap, "attributes", k.KeyAttributes) - populate(objectMap, "tags", k.Tags) - return json.Marshal(objectMap) -} - -// KeyItem - The key item containing key metadata. -type KeyItem struct { - // The key management attributes. - Attributes *KeyAttributes `json:"attributes,omitempty"` - - // Key identifier. - Kid *string `json:"kid,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` - - // READ-ONLY; True if the key's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true. - Managed *bool `json:"managed,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyItem. -func (k KeyItem) MarshalJSON() ([]byte, error) { - objectMap := k.marshalInternal() - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type KeyItem. -func (k *KeyItem) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - return k.unmarshalInternal(rawMsg) -} - -func (k KeyItem) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", k.Attributes) - populate(objectMap, "kid", k.Kid) - populate(objectMap, "managed", k.Managed) - populate(objectMap, "tags", k.Tags) - return objectMap -} - -func (k *KeyItem) unmarshalInternal(rawMsg map[string]json.RawMessage) error { - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &k.Attributes) - delete(rawMsg, key) - case "kid": - err = unpopulate(val, &k.Kid) - delete(rawMsg, key) - case "managed": - err = unpopulate(val, &k.Managed) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &k.Tags) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// KeyListResult - The key list result. -type KeyListResult struct { - // READ-ONLY; The URL to get the next set of keys. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of keys in the key vault along with a link to the next page of keys. - Value []*KeyItem `json:"value,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyListResult. -func (k KeyListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", k.NextLink) - populate(objectMap, "value", k.Value) - return json.Marshal(objectMap) -} - -// KeyOperationResult - The key operation result. -type KeyOperationResult struct { - // READ-ONLY - AdditionalAuthenticatedData []byte `json:"aad,omitempty" azure:"ro"` - - // READ-ONLY - AuthenticationTag []byte `json:"tag,omitempty" azure:"ro"` - - // READ-ONLY - Iv []byte `json:"iv,omitempty" azure:"ro"` - - // READ-ONLY; Key identifier - Kid *string `json:"kid,omitempty" azure:"ro"` - - // READ-ONLY - Result []byte `json:"value,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyOperationResult. -func (k KeyOperationResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "aad", k.AdditionalAuthenticatedData, runtime.Base64URLFormat) - populateByteArray(objectMap, "tag", k.AuthenticationTag, runtime.Base64URLFormat) - populateByteArray(objectMap, "iv", k.Iv, runtime.Base64URLFormat) - populate(objectMap, "kid", k.Kid) - populateByteArray(objectMap, "value", k.Result, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type KeyOperationResult. -func (k *KeyOperationResult) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "aad": - err = runtime.DecodeByteArray(string(val), &k.AdditionalAuthenticatedData, runtime.Base64URLFormat) - delete(rawMsg, key) - case "tag": - err = runtime.DecodeByteArray(string(val), &k.AuthenticationTag, runtime.Base64URLFormat) - delete(rawMsg, key) - case "iv": - err = runtime.DecodeByteArray(string(val), &k.Iv, runtime.Base64URLFormat) - delete(rawMsg, key) - case "kid": - err = unpopulate(val, &k.Kid) - delete(rawMsg, key) - case "value": - err = runtime.DecodeByteArray(string(val), &k.Result, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// KeyOperationsParameters - The key operations parameters. -type KeyOperationsParameters struct { - // REQUIRED; algorithm identifier - Algorithm *JSONWebKeyEncryptionAlgorithm `json:"alg,omitempty"` - - // REQUIRED - Value []byte `json:"value,omitempty"` - - // Additional data to authenticate but not encrypt/decrypt when using authenticated crypto algorithms. - AAD []byte `json:"aad,omitempty"` - - // Initialization vector for symmetric algorithms. - Iv []byte `json:"iv,omitempty"` - - // The tag to authenticate when performing decryption with an authenticated algorithm. - Tag []byte `json:"tag,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyOperationsParameters. -func (k KeyOperationsParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "aad", k.AAD, runtime.Base64URLFormat) - populate(objectMap, "alg", k.Algorithm) - populateByteArray(objectMap, "iv", k.Iv, runtime.Base64URLFormat) - populateByteArray(objectMap, "tag", k.Tag, runtime.Base64URLFormat) - populateByteArray(objectMap, "value", k.Value, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type KeyOperationsParameters. -func (k *KeyOperationsParameters) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "aad": - err = runtime.DecodeByteArray(string(val), &k.AAD, runtime.Base64URLFormat) - delete(rawMsg, key) - case "alg": - err = unpopulate(val, &k.Algorithm) - delete(rawMsg, key) - case "iv": - err = runtime.DecodeByteArray(string(val), &k.Iv, runtime.Base64URLFormat) - delete(rawMsg, key) - case "tag": - err = runtime.DecodeByteArray(string(val), &k.Tag, runtime.Base64URLFormat) - delete(rawMsg, key) - case "value": - err = runtime.DecodeByteArray(string(val), &k.Value, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// KeyProperties - Properties of the key pair backing a certificate. -type KeyProperties struct { - // Elliptic curve name. For valid values, see JsonWebKeyCurveName. - Curve *JSONWebKeyCurveName `json:"crv,omitempty"` - - // Not supported in this version. Indicates if the private key can be exported. - Exportable *bool `json:"exportable,omitempty"` - - // The key size in bits. For example: 2048, 3072, or 4096 for RSA. - KeySize *int32 `json:"key_size,omitempty"` - - // The type of key pair to be used for the certificate. - KeyType *JSONWebKeyType `json:"kty,omitempty"` - - // Indicates if the same key pair will be used on certificate renewal. - ReuseKey *bool `json:"reuse_key,omitempty"` -} - -// KeyRestoreParameters - The key restore parameters. -type KeyRestoreParameters struct { - // REQUIRED; The backup blob associated with a key bundle. - KeyBundleBackup []byte `json:"value,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyRestoreParameters. -func (k KeyRestoreParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", k.KeyBundleBackup, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type KeyRestoreParameters. -func (k *KeyRestoreParameters) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &k.KeyBundleBackup, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// KeySignParameters - The key operations parameters. -type KeySignParameters struct { - // REQUIRED; The signing/verification algorithm identifier. For more information on possible algorithm types, see JsonWebKeySignatureAlgorithm. - Algorithm *JSONWebKeySignatureAlgorithm `json:"alg,omitempty"` - - // REQUIRED - Value []byte `json:"value,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeySignParameters. -func (k KeySignParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "alg", k.Algorithm) - populateByteArray(objectMap, "value", k.Value, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type KeySignParameters. -func (k *KeySignParameters) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "alg": - err = unpopulate(val, &k.Algorithm) - delete(rawMsg, key) - case "value": - err = runtime.DecodeByteArray(string(val), &k.Value, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// KeyUpdateParameters - The key update parameters. -type KeyUpdateParameters struct { - // The attributes of a key managed by the key vault service. - KeyAttributes *KeyAttributes `json:"attributes,omitempty"` - - // Json web key operations. For more information on possible key operations, see JsonWebKeyOperation. - KeyOps []*JSONWebKeyOperation `json:"key_ops,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyUpdateParameters. -func (k KeyUpdateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", k.KeyAttributes) - populate(objectMap, "key_ops", k.KeyOps) - populate(objectMap, "tags", k.Tags) - return json.Marshal(objectMap) -} - -// KeyVaultClientBackupCertificateOptions contains the optional parameters for the KeyVaultClient.BackupCertificate method. -type KeyVaultClientBackupCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientBackupKeyOptions contains the optional parameters for the KeyVaultClient.BackupKey method. -type KeyVaultClientBackupKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientBackupSecretOptions contains the optional parameters for the KeyVaultClient.BackupSecret method. -type KeyVaultClientBackupSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientBackupStorageAccountOptions contains the optional parameters for the KeyVaultClient.BackupStorageAccount method. -type KeyVaultClientBackupStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientBeginFullBackupOptions contains the optional parameters for the KeyVaultClient.BeginFullBackup method. -type KeyVaultClientBeginFullBackupOptions struct { - // Azure blob shared access signature token pointing to a valid Azure blob container where full backup needs to be stored. This token needs to be valid - // for at least next 24 hours from the time of making this call - AzureStorageBlobContainerURI *SASTokenParameter -} - -// KeyVaultClientBeginFullRestoreOperationOptions contains the optional parameters for the KeyVaultClient.BeginFullRestoreOperation method. -type KeyVaultClientBeginFullRestoreOperationOptions struct { - // The Azure blob SAS token pointing to a folder where the previous successful full backup was stored - RestoreBlobDetails *RestoreOperationParameters -} - -// KeyVaultClientBeginSelectiveKeyRestoreOperationOptions contains the optional parameters for the KeyVaultClient.BeginSelectiveKeyRestoreOperation method. -type KeyVaultClientBeginSelectiveKeyRestoreOperationOptions struct { - // The Azure blob SAS token pointing to a folder where the previous successful full backup was stored - RestoreBlobDetails *SelectiveKeyRestoreOperationParameters -} - -// KeyVaultClientCreateCertificateOptions contains the optional parameters for the KeyVaultClient.CreateCertificate method. -type KeyVaultClientCreateCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientCreateKeyOptions contains the optional parameters for the KeyVaultClient.CreateKey method. -type KeyVaultClientCreateKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDecryptOptions contains the optional parameters for the KeyVaultClient.Decrypt method. -type KeyVaultClientDecryptOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteCertificateContactsOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateContacts method. -type KeyVaultClientDeleteCertificateContactsOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateIssuer method. -type KeyVaultClientDeleteCertificateIssuerOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteCertificateOperationOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateOperation method. -type KeyVaultClientDeleteCertificateOperationOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteCertificateOptions contains the optional parameters for the KeyVaultClient.DeleteCertificate method. -type KeyVaultClientDeleteCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteKeyOptions contains the optional parameters for the KeyVaultClient.DeleteKey method. -type KeyVaultClientDeleteKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteSasDefinitionOptions contains the optional parameters for the KeyVaultClient.DeleteSasDefinition method. -type KeyVaultClientDeleteSasDefinitionOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteSecretOptions contains the optional parameters for the KeyVaultClient.DeleteSecret method. -type KeyVaultClientDeleteSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteStorageAccountOptions contains the optional parameters for the KeyVaultClient.DeleteStorageAccount method. -type KeyVaultClientDeleteStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientEncryptOptions contains the optional parameters for the KeyVaultClient.Encrypt method. -type KeyVaultClientEncryptOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientFullBackupStatusOptions contains the optional parameters for the KeyVaultClient.FullBackupStatus method. -type KeyVaultClientFullBackupStatusOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateContactsOptions contains the optional parameters for the KeyVaultClient.GetCertificateContacts method. -type KeyVaultClientGetCertificateContactsOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.GetCertificateIssuer method. -type KeyVaultClientGetCertificateIssuerOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateIssuersOptions contains the optional parameters for the KeyVaultClient.GetCertificateIssuers method. -type KeyVaultClientGetCertificateIssuersOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetCertificateOperationOptions contains the optional parameters for the KeyVaultClient.GetCertificateOperation method. -type KeyVaultClientGetCertificateOperationOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateOptions contains the optional parameters for the KeyVaultClient.GetCertificate method. -type KeyVaultClientGetCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificatePolicyOptions contains the optional parameters for the KeyVaultClient.GetCertificatePolicy method. -type KeyVaultClientGetCertificatePolicyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateVersionsOptions contains the optional parameters for the KeyVaultClient.GetCertificateVersions method. -type KeyVaultClientGetCertificateVersionsOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetCertificatesOptions contains the optional parameters for the KeyVaultClient.GetCertificates method. -type KeyVaultClientGetCertificatesOptions struct { - // Specifies whether to include certificates which are not completely provisioned. - IncludePending *bool - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.GetDeletedCertificate method. -type KeyVaultClientGetDeletedCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetDeletedCertificatesOptions contains the optional parameters for the KeyVaultClient.GetDeletedCertificates method. -type KeyVaultClientGetDeletedCertificatesOptions struct { - // Specifies whether to include certificates which are not completely provisioned. - IncludePending *bool - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetDeletedKeyOptions contains the optional parameters for the KeyVaultClient.GetDeletedKey method. -type KeyVaultClientGetDeletedKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetDeletedKeysOptions contains the optional parameters for the KeyVaultClient.GetDeletedKeys method. -type KeyVaultClientGetDeletedKeysOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetDeletedSasDefinitionOptions contains the optional parameters for the KeyVaultClient.GetDeletedSasDefinition method. -type KeyVaultClientGetDeletedSasDefinitionOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetDeletedSasDefinitionsOptions contains the optional parameters for the KeyVaultClient.GetDeletedSasDefinitions method. -type KeyVaultClientGetDeletedSasDefinitionsOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetDeletedSecretOptions contains the optional parameters for the KeyVaultClient.GetDeletedSecret method. -type KeyVaultClientGetDeletedSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetDeletedSecretsOptions contains the optional parameters for the KeyVaultClient.GetDeletedSecrets method. -type KeyVaultClientGetDeletedSecretsOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetDeletedStorageAccountOptions contains the optional parameters for the KeyVaultClient.GetDeletedStorageAccount method. -type KeyVaultClientGetDeletedStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetDeletedStorageAccountsOptions contains the optional parameters for the KeyVaultClient.GetDeletedStorageAccounts method. -type KeyVaultClientGetDeletedStorageAccountsOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetKeyOptions contains the optional parameters for the KeyVaultClient.GetKey method. -type KeyVaultClientGetKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetKeyVersionsOptions contains the optional parameters for the KeyVaultClient.GetKeyVersions method. -type KeyVaultClientGetKeyVersionsOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetKeysOptions contains the optional parameters for the KeyVaultClient.GetKeys method. -type KeyVaultClientGetKeysOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetSasDefinitionOptions contains the optional parameters for the KeyVaultClient.GetSasDefinition method. -type KeyVaultClientGetSasDefinitionOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetSasDefinitionsOptions contains the optional parameters for the KeyVaultClient.GetSasDefinitions method. -type KeyVaultClientGetSasDefinitionsOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetSecretOptions contains the optional parameters for the KeyVaultClient.GetSecret method. -type KeyVaultClientGetSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetSecretVersionsOptions contains the optional parameters for the KeyVaultClient.GetSecretVersions method. -type KeyVaultClientGetSecretVersionsOptions struct { - // Maximum number of results to return in a page. If not specified, the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetSecretsOptions contains the optional parameters for the KeyVaultClient.GetSecrets method. -type KeyVaultClientGetSecretsOptions struct { - // Maximum number of results to return in a page. If not specified, the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetStorageAccountOptions contains the optional parameters for the KeyVaultClient.GetStorageAccount method. -type KeyVaultClientGetStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetStorageAccountsOptions contains the optional parameters for the KeyVaultClient.GetStorageAccounts method. -type KeyVaultClientGetStorageAccountsOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientImportCertificateOptions contains the optional parameters for the KeyVaultClient.ImportCertificate method. -type KeyVaultClientImportCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientImportKeyOptions contains the optional parameters for the KeyVaultClient.ImportKey method. -type KeyVaultClientImportKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientMergeCertificateOptions contains the optional parameters for the KeyVaultClient.MergeCertificate method. -type KeyVaultClientMergeCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientPurgeDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.PurgeDeletedCertificate method. -type KeyVaultClientPurgeDeletedCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientPurgeDeletedKeyOptions contains the optional parameters for the KeyVaultClient.PurgeDeletedKey method. -type KeyVaultClientPurgeDeletedKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientPurgeDeletedSecretOptions contains the optional parameters for the KeyVaultClient.PurgeDeletedSecret method. -type KeyVaultClientPurgeDeletedSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientPurgeDeletedStorageAccountOptions contains the optional parameters for the KeyVaultClient.PurgeDeletedStorageAccount method. -type KeyVaultClientPurgeDeletedStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRecoverDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.RecoverDeletedCertificate method. -type KeyVaultClientRecoverDeletedCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRecoverDeletedKeyOptions contains the optional parameters for the KeyVaultClient.RecoverDeletedKey method. -type KeyVaultClientRecoverDeletedKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRecoverDeletedSasDefinitionOptions contains the optional parameters for the KeyVaultClient.RecoverDeletedSasDefinition method. -type KeyVaultClientRecoverDeletedSasDefinitionOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRecoverDeletedSecretOptions contains the optional parameters for the KeyVaultClient.RecoverDeletedSecret method. -type KeyVaultClientRecoverDeletedSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRecoverDeletedStorageAccountOptions contains the optional parameters for the KeyVaultClient.RecoverDeletedStorageAccount method. -type KeyVaultClientRecoverDeletedStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRegenerateStorageAccountKeyOptions contains the optional parameters for the KeyVaultClient.RegenerateStorageAccountKey method. -type KeyVaultClientRegenerateStorageAccountKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRestoreCertificateOptions contains the optional parameters for the KeyVaultClient.RestoreCertificate method. -type KeyVaultClientRestoreCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRestoreKeyOptions contains the optional parameters for the KeyVaultClient.RestoreKey method. -type KeyVaultClientRestoreKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRestoreSecretOptions contains the optional parameters for the KeyVaultClient.RestoreSecret method. -type KeyVaultClientRestoreSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRestoreStatusOptions contains the optional parameters for the KeyVaultClient.RestoreStatus method. -type KeyVaultClientRestoreStatusOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRestoreStorageAccountOptions contains the optional parameters for the KeyVaultClient.RestoreStorageAccount method. -type KeyVaultClientRestoreStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientSetCertificateContactsOptions contains the optional parameters for the KeyVaultClient.SetCertificateContacts method. -type KeyVaultClientSetCertificateContactsOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientSetCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.SetCertificateIssuer method. -type KeyVaultClientSetCertificateIssuerOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientSetSasDefinitionOptions contains the optional parameters for the KeyVaultClient.SetSasDefinition method. -type KeyVaultClientSetSasDefinitionOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientSetSecretOptions contains the optional parameters for the KeyVaultClient.SetSecret method. -type KeyVaultClientSetSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientSetStorageAccountOptions contains the optional parameters for the KeyVaultClient.SetStorageAccount method. -type KeyVaultClientSetStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientSignOptions contains the optional parameters for the KeyVaultClient.Sign method. -type KeyVaultClientSignOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUnwrapKeyOptions contains the optional parameters for the KeyVaultClient.UnwrapKey method. -type KeyVaultClientUnwrapKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.UpdateCertificateIssuer method. -type KeyVaultClientUpdateCertificateIssuerOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateCertificateOperationOptions contains the optional parameters for the KeyVaultClient.UpdateCertificateOperation method. -type KeyVaultClientUpdateCertificateOperationOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateCertificateOptions contains the optional parameters for the KeyVaultClient.UpdateCertificate method. -type KeyVaultClientUpdateCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateCertificatePolicyOptions contains the optional parameters for the KeyVaultClient.UpdateCertificatePolicy method. -type KeyVaultClientUpdateCertificatePolicyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateKeyOptions contains the optional parameters for the KeyVaultClient.UpdateKey method. -type KeyVaultClientUpdateKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateSasDefinitionOptions contains the optional parameters for the KeyVaultClient.UpdateSasDefinition method. -type KeyVaultClientUpdateSasDefinitionOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateSecretOptions contains the optional parameters for the KeyVaultClient.UpdateSecret method. -type KeyVaultClientUpdateSecretOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateStorageAccountOptions contains the optional parameters for the KeyVaultClient.UpdateStorageAccount method. -type KeyVaultClientUpdateStorageAccountOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientVerifyOptions contains the optional parameters for the KeyVaultClient.Verify method. -type KeyVaultClientVerifyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientWrapKeyOptions contains the optional parameters for the KeyVaultClient.WrapKey method. -type KeyVaultClientWrapKeyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultError - The key vault error exception. -// Implements the error and azcore.HTTPResponse interfaces. -type KeyVaultError struct { - raw string - // READ-ONLY; The key vault server error. - InnerError *Error `json:"error,omitempty" azure:"ro"` -} - -// Error implements the error interface for type KeyVaultError. -// The contents of the error text are not contractual and subject to change. -func (e KeyVaultError) Error() string { - return e.raw -} - -// KeyVerifyParameters - The key verify parameters. -type KeyVerifyParameters struct { - // REQUIRED; The signing/verification algorithm. For more information on possible algorithm types, see JsonWebKeySignatureAlgorithm. - Algorithm *JSONWebKeySignatureAlgorithm `json:"alg,omitempty"` - - // REQUIRED; The digest used for signing. - Digest []byte `json:"digest,omitempty"` - - // REQUIRED; The signature to be verified. - Signature []byte `json:"value,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type KeyVerifyParameters. -func (k KeyVerifyParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "alg", k.Algorithm) - populateByteArray(objectMap, "digest", k.Digest, runtime.Base64URLFormat) - populateByteArray(objectMap, "value", k.Signature, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type KeyVerifyParameters. -func (k *KeyVerifyParameters) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "alg": - err = unpopulate(val, &k.Algorithm) - delete(rawMsg, key) - case "digest": - err = runtime.DecodeByteArray(string(val), &k.Digest, runtime.Base64URLFormat) - delete(rawMsg, key) - case "value": - err = runtime.DecodeByteArray(string(val), &k.Signature, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// KeyVerifyResult - The key verify result. -type KeyVerifyResult struct { - // READ-ONLY; True if the signature is verified, otherwise false. - Value *bool `json:"value,omitempty" azure:"ro"` -} - -// LifetimeAction - Action and its trigger that will be performed by Key Vault over the lifetime of a certificate. -type LifetimeAction struct { - // The action that will be executed. - Action *Action `json:"action,omitempty"` - - // The condition that will execute the action. - Trigger *Trigger `json:"trigger,omitempty"` -} - -// OrganizationDetails - Details of the organization of the certificate issuer. -type OrganizationDetails struct { - // Details of the organization administrator. - AdminDetails []*AdministratorDetails `json:"admin_details,omitempty"` - - // Id of the organization. - ID *string `json:"id,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type OrganizationDetails. -func (o OrganizationDetails) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "admin_details", o.AdminDetails) - populate(objectMap, "id", o.ID) - return json.Marshal(objectMap) -} - -// PendingCertificateSigningRequestResult - The pending certificate signing request result. -type PendingCertificateSigningRequestResult struct { - // READ-ONLY; The pending certificate signing request as Base64 encoded string. - Value *string `json:"value,omitempty" azure:"ro"` -} - -// Permission - Role definition permissions. -type Permission struct { - // Action permissions that are granted. - Actions []*string `json:"actions,omitempty"` - - // Data action permissions that are granted. - DataActions []*DataAction `json:"dataActions,omitempty"` - - // Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. - NotActions []*string `json:"notActions,omitempty"` - - // Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. - NotDataActions []*DataAction `json:"notDataActions,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type Permission. -func (p Permission) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "actions", p.Actions) - populate(objectMap, "dataActions", p.DataActions) - populate(objectMap, "notActions", p.NotActions) - populate(objectMap, "notDataActions", p.NotDataActions) - return json.Marshal(objectMap) -} - -// RestoreOperation - Restore operation -type RestoreOperation struct { - // The end time of the restore operation - EndTime *time.Time `json:"endTime,omitempty"` - - // Error encountered, if any, during the restore operation. - Error *Error `json:"error,omitempty"` - - // Identifier for the restore operation. - JobID *string `json:"jobId,omitempty"` - - // The start time of the restore operation - StartTime *time.Time `json:"startTime,omitempty"` - - // Status of the restore operation. - Status *string `json:"status,omitempty"` - - // The status details of restore operation. - StatusDetails *string `json:"statusDetails,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type RestoreOperation. -func (r RestoreOperation) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "endTime", (*timeUnix)(r.EndTime)) - populate(objectMap, "error", r.Error) - populate(objectMap, "jobId", r.JobID) - populate(objectMap, "startTime", (*timeUnix)(r.StartTime)) - populate(objectMap, "status", r.Status) - populate(objectMap, "statusDetails", r.StatusDetails) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type RestoreOperation. -func (r *RestoreOperation) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "endTime": - var aux timeUnix - err = unpopulate(val, &aux) - r.EndTime = (*time.Time)(&aux) - delete(rawMsg, key) - case "error": - err = unpopulate(val, &r.Error) - delete(rawMsg, key) - case "jobId": - err = unpopulate(val, &r.JobID) - delete(rawMsg, key) - case "startTime": - var aux timeUnix - err = unpopulate(val, &aux) - r.StartTime = (*time.Time)(&aux) - delete(rawMsg, key) - case "status": - err = unpopulate(val, &r.Status) - delete(rawMsg, key) - case "statusDetails": - err = unpopulate(val, &r.StatusDetails) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -type RestoreOperationParameters struct { - // REQUIRED; The Folder name of the blob where the previous successful full backup was stored - FolderToRestore *string `json:"folderToRestore,omitempty"` - - // REQUIRED; SAS token parameter object containing Azure storage resourceUri and token - SasTokenParameters *SASTokenParameter `json:"sasTokenParameters,omitempty"` -} - -// RoleAssignment - Role Assignments -type RoleAssignment struct { - // Role assignment properties. - Properties *RoleAssignmentPropertiesWithScope `json:"properties,omitempty"` - - // READ-ONLY; The role assignment ID. - ID *string `json:"id,omitempty" azure:"ro"` - - // READ-ONLY; The role assignment name. - Name *string `json:"name,omitempty" azure:"ro"` - - // READ-ONLY; The role assignment type. - Type *string `json:"type,omitempty" azure:"ro"` -} - -// RoleAssignmentCreateParameters - Role assignment create parameters. -type RoleAssignmentCreateParameters struct { - // REQUIRED; Role assignment properties. - Properties *RoleAssignmentProperties `json:"properties,omitempty"` -} - -// RoleAssignmentFilter - Role Assignments filter -type RoleAssignmentFilter struct { - // Returns role assignment of the specific principal. - PrincipalID *string `json:"principalId,omitempty"` -} - -// RoleAssignmentListResult - Role assignment list operation result. -type RoleAssignmentListResult struct { - // The URL to use for getting the next set of results. - NextLink *string `json:"nextLink,omitempty"` - - // Role assignment list. - Value []*RoleAssignment `json:"value,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type RoleAssignmentListResult. -func (r RoleAssignmentListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", r.NextLink) - populate(objectMap, "value", r.Value) - return json.Marshal(objectMap) -} - -// RoleAssignmentProperties - Role assignment properties. -type RoleAssignmentProperties struct { - // REQUIRED; The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security - // group. - PrincipalID *string `json:"principalId,omitempty"` - - // REQUIRED; The role definition ID used in the role assignment. - RoleDefinitionID *string `json:"roleDefinitionId,omitempty"` -} - -// RoleAssignmentPropertiesWithScope - Role assignment properties with scope. -type RoleAssignmentPropertiesWithScope struct { - // The principal ID. - PrincipalID *string `json:"principalId,omitempty"` - - // The role definition ID. - RoleDefinitionID *string `json:"roleDefinitionId,omitempty"` - - // The role scope. - Scope *RoleScope `json:"scope,omitempty"` -} - -// RoleAssignmentsCreateOptions contains the optional parameters for the RoleAssignments.Create method. -type RoleAssignmentsCreateOptions struct { - // placeholder for future optional parameters -} - -// RoleAssignmentsDeleteOptions contains the optional parameters for the RoleAssignments.Delete method. -type RoleAssignmentsDeleteOptions struct { - // placeholder for future optional parameters -} - -// RoleAssignmentsGetOptions contains the optional parameters for the RoleAssignments.Get method. -type RoleAssignmentsGetOptions struct { - // placeholder for future optional parameters -} - -// RoleAssignmentsListForScopeOptions contains the optional parameters for the RoleAssignments.ListForScope method. -type RoleAssignmentsListForScopeOptions struct { - // The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to - // return all role assignments at, above or below the scope for the specified principal. - Filter *string -} - -// RoleDefinition - Role definition. -type RoleDefinition struct { - // Role definition properties. - Properties *RoleDefinitionProperties `json:"properties,omitempty"` - - // READ-ONLY; The role definition ID. - ID *string `json:"id,omitempty" azure:"ro"` - - // READ-ONLY; The role definition name. - Name *string `json:"name,omitempty" azure:"ro"` - - // READ-ONLY; The role definition type. - Type *RoleDefinitionType `json:"type,omitempty" azure:"ro"` -} - -// RoleDefinitionCreateParameters - Role definition create parameters. -type RoleDefinitionCreateParameters struct { - // REQUIRED; Role definition properties. - Properties *RoleDefinitionProperties `json:"properties,omitempty"` -} - -// RoleDefinitionFilter - Role Definitions filter -type RoleDefinitionFilter struct { - // Returns role definition with the specific name. - RoleName *string `json:"roleName,omitempty"` -} - -// RoleDefinitionListResult - Role definition list operation result. -type RoleDefinitionListResult struct { - // The URL to use for getting the next set of results. - NextLink *string `json:"nextLink,omitempty"` - - // Role definition list. - Value []*RoleDefinition `json:"value,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type RoleDefinitionListResult. -func (r RoleDefinitionListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", r.NextLink) - populate(objectMap, "value", r.Value) - return json.Marshal(objectMap) -} - -// RoleDefinitionProperties - Role definition properties. -type RoleDefinitionProperties struct { - // Role definition assignable scopes. - AssignableScopes []*RoleScope `json:"assignableScopes,omitempty"` - - // The role definition description. - Description *string `json:"description,omitempty"` - - // Role definition permissions. - Permissions []*Permission `json:"permissions,omitempty"` - - // The role name. - RoleName *string `json:"roleName,omitempty"` - - // The role type. - RoleType *RoleType `json:"type,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type RoleDefinitionProperties. -func (r RoleDefinitionProperties) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "assignableScopes", r.AssignableScopes) - populate(objectMap, "description", r.Description) - populate(objectMap, "permissions", r.Permissions) - populate(objectMap, "roleName", r.RoleName) - populate(objectMap, "type", r.RoleType) - return json.Marshal(objectMap) -} - -// RoleDefinitionsCreateOrUpdateOptions contains the optional parameters for the RoleDefinitions.CreateOrUpdate method. -type RoleDefinitionsCreateOrUpdateOptions struct { - // placeholder for future optional parameters -} - -// RoleDefinitionsDeleteOptions contains the optional parameters for the RoleDefinitions.Delete method. -type RoleDefinitionsDeleteOptions struct { - // placeholder for future optional parameters -} - -// RoleDefinitionsGetOptions contains the optional parameters for the RoleDefinitions.Get method. -type RoleDefinitionsGetOptions struct { - // placeholder for future optional parameters -} - -// RoleDefinitionsListOptions contains the optional parameters for the RoleDefinitions.List method. -type RoleDefinitionsListOptions struct { - // The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well. - Filter *string -} - -type SASTokenParameter struct { - // REQUIRED; Azure Blob storage container Uri - StorageResourceURI *string `json:"storageResourceUri,omitempty"` - - // REQUIRED; The SAS token pointing to an Azure Blob storage container - Token *string `json:"token,omitempty"` -} - -// SasDefinitionAttributes - The SAS definition management attributes. -type SasDefinitionAttributes struct { - // the enabled state of the object. - Enabled *bool `json:"enabled,omitempty"` - - // READ-ONLY; Creation time in UTC. - Created *time.Time `json:"created,omitempty" azure:"ro"` - - // READ-ONLY; softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. - RecoverableDays *int32 `json:"recoverableDays,omitempty" azure:"ro"` - - // READ-ONLY; Reflects the deletion recovery level currently in effect for SAS definitions in the current vault. If it contains 'Purgeable' the SAS definition - // can be permanently deleted by a privileged user; - // otherwise, only the system can purge the SAS definition, at the end of the retention interval. - RecoveryLevel *DeletionRecoveryLevel `json:"recoveryLevel,omitempty" azure:"ro"` - - // READ-ONLY; Last updated time in UTC. - Updated *time.Time `json:"updated,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type SasDefinitionAttributes. -func (s SasDefinitionAttributes) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "created", (*timeUnix)(s.Created)) - populate(objectMap, "enabled", s.Enabled) - populate(objectMap, "recoverableDays", s.RecoverableDays) - populate(objectMap, "recoveryLevel", s.RecoveryLevel) - populate(objectMap, "updated", (*timeUnix)(s.Updated)) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type SasDefinitionAttributes. -func (s *SasDefinitionAttributes) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "created": - var aux timeUnix - err = unpopulate(val, &aux) - s.Created = (*time.Time)(&aux) - delete(rawMsg, key) - case "enabled": - err = unpopulate(val, &s.Enabled) - delete(rawMsg, key) - case "recoverableDays": - err = unpopulate(val, &s.RecoverableDays) - delete(rawMsg, key) - case "recoveryLevel": - err = unpopulate(val, &s.RecoveryLevel) - delete(rawMsg, key) - case "updated": - var aux timeUnix - err = unpopulate(val, &aux) - s.Updated = (*time.Time)(&aux) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// SasDefinitionBundle - A SAS definition bundle consists of key vault SAS definition details plus its attributes. -type SasDefinitionBundle struct { - // READ-ONLY; The SAS definition attributes. - Attributes *SasDefinitionAttributes `json:"attributes,omitempty" azure:"ro"` - - // READ-ONLY; The SAS definition id. - ID *string `json:"id,omitempty" azure:"ro"` - - // READ-ONLY; The type of SAS token the SAS definition will create. - SasType *SasTokenType `json:"sasType,omitempty" azure:"ro"` - - // READ-ONLY; Storage account SAS definition secret id. - SecretID *string `json:"sid,omitempty" azure:"ro"` - - // READ-ONLY; Application specific metadata in the form of key-value pairs - Tags map[string]*string `json:"tags,omitempty" azure:"ro"` - - // READ-ONLY; The SAS definition token template signed with an arbitrary key. Tokens created according to the SAS definition will have the same properties - // as the template. - TemplateURI *string `json:"templateUri,omitempty" azure:"ro"` - - // READ-ONLY; The validity period of SAS tokens created according to the SAS definition. - ValidityPeriod *string `json:"validityPeriod,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type SasDefinitionBundle. -func (s SasDefinitionBundle) MarshalJSON() ([]byte, error) { - objectMap := s.marshalInternal() - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type SasDefinitionBundle. -func (s *SasDefinitionBundle) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - return s.unmarshalInternal(rawMsg) -} - -func (s SasDefinitionBundle) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", s.Attributes) - populate(objectMap, "id", s.ID) - populate(objectMap, "sasType", s.SasType) - populate(objectMap, "sid", s.SecretID) - populate(objectMap, "tags", s.Tags) - populate(objectMap, "templateUri", s.TemplateURI) - populate(objectMap, "validityPeriod", s.ValidityPeriod) - return objectMap -} - -func (s *SasDefinitionBundle) unmarshalInternal(rawMsg map[string]json.RawMessage) error { - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &s.Attributes) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &s.ID) - delete(rawMsg, key) - case "sasType": - err = unpopulate(val, &s.SasType) - delete(rawMsg, key) - case "sid": - err = unpopulate(val, &s.SecretID) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &s.Tags) - delete(rawMsg, key) - case "templateUri": - err = unpopulate(val, &s.TemplateURI) - delete(rawMsg, key) - case "validityPeriod": - err = unpopulate(val, &s.ValidityPeriod) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// SasDefinitionCreateParameters - The SAS definition create parameters. -type SasDefinitionCreateParameters struct { - // REQUIRED; The type of SAS token the SAS definition will create. - SasType *SasTokenType `json:"sasType,omitempty"` - - // REQUIRED; The SAS definition token template signed with an arbitrary key. Tokens created according to the SAS definition will have the same properties - // as the template. - TemplateURI *string `json:"templateUri,omitempty"` - - // REQUIRED; The validity period of SAS tokens created according to the SAS definition. - ValidityPeriod *string `json:"validityPeriod,omitempty"` - - // The attributes of the SAS definition. - SasDefinitionAttributes *SasDefinitionAttributes `json:"attributes,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type SasDefinitionCreateParameters. -func (s SasDefinitionCreateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", s.SasDefinitionAttributes) - populate(objectMap, "sasType", s.SasType) - populate(objectMap, "tags", s.Tags) - populate(objectMap, "templateUri", s.TemplateURI) - populate(objectMap, "validityPeriod", s.ValidityPeriod) - return json.Marshal(objectMap) +// RoleAssignmentsListForScopeOptions contains the optional parameters for the RoleAssignments.ListForScope method. +type RoleAssignmentsListForScopeOptions struct { + // The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to + // return all role assignments at, above or below the scope for the specified principal. + Filter *string } -// SasDefinitionItem - The SAS definition item containing storage SAS definition metadata. -type SasDefinitionItem struct { - // READ-ONLY; The SAS definition management attributes. - Attributes *SasDefinitionAttributes `json:"attributes,omitempty" azure:"ro"` +// RoleDefinition - Role definition. +type RoleDefinition struct { + // Role definition properties. + Properties *RoleDefinitionProperties `json:"properties,omitempty"` - // READ-ONLY; The storage SAS identifier. + // READ-ONLY; The role definition ID. ID *string `json:"id,omitempty" azure:"ro"` - // READ-ONLY; The storage account SAS definition secret id. - SecretID *string `json:"sid,omitempty" azure:"ro"` - - // READ-ONLY; Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type SasDefinitionItem. -func (s SasDefinitionItem) MarshalJSON() ([]byte, error) { - objectMap := s.marshalInternal() - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type SasDefinitionItem. -func (s *SasDefinitionItem) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - return s.unmarshalInternal(rawMsg) -} - -func (s SasDefinitionItem) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", s.Attributes) - populate(objectMap, "id", s.ID) - populate(objectMap, "sid", s.SecretID) - populate(objectMap, "tags", s.Tags) - return objectMap -} - -func (s *SasDefinitionItem) unmarshalInternal(rawMsg map[string]json.RawMessage) error { - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &s.Attributes) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &s.ID) - delete(rawMsg, key) - case "sid": - err = unpopulate(val, &s.SecretID) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &s.Tags) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// SasDefinitionListResult - The storage account SAS definition list result. -type SasDefinitionListResult struct { - // READ-ONLY; The URL to get the next set of SAS definitions. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of SAS definitions along with a link to the next page of SAS definitions. - Value []*SasDefinitionItem `json:"value,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type SasDefinitionListResult. -func (s SasDefinitionListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", s.NextLink) - populate(objectMap, "value", s.Value) - return json.Marshal(objectMap) -} - -// SasDefinitionUpdateParameters - The SAS definition update parameters. -type SasDefinitionUpdateParameters struct { - // The attributes of the SAS definition. - SasDefinitionAttributes *SasDefinitionAttributes `json:"attributes,omitempty"` - - // The type of SAS token the SAS definition will create. - SasType *SasTokenType `json:"sasType,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` - - // The SAS definition token template signed with an arbitrary key. Tokens created according to the SAS definition will have the same properties as the template. - TemplateURI *string `json:"templateUri,omitempty"` - - // The validity period of SAS tokens created according to the SAS definition. - ValidityPeriod *string `json:"validityPeriod,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type SasDefinitionUpdateParameters. -func (s SasDefinitionUpdateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", s.SasDefinitionAttributes) - populate(objectMap, "sasType", s.SasType) - populate(objectMap, "tags", s.Tags) - populate(objectMap, "templateUri", s.TemplateURI) - populate(objectMap, "validityPeriod", s.ValidityPeriod) - return json.Marshal(objectMap) -} - -// SecretAttributes - The secret management attributes. -type SecretAttributes struct { - Attributes - // READ-ONLY; softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. - RecoverableDays *int32 `json:"recoverableDays,omitempty" azure:"ro"` - - // READ-ONLY; Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently - // deleted by a privileged user; otherwise, only the - // system can purge the secret, at the end of the retention interval. - RecoveryLevel *DeletionRecoveryLevel `json:"recoveryLevel,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type SecretAttributes. -func (s SecretAttributes) MarshalJSON() ([]byte, error) { - objectMap := s.Attributes.marshalInternal() - populate(objectMap, "recoverableDays", s.RecoverableDays) - populate(objectMap, "recoveryLevel", s.RecoveryLevel) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type SecretAttributes. -func (s *SecretAttributes) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "recoverableDays": - err = unpopulate(val, &s.RecoverableDays) - delete(rawMsg, key) - case "recoveryLevel": - err = unpopulate(val, &s.RecoveryLevel) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return s.Attributes.unmarshalInternal(rawMsg) -} - -// SecretBundle - A secret consisting of a value, id and its attributes. -type SecretBundle struct { - // The secret management attributes. - Attributes *SecretAttributes `json:"attributes,omitempty"` - - // The content type of the secret. - ContentType *string `json:"contentType,omitempty"` - - // The secret id. - ID *string `json:"id,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` - - // The secret value. - Value *string `json:"value,omitempty"` - - // READ-ONLY; If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate. - Kid *string `json:"kid,omitempty" azure:"ro"` - - // READ-ONLY; True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true. - Managed *bool `json:"managed,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type SecretBundle. -func (s SecretBundle) MarshalJSON() ([]byte, error) { - objectMap := s.marshalInternal() - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type SecretBundle. -func (s *SecretBundle) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - return s.unmarshalInternal(rawMsg) -} - -func (s SecretBundle) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", s.Attributes) - populate(objectMap, "contentType", s.ContentType) - populate(objectMap, "id", s.ID) - populate(objectMap, "kid", s.Kid) - populate(objectMap, "managed", s.Managed) - populate(objectMap, "tags", s.Tags) - populate(objectMap, "value", s.Value) - return objectMap -} - -func (s *SecretBundle) unmarshalInternal(rawMsg map[string]json.RawMessage) error { - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &s.Attributes) - delete(rawMsg, key) - case "contentType": - err = unpopulate(val, &s.ContentType) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &s.ID) - delete(rawMsg, key) - case "kid": - err = unpopulate(val, &s.Kid) - delete(rawMsg, key) - case "managed": - err = unpopulate(val, &s.Managed) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &s.Tags) - delete(rawMsg, key) - case "value": - err = unpopulate(val, &s.Value) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// SecretItem - The secret item containing secret metadata. -type SecretItem struct { - // The secret management attributes. - Attributes *SecretAttributes `json:"attributes,omitempty"` - - // Type of the secret value such as a password. - ContentType *string `json:"contentType,omitempty"` - - // Secret identifier. - ID *string `json:"id,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` - - // READ-ONLY; True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true. - Managed *bool `json:"managed,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type SecretItem. -func (s SecretItem) MarshalJSON() ([]byte, error) { - objectMap := s.marshalInternal() - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type SecretItem. -func (s *SecretItem) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - return s.unmarshalInternal(rawMsg) -} - -func (s SecretItem) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", s.Attributes) - populate(objectMap, "contentType", s.ContentType) - populate(objectMap, "id", s.ID) - populate(objectMap, "managed", s.Managed) - populate(objectMap, "tags", s.Tags) - return objectMap -} + // READ-ONLY; The role definition name. + Name *string `json:"name,omitempty" azure:"ro"` -func (s *SecretItem) unmarshalInternal(rawMsg map[string]json.RawMessage) error { - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &s.Attributes) - delete(rawMsg, key) - case "contentType": - err = unpopulate(val, &s.ContentType) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &s.ID) - delete(rawMsg, key) - case "managed": - err = unpopulate(val, &s.Managed) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &s.Tags) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil + // READ-ONLY; The role definition type. + Type *RoleDefinitionType `json:"type,omitempty" azure:"ro"` } -// SecretListResult - The secret list result. -type SecretListResult struct { - // READ-ONLY; The URL to get the next set of secrets. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of secrets in the key vault along with a link to the next page of secrets. - Value []*SecretItem `json:"value,omitempty" azure:"ro"` +// RoleDefinitionCreateParameters - Role definition create parameters. +type RoleDefinitionCreateParameters struct { + // REQUIRED; Role definition properties. + Properties *RoleDefinitionProperties `json:"properties,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type SecretListResult. -func (s SecretListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", s.NextLink) - populate(objectMap, "value", s.Value) - return json.Marshal(objectMap) +// RoleDefinitionFilter - Role Definitions filter +type RoleDefinitionFilter struct { + // Returns role definition with the specific name. + RoleName *string `json:"roleName,omitempty"` } -// SecretProperties - Properties of the key backing a certificate. -type SecretProperties struct { - // The media type (MIME type). - ContentType *string `json:"contentType,omitempty"` -} +// RoleDefinitionListResult - Role definition list operation result. +type RoleDefinitionListResult struct { + // The URL to use for getting the next set of results. + NextLink *string `json:"nextLink,omitempty"` -// SecretRestoreParameters - The secret restore parameters. -type SecretRestoreParameters struct { - // REQUIRED; The backup blob associated with a secret bundle. - SecretBundleBackup []byte `json:"value,omitempty"` + // Role definition list. + Value []*RoleDefinition `json:"value,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type SecretRestoreParameters. -func (s SecretRestoreParameters) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type RoleDefinitionListResult. +func (r RoleDefinitionListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", s.SecretBundleBackup, runtime.Base64URLFormat) + populate(objectMap, "nextLink", r.NextLink) + populate(objectMap, "value", r.Value) return json.Marshal(objectMap) } -// UnmarshalJSON implements the json.Unmarshaller interface for type SecretRestoreParameters. -func (s *SecretRestoreParameters) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &s.SecretBundleBackup, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} +// RoleDefinitionProperties - Role definition properties. +type RoleDefinitionProperties struct { + // Role definition assignable scopes. + AssignableScopes []*RoleScope `json:"assignableScopes,omitempty"` -// SecretSetParameters - The secret set parameters. -type SecretSetParameters struct { - // REQUIRED; The value of the secret. - Value *string `json:"value,omitempty"` + // The role definition description. + Description *string `json:"description,omitempty"` - // Type of the secret value such as a password. - ContentType *string `json:"contentType,omitempty"` + // Role definition permissions. + Permissions []*Permission `json:"permissions,omitempty"` - // The secret management attributes. - SecretAttributes *SecretAttributes `json:"attributes,omitempty"` + // The role name. + RoleName *string `json:"roleName,omitempty"` - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` + // The role type. + RoleType *RoleType `json:"type,omitempty"` } -// MarshalJSON implements the json.Marshaller interface for type SecretSetParameters. -func (s SecretSetParameters) MarshalJSON() ([]byte, error) { +// MarshalJSON implements the json.Marshaller interface for type RoleDefinitionProperties. +func (r RoleDefinitionProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - populate(objectMap, "contentType", s.ContentType) - populate(objectMap, "attributes", s.SecretAttributes) - populate(objectMap, "tags", s.Tags) - populate(objectMap, "value", s.Value) + populate(objectMap, "assignableScopes", r.AssignableScopes) + populate(objectMap, "description", r.Description) + populate(objectMap, "permissions", r.Permissions) + populate(objectMap, "roleName", r.RoleName) + populate(objectMap, "type", r.RoleType) return json.Marshal(objectMap) } -// SecretUpdateParameters - The secret update parameters. -type SecretUpdateParameters struct { - // Type of the secret value such as a password. - ContentType *string `json:"contentType,omitempty"` - - // The secret management attributes. - SecretAttributes *SecretAttributes `json:"attributes,omitempty"` +// RoleDefinitionsCreateOrUpdateOptions contains the optional parameters for the RoleDefinitions.CreateOrUpdate method. +type RoleDefinitionsCreateOrUpdateOptions struct { + // placeholder for future optional parameters +} - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` +// RoleDefinitionsDeleteOptions contains the optional parameters for the RoleDefinitions.Delete method. +type RoleDefinitionsDeleteOptions struct { + // placeholder for future optional parameters } -// MarshalJSON implements the json.Marshaller interface for type SecretUpdateParameters. -func (s SecretUpdateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "contentType", s.ContentType) - populate(objectMap, "attributes", s.SecretAttributes) - populate(objectMap, "tags", s.Tags) - return json.Marshal(objectMap) +// RoleDefinitionsGetOptions contains the optional parameters for the RoleDefinitions.Get method. +type RoleDefinitionsGetOptions struct { + // placeholder for future optional parameters } -type SecurityDomainCertificateItem struct { - // REQUIRED; Customer generated certificate containing public key in JWK format - Value *SecurityDomainJSONWebKey `json:"value,omitempty"` +// RoleDefinitionsListOptions contains the optional parameters for the RoleDefinitions.List method. +type RoleDefinitionsListOptions struct { + // The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well. + Filter *string } type SecurityDomainJSONWebKey struct { @@ -3761,439 +1622,6 @@ type SecurityDomainOperationStatus struct { StatusDetails *string `json:"status_details,omitempty"` } -// SelectiveKeyRestoreOperation - Selective Key Restore operation -type SelectiveKeyRestoreOperation struct { - // The end time of the restore operation - EndTime *time.Time `json:"endTime,omitempty"` - - // Error encountered, if any, during the selective key restore operation. - Error *Error `json:"error,omitempty"` - - // Identifier for the selective key restore operation. - JobID *string `json:"jobId,omitempty"` - - // The start time of the restore operation - StartTime *time.Time `json:"startTime,omitempty"` - - // Status of the restore operation. - Status *string `json:"status,omitempty"` - - // The status details of restore operation. - StatusDetails *string `json:"statusDetails,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type SelectiveKeyRestoreOperation. -func (s SelectiveKeyRestoreOperation) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "endTime", (*timeUnix)(s.EndTime)) - populate(objectMap, "error", s.Error) - populate(objectMap, "jobId", s.JobID) - populate(objectMap, "startTime", (*timeUnix)(s.StartTime)) - populate(objectMap, "status", s.Status) - populate(objectMap, "statusDetails", s.StatusDetails) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type SelectiveKeyRestoreOperation. -func (s *SelectiveKeyRestoreOperation) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "endTime": - var aux timeUnix - err = unpopulate(val, &aux) - s.EndTime = (*time.Time)(&aux) - delete(rawMsg, key) - case "error": - err = unpopulate(val, &s.Error) - delete(rawMsg, key) - case "jobId": - err = unpopulate(val, &s.JobID) - delete(rawMsg, key) - case "startTime": - var aux timeUnix - err = unpopulate(val, &aux) - s.StartTime = (*time.Time)(&aux) - delete(rawMsg, key) - case "status": - err = unpopulate(val, &s.Status) - delete(rawMsg, key) - case "statusDetails": - err = unpopulate(val, &s.StatusDetails) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -type SelectiveKeyRestoreOperationParameters struct { - // REQUIRED; The Folder name of the blob where the previous successful full backup was stored - Folder *string `json:"folder,omitempty"` - - // REQUIRED; SAS token parameter object containing Azure storage resourceUri and token - SasTokenParameters *SASTokenParameter `json:"sasTokenParameters,omitempty"` -} - -// StorageAccountAttributes - The storage account management attributes. -type StorageAccountAttributes struct { - // the enabled state of the object. - Enabled *bool `json:"enabled,omitempty"` - - // READ-ONLY; Creation time in UTC. - Created *time.Time `json:"created,omitempty" azure:"ro"` - - // READ-ONLY; softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. - RecoverableDays *int32 `json:"recoverableDays,omitempty" azure:"ro"` - - // READ-ONLY; Reflects the deletion recovery level currently in effect for storage accounts in the current vault. If it contains 'Purgeable' the storage - // account can be permanently deleted by a privileged user; - // otherwise, only the system can purge the storage account, at the end of the retention interval. - RecoveryLevel *DeletionRecoveryLevel `json:"recoveryLevel,omitempty" azure:"ro"` - - // READ-ONLY; Last updated time in UTC. - Updated *time.Time `json:"updated,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type StorageAccountAttributes. -func (s StorageAccountAttributes) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "created", (*timeUnix)(s.Created)) - populate(objectMap, "enabled", s.Enabled) - populate(objectMap, "recoverableDays", s.RecoverableDays) - populate(objectMap, "recoveryLevel", s.RecoveryLevel) - populate(objectMap, "updated", (*timeUnix)(s.Updated)) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type StorageAccountAttributes. -func (s *StorageAccountAttributes) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "created": - var aux timeUnix - err = unpopulate(val, &aux) - s.Created = (*time.Time)(&aux) - delete(rawMsg, key) - case "enabled": - err = unpopulate(val, &s.Enabled) - delete(rawMsg, key) - case "recoverableDays": - err = unpopulate(val, &s.RecoverableDays) - delete(rawMsg, key) - case "recoveryLevel": - err = unpopulate(val, &s.RecoveryLevel) - delete(rawMsg, key) - case "updated": - var aux timeUnix - err = unpopulate(val, &aux) - s.Updated = (*time.Time)(&aux) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// StorageAccountCreateParameters - The storage account create parameters. -type StorageAccountCreateParameters struct { - // REQUIRED; Current active storage account key name. - ActiveKeyName *string `json:"activeKeyName,omitempty"` - - // REQUIRED; whether keyvault should manage the storage account for the user. - AutoRegenerateKey *bool `json:"autoRegenerateKey,omitempty"` - - // REQUIRED; Storage account resource id. - ResourceID *string `json:"resourceId,omitempty"` - - // The key regeneration time duration specified in ISO-8601 format. - RegenerationPeriod *string `json:"regenerationPeriod,omitempty"` - - // The attributes of the storage account. - StorageAccountAttributes *StorageAccountAttributes `json:"attributes,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type StorageAccountCreateParameters. -func (s StorageAccountCreateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "activeKeyName", s.ActiveKeyName) - populate(objectMap, "autoRegenerateKey", s.AutoRegenerateKey) - populate(objectMap, "regenerationPeriod", s.RegenerationPeriod) - populate(objectMap, "resourceId", s.ResourceID) - populate(objectMap, "attributes", s.StorageAccountAttributes) - populate(objectMap, "tags", s.Tags) - return json.Marshal(objectMap) -} - -// StorageAccountItem - The storage account item containing storage account metadata. -type StorageAccountItem struct { - // READ-ONLY; The storage account management attributes. - Attributes *StorageAccountAttributes `json:"attributes,omitempty" azure:"ro"` - - // READ-ONLY; Storage identifier. - ID *string `json:"id,omitempty" azure:"ro"` - - // READ-ONLY; Storage account resource Id. - ResourceID *string `json:"resourceId,omitempty" azure:"ro"` - - // READ-ONLY; Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type StorageAccountItem. -func (s StorageAccountItem) MarshalJSON() ([]byte, error) { - objectMap := s.marshalInternal() - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type StorageAccountItem. -func (s *StorageAccountItem) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - return s.unmarshalInternal(rawMsg) -} - -func (s StorageAccountItem) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", s.Attributes) - populate(objectMap, "id", s.ID) - populate(objectMap, "resourceId", s.ResourceID) - populate(objectMap, "tags", s.Tags) - return objectMap -} - -func (s *StorageAccountItem) unmarshalInternal(rawMsg map[string]json.RawMessage) error { - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &s.Attributes) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &s.ID) - delete(rawMsg, key) - case "resourceId": - err = unpopulate(val, &s.ResourceID) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &s.Tags) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// StorageAccountRegenerteKeyParameters - The storage account key regenerate parameters. -type StorageAccountRegenerteKeyParameters struct { - // REQUIRED; The storage account key name. - KeyName *string `json:"keyName,omitempty"` -} - -// StorageAccountUpdateParameters - The storage account update parameters. -type StorageAccountUpdateParameters struct { - // The current active storage account key name. - ActiveKeyName *string `json:"activeKeyName,omitempty"` - - // whether keyvault should manage the storage account for the user. - AutoRegenerateKey *bool `json:"autoRegenerateKey,omitempty"` - - // The key regeneration time duration specified in ISO-8601 format. - RegenerationPeriod *string `json:"regenerationPeriod,omitempty"` - - // The attributes of the storage account. - StorageAccountAttributes *StorageAccountAttributes `json:"attributes,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type StorageAccountUpdateParameters. -func (s StorageAccountUpdateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "activeKeyName", s.ActiveKeyName) - populate(objectMap, "autoRegenerateKey", s.AutoRegenerateKey) - populate(objectMap, "regenerationPeriod", s.RegenerationPeriod) - populate(objectMap, "attributes", s.StorageAccountAttributes) - populate(objectMap, "tags", s.Tags) - return json.Marshal(objectMap) -} - -// StorageBundle - A Storage account bundle consists of key vault storage account details plus its attributes. -type StorageBundle struct { - // READ-ONLY; The current active storage account key name. - ActiveKeyName *string `json:"activeKeyName,omitempty" azure:"ro"` - - // READ-ONLY; The storage account attributes. - Attributes *StorageAccountAttributes `json:"attributes,omitempty" azure:"ro"` - - // READ-ONLY; whether keyvault should manage the storage account for the user. - AutoRegenerateKey *bool `json:"autoRegenerateKey,omitempty" azure:"ro"` - - // READ-ONLY; The storage account id. - ID *string `json:"id,omitempty" azure:"ro"` - - // READ-ONLY; The key regeneration time duration specified in ISO-8601 format. - RegenerationPeriod *string `json:"regenerationPeriod,omitempty" azure:"ro"` - - // READ-ONLY; The storage account resource id. - ResourceID *string `json:"resourceId,omitempty" azure:"ro"` - - // READ-ONLY; Application specific metadata in the form of key-value pairs - Tags map[string]*string `json:"tags,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type StorageBundle. -func (s StorageBundle) MarshalJSON() ([]byte, error) { - objectMap := s.marshalInternal() - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type StorageBundle. -func (s *StorageBundle) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - return s.unmarshalInternal(rawMsg) -} - -func (s StorageBundle) marshalInternal() map[string]interface{} { - objectMap := make(map[string]interface{}) - populate(objectMap, "activeKeyName", s.ActiveKeyName) - populate(objectMap, "attributes", s.Attributes) - populate(objectMap, "autoRegenerateKey", s.AutoRegenerateKey) - populate(objectMap, "id", s.ID) - populate(objectMap, "regenerationPeriod", s.RegenerationPeriod) - populate(objectMap, "resourceId", s.ResourceID) - populate(objectMap, "tags", s.Tags) - return objectMap -} - -func (s *StorageBundle) unmarshalInternal(rawMsg map[string]json.RawMessage) error { - for key, val := range rawMsg { - var err error - switch key { - case "activeKeyName": - err = unpopulate(val, &s.ActiveKeyName) - delete(rawMsg, key) - case "attributes": - err = unpopulate(val, &s.Attributes) - delete(rawMsg, key) - case "autoRegenerateKey": - err = unpopulate(val, &s.AutoRegenerateKey) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &s.ID) - delete(rawMsg, key) - case "regenerationPeriod": - err = unpopulate(val, &s.RegenerationPeriod) - delete(rawMsg, key) - case "resourceId": - err = unpopulate(val, &s.ResourceID) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &s.Tags) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// StorageListResult - The storage accounts list result. -type StorageListResult struct { - // READ-ONLY; The URL to get the next set of storage accounts. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of storage accounts in the key vault along with a link to the next page of storage accounts. - Value []*StorageAccountItem `json:"value,omitempty" azure:"ro"` -} - -// MarshalJSON implements the json.Marshaller interface for type StorageListResult. -func (s StorageListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", s.NextLink) - populate(objectMap, "value", s.Value) - return json.Marshal(objectMap) -} - -// StorageRestoreParameters - The secret restore parameters. -type StorageRestoreParameters struct { - // REQUIRED; The backup blob associated with a storage account. - StorageBundleBackup []byte `json:"value,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type StorageRestoreParameters. -func (s StorageRestoreParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", s.StorageBundleBackup, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type StorageRestoreParameters. -func (s *StorageRestoreParameters) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &s.StorageBundleBackup, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// SubjectAlternativeNames - The subject alternate names of a X509 object. -type SubjectAlternativeNames struct { - // Domain names. - DNSNames []*string `json:"dns_names,omitempty"` - - // Email addresses. - Emails []*string `json:"emails,omitempty"` - - // User principal names. - Upns []*string `json:"upns,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type SubjectAlternativeNames. -func (s SubjectAlternativeNames) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "dns_names", s.DNSNames) - populate(objectMap, "emails", s.Emails) - populate(objectMap, "upns", s.Upns) - return json.Marshal(objectMap) -} - type TransferKey struct { // REQUIRED; Specifies the transfer key in JWK format TransferKey *SecurityDomainJSONWebKey `json:"transfer_key,omitempty"` @@ -4202,45 +1630,6 @@ type TransferKey struct { KeyFormat *string `json:"key_format,omitempty"` } -// Trigger - A condition to be satisfied for an action to be executed. -type Trigger struct { - // Days before expiry to attempt renewal. Value should be between 1 and validityinmonths multiplied by 27. If validityinmonths is 36, then value should - // be between 1 and 972 (36 * 27). - DaysBeforeExpiry *int32 `json:"days_before_expiry,omitempty"` - - // Percentage of lifetime at which to trigger. Value should be between 1 and 99. - LifetimePercentage *int32 `json:"lifetime_percentage,omitempty"` -} - -// X509CertificateProperties - Properties of the X509 component of a certificate. -type X509CertificateProperties struct { - // The enhanced key usage. - Ekus []*string `json:"ekus,omitempty"` - - // List of key usages. - KeyUsage []*KeyUsageType `json:"key_usage,omitempty"` - - // The subject name. Should be a valid X509 distinguished Name. - Subject *string `json:"subject,omitempty"` - - // The subject alternative names. - SubjectAlternativeNames *SubjectAlternativeNames `json:"sans,omitempty"` - - // The duration that the certificate is valid in months. - ValidityInMonths *int32 `json:"validity_months,omitempty"` -} - -// MarshalJSON implements the json.Marshaller interface for type X509CertificateProperties. -func (x X509CertificateProperties) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "ekus", x.Ekus) - populate(objectMap, "key_usage", x.KeyUsage) - populate(objectMap, "subject", x.Subject) - populate(objectMap, "sans", x.SubjectAlternativeNames) - populate(objectMap, "validity_months", x.ValidityInMonths) - return json.Marshal(objectMap) -} - func populate(m map[string]interface{}, k string, v interface{}) { if v == nil { return diff --git a/sdk/keyvault/azkeys/internal/pagers.go b/sdk/keyvault/azkeys/internal/pagers.go index e4ff2147a33d..7e47e35bff86 100644 --- a/sdk/keyvault/azkeys/internal/pagers.go +++ b/sdk/keyvault/azkeys/internal/pagers.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -17,222 +16,6 @@ import ( "reflect" ) -// KeyVaultClientGetCertificateIssuersPager provides operations for iterating over paged responses. -type KeyVaultClientGetCertificateIssuersPager struct { - client *KeyVaultClient - current KeyVaultClientGetCertificateIssuersResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetCertificateIssuersResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetCertificateIssuersPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetCertificateIssuersPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.CertificateIssuerListResult.NextLink == nil || len(*p.current.CertificateIssuerListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getCertificateIssuersHandleError(resp) - return false - } - result, err := p.client.getCertificateIssuersHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetCertificateIssuersResponse page. -func (p *KeyVaultClientGetCertificateIssuersPager) PageResponse() KeyVaultClientGetCertificateIssuersResponse { - return p.current -} - -// KeyVaultClientGetCertificateVersionsPager provides operations for iterating over paged responses. -type KeyVaultClientGetCertificateVersionsPager struct { - client *KeyVaultClient - current KeyVaultClientGetCertificateVersionsResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetCertificateVersionsResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetCertificateVersionsPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetCertificateVersionsPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.CertificateListResult.NextLink == nil || len(*p.current.CertificateListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getCertificateVersionsHandleError(resp) - return false - } - result, err := p.client.getCertificateVersionsHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetCertificateVersionsResponse page. -func (p *KeyVaultClientGetCertificateVersionsPager) PageResponse() KeyVaultClientGetCertificateVersionsResponse { - return p.current -} - -// KeyVaultClientGetCertificatesPager provides operations for iterating over paged responses. -type KeyVaultClientGetCertificatesPager struct { - client *KeyVaultClient - current KeyVaultClientGetCertificatesResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetCertificatesResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetCertificatesPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetCertificatesPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.CertificateListResult.NextLink == nil || len(*p.current.CertificateListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getCertificatesHandleError(resp) - return false - } - result, err := p.client.getCertificatesHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetCertificatesResponse page. -func (p *KeyVaultClientGetCertificatesPager) PageResponse() KeyVaultClientGetCertificatesResponse { - return p.current -} - -// KeyVaultClientGetDeletedCertificatesPager provides operations for iterating over paged responses. -type KeyVaultClientGetDeletedCertificatesPager struct { - client *KeyVaultClient - current KeyVaultClientGetDeletedCertificatesResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetDeletedCertificatesResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetDeletedCertificatesPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetDeletedCertificatesPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.DeletedCertificateListResult.NextLink == nil || len(*p.current.DeletedCertificateListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getDeletedCertificatesHandleError(resp) - return false - } - result, err := p.client.getDeletedCertificatesHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetDeletedCertificatesResponse page. -func (p *KeyVaultClientGetDeletedCertificatesPager) PageResponse() KeyVaultClientGetDeletedCertificatesResponse { - return p.current -} - // KeyVaultClientGetDeletedKeysPager provides operations for iterating over paged responses. type KeyVaultClientGetDeletedKeysPager struct { client *KeyVaultClient @@ -287,168 +70,6 @@ func (p *KeyVaultClientGetDeletedKeysPager) PageResponse() KeyVaultClientGetDele return p.current } -// KeyVaultClientGetDeletedSasDefinitionsPager provides operations for iterating over paged responses. -type KeyVaultClientGetDeletedSasDefinitionsPager struct { - client *KeyVaultClient - current KeyVaultClientGetDeletedSasDefinitionsResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetDeletedSasDefinitionsResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetDeletedSasDefinitionsPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetDeletedSasDefinitionsPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.DeletedSasDefinitionListResult.NextLink == nil || len(*p.current.DeletedSasDefinitionListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getDeletedSasDefinitionsHandleError(resp) - return false - } - result, err := p.client.getDeletedSasDefinitionsHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetDeletedSasDefinitionsResponse page. -func (p *KeyVaultClientGetDeletedSasDefinitionsPager) PageResponse() KeyVaultClientGetDeletedSasDefinitionsResponse { - return p.current -} - -// KeyVaultClientGetDeletedSecretsPager provides operations for iterating over paged responses. -type KeyVaultClientGetDeletedSecretsPager struct { - client *KeyVaultClient - current KeyVaultClientGetDeletedSecretsResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetDeletedSecretsResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetDeletedSecretsPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetDeletedSecretsPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.DeletedSecretListResult.NextLink == nil || len(*p.current.DeletedSecretListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getDeletedSecretsHandleError(resp) - return false - } - result, err := p.client.getDeletedSecretsHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetDeletedSecretsResponse page. -func (p *KeyVaultClientGetDeletedSecretsPager) PageResponse() KeyVaultClientGetDeletedSecretsResponse { - return p.current -} - -// KeyVaultClientGetDeletedStorageAccountsPager provides operations for iterating over paged responses. -type KeyVaultClientGetDeletedStorageAccountsPager struct { - client *KeyVaultClient - current KeyVaultClientGetDeletedStorageAccountsResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetDeletedStorageAccountsResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetDeletedStorageAccountsPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetDeletedStorageAccountsPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.DeletedStorageListResult.NextLink == nil || len(*p.current.DeletedStorageListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getDeletedStorageAccountsHandleError(resp) - return false - } - result, err := p.client.getDeletedStorageAccountsHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetDeletedStorageAccountsResponse page. -func (p *KeyVaultClientGetDeletedStorageAccountsPager) PageResponse() KeyVaultClientGetDeletedStorageAccountsResponse { - return p.current -} - // KeyVaultClientGetKeyVersionsPager provides operations for iterating over paged responses. type KeyVaultClientGetKeyVersionsPager struct { client *KeyVaultClient @@ -557,222 +178,6 @@ func (p *KeyVaultClientGetKeysPager) PageResponse() KeyVaultClientGetKeysRespons return p.current } -// KeyVaultClientGetSasDefinitionsPager provides operations for iterating over paged responses. -type KeyVaultClientGetSasDefinitionsPager struct { - client *KeyVaultClient - current KeyVaultClientGetSasDefinitionsResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetSasDefinitionsResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetSasDefinitionsPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetSasDefinitionsPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.SasDefinitionListResult.NextLink == nil || len(*p.current.SasDefinitionListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getSasDefinitionsHandleError(resp) - return false - } - result, err := p.client.getSasDefinitionsHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetSasDefinitionsResponse page. -func (p *KeyVaultClientGetSasDefinitionsPager) PageResponse() KeyVaultClientGetSasDefinitionsResponse { - return p.current -} - -// KeyVaultClientGetSecretVersionsPager provides operations for iterating over paged responses. -type KeyVaultClientGetSecretVersionsPager struct { - client *KeyVaultClient - current KeyVaultClientGetSecretVersionsResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetSecretVersionsResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetSecretVersionsPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetSecretVersionsPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.SecretListResult.NextLink == nil || len(*p.current.SecretListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getSecretVersionsHandleError(resp) - return false - } - result, err := p.client.getSecretVersionsHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetSecretVersionsResponse page. -func (p *KeyVaultClientGetSecretVersionsPager) PageResponse() KeyVaultClientGetSecretVersionsResponse { - return p.current -} - -// KeyVaultClientGetSecretsPager provides operations for iterating over paged responses. -type KeyVaultClientGetSecretsPager struct { - client *KeyVaultClient - current KeyVaultClientGetSecretsResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetSecretsResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetSecretsPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetSecretsPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.SecretListResult.NextLink == nil || len(*p.current.SecretListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getSecretsHandleError(resp) - return false - } - result, err := p.client.getSecretsHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetSecretsResponse page. -func (p *KeyVaultClientGetSecretsPager) PageResponse() KeyVaultClientGetSecretsResponse { - return p.current -} - -// KeyVaultClientGetStorageAccountsPager provides operations for iterating over paged responses. -type KeyVaultClientGetStorageAccountsPager struct { - client *KeyVaultClient - current KeyVaultClientGetStorageAccountsResponse - err error - requester func(context.Context) (*policy.Request, error) - advancer func(context.Context, KeyVaultClientGetStorageAccountsResponse) (*policy.Request, error) -} - -// Err returns the last error encountered while paging. -func (p *KeyVaultClientGetStorageAccountsPager) Err() error { - return p.err -} - -// NextPage returns true if the pager advanced to the next page. -// Returns false if there are no more pages or an error occurred. -func (p *KeyVaultClientGetStorageAccountsPager) NextPage(ctx context.Context) bool { - var req *policy.Request - var err error - if !reflect.ValueOf(p.current).IsZero() { - if p.current.StorageListResult.NextLink == nil || len(*p.current.StorageListResult.NextLink) == 0 { - return false - } - req, err = p.advancer(ctx, p.current) - } else { - req, err = p.requester(ctx) - } - if err != nil { - p.err = err - return false - } - resp, err := p.client.Con.Pipeline().Do(req) - if err != nil { - p.err = err - return false - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - p.err = p.client.getStorageAccountsHandleError(resp) - return false - } - result, err := p.client.getStorageAccountsHandleResponse(resp) - if err != nil { - p.err = err - return false - } - p.current = result - return true -} - -// PageResponse returns the current KeyVaultClientGetStorageAccountsResponse page. -func (p *KeyVaultClientGetStorageAccountsPager) PageResponse() KeyVaultClientGetStorageAccountsResponse { - return p.current -} - // RoleAssignmentsListForScopePager provides operations for iterating over paged responses. type RoleAssignmentsListForScopePager struct { client *roleAssignmentsClient diff --git a/sdk/keyvault/azkeys/internal/pollers.go b/sdk/keyvault/azkeys/internal/pollers.go index 4bb593373432..2b5e07174fe8 100644 --- a/sdk/keyvault/azkeys/internal/pollers.go +++ b/sdk/keyvault/azkeys/internal/pollers.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -100,132 +99,3 @@ func (p *HSMSecurityDomainUploadPoller) FinalResponse(ctx context.Context) (HSMS func (p *HSMSecurityDomainUploadPoller) ResumeToken() (string, error) { return p.pt.ResumeToken() } - -// KeyVaultClientFullBackupPoller provides polling facilities until the operation reaches a terminal state. -type KeyVaultClientFullBackupPoller struct { - pt *azcore.Poller -} - -// Done returns true if the LRO has reached a terminal state. -func (p *KeyVaultClientFullBackupPoller) Done() bool { - return p.pt.Done() -} - -// Poll fetches the latest state of the LRO. It returns an HTTP response or error. -// If the LRO has completed successfully, the poller's state is updated and the HTTP -// response is returned. -// If the LRO has completed with failure or was cancelled, the poller's state is -// updated and the error is returned. -// If the LRO has not reached a terminal state, the poller's state is updated and -// the latest HTTP response is returned. -// If Poll fails, the poller's state is unmodified and the error is returned. -// Calling Poll on an LRO that has reached a terminal state will return the final -// HTTP response or error. -func (p *KeyVaultClientFullBackupPoller) Poll(ctx context.Context) (*http.Response, error) { - return p.pt.Poll(ctx) -} - -// FinalResponse performs a final GET to the service and returns the final response -// for the polling operation. If there is an error performing the final GET then an error is returned. -// If the final GET succeeded then the final KeyVaultClientFullBackupResponse will be returned. -func (p *KeyVaultClientFullBackupPoller) FinalResponse(ctx context.Context) (KeyVaultClientFullBackupResponse, error) { - respType := KeyVaultClientFullBackupResponse{} - resp, err := p.pt.FinalResponse(ctx, &respType.FullBackupOperation) - if err != nil { - return KeyVaultClientFullBackupResponse{}, err - } - respType.RawResponse = resp - return respType, nil -} - -// ResumeToken returns a value representing the poller that can be used to resume -// the LRO at a later time. ResumeTokens are unique per service operation. -func (p *KeyVaultClientFullBackupPoller) ResumeToken() (string, error) { - return p.pt.ResumeToken() -} - -// KeyVaultClientFullRestoreOperationPoller provides polling facilities until the operation reaches a terminal state. -type KeyVaultClientFullRestoreOperationPoller struct { - pt *azcore.Poller -} - -// Done returns true if the LRO has reached a terminal state. -func (p *KeyVaultClientFullRestoreOperationPoller) Done() bool { - return p.pt.Done() -} - -// Poll fetches the latest state of the LRO. It returns an HTTP response or error. -// If the LRO has completed successfully, the poller's state is updated and the HTTP -// response is returned. -// If the LRO has completed with failure or was cancelled, the poller's state is -// updated and the error is returned. -// If the LRO has not reached a terminal state, the poller's state is updated and -// the latest HTTP response is returned. -// If Poll fails, the poller's state is unmodified and the error is returned. -// Calling Poll on an LRO that has reached a terminal state will return the final -// HTTP response or error. -func (p *KeyVaultClientFullRestoreOperationPoller) Poll(ctx context.Context) (*http.Response, error) { - return p.pt.Poll(ctx) -} - -// FinalResponse performs a final GET to the service and returns the final response -// for the polling operation. If there is an error performing the final GET then an error is returned. -// If the final GET succeeded then the final KeyVaultClientFullRestoreOperationResponse will be returned. -func (p *KeyVaultClientFullRestoreOperationPoller) FinalResponse(ctx context.Context) (KeyVaultClientFullRestoreOperationResponse, error) { - respType := KeyVaultClientFullRestoreOperationResponse{} - resp, err := p.pt.FinalResponse(ctx, &respType.RestoreOperation) - if err != nil { - return KeyVaultClientFullRestoreOperationResponse{}, err - } - respType.RawResponse = resp - return respType, nil -} - -// ResumeToken returns a value representing the poller that can be used to resume -// the LRO at a later time. ResumeTokens are unique per service operation. -func (p *KeyVaultClientFullRestoreOperationPoller) ResumeToken() (string, error) { - return p.pt.ResumeToken() -} - -// KeyVaultClientSelectiveKeyRestoreOperationPoller provides polling facilities until the operation reaches a terminal state. -type KeyVaultClientSelectiveKeyRestoreOperationPoller struct { - pt *azcore.Poller -} - -// Done returns true if the LRO has reached a terminal state. -func (p *KeyVaultClientSelectiveKeyRestoreOperationPoller) Done() bool { - return p.pt.Done() -} - -// Poll fetches the latest state of the LRO. It returns an HTTP response or error. -// If the LRO has completed successfully, the poller's state is updated and the HTTP -// response is returned. -// If the LRO has completed with failure or was cancelled, the poller's state is -// updated and the error is returned. -// If the LRO has not reached a terminal state, the poller's state is updated and -// the latest HTTP response is returned. -// If Poll fails, the poller's state is unmodified and the error is returned. -// Calling Poll on an LRO that has reached a terminal state will return the final -// HTTP response or error. -func (p *KeyVaultClientSelectiveKeyRestoreOperationPoller) Poll(ctx context.Context) (*http.Response, error) { - return p.pt.Poll(ctx) -} - -// FinalResponse performs a final GET to the service and returns the final response -// for the polling operation. If there is an error performing the final GET then an error is returned. -// If the final GET succeeded then the final KeyVaultClientSelectiveKeyRestoreOperationResponse will be returned. -func (p *KeyVaultClientSelectiveKeyRestoreOperationPoller) FinalResponse(ctx context.Context) (KeyVaultClientSelectiveKeyRestoreOperationResponse, error) { - respType := KeyVaultClientSelectiveKeyRestoreOperationResponse{} - resp, err := p.pt.FinalResponse(ctx, &respType.SelectiveKeyRestoreOperation) - if err != nil { - return KeyVaultClientSelectiveKeyRestoreOperationResponse{}, err - } - respType.RawResponse = resp - return respType, nil -} - -// ResumeToken returns a value representing the poller that can be used to resume -// the LRO at a later time. ResumeTokens are unique per service operation. -func (p *KeyVaultClientSelectiveKeyRestoreOperationPoller) ResumeToken() (string, error) { - return p.pt.ResumeToken() -} diff --git a/sdk/keyvault/azkeys/internal/response_types.go b/sdk/keyvault/azkeys/internal/response_types.go index 900f0ec72d74..c1e1fc1e840a 100644 --- a/sdk/keyvault/azkeys/internal/response_types.go +++ b/sdk/keyvault/azkeys/internal/response_types.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -152,18 +151,6 @@ type HSMSecurityDomainUploadResult struct { SecurityDomainOperationStatus } -// KeyVaultClientBackupCertificateResponse contains the response from method KeyVaultClient.BackupCertificate. -type KeyVaultClientBackupCertificateResponse struct { - KeyVaultClientBackupCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientBackupCertificateResult contains the result from method KeyVaultClient.BackupCertificate. -type KeyVaultClientBackupCertificateResult struct { - BackupCertificateResult -} - // KeyVaultClientBackupKeyResponse contains the response from method KeyVaultClient.BackupKey. type KeyVaultClientBackupKeyResponse struct { KeyVaultClientBackupKeyResult @@ -176,42 +163,6 @@ type KeyVaultClientBackupKeyResult struct { BackupKeyResult } -// KeyVaultClientBackupSecretResponse contains the response from method KeyVaultClient.BackupSecret. -type KeyVaultClientBackupSecretResponse struct { - KeyVaultClientBackupSecretResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientBackupSecretResult contains the result from method KeyVaultClient.BackupSecret. -type KeyVaultClientBackupSecretResult struct { - BackupSecretResult -} - -// KeyVaultClientBackupStorageAccountResponse contains the response from method KeyVaultClient.BackupStorageAccount. -type KeyVaultClientBackupStorageAccountResponse struct { - KeyVaultClientBackupStorageAccountResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientBackupStorageAccountResult contains the result from method KeyVaultClient.BackupStorageAccount. -type KeyVaultClientBackupStorageAccountResult struct { - BackupStorageResult -} - -// KeyVaultClientCreateCertificateResponse contains the response from method KeyVaultClient.CreateCertificate. -type KeyVaultClientCreateCertificateResponse struct { - KeyVaultClientCreateCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientCreateCertificateResult contains the result from method KeyVaultClient.CreateCertificate. -type KeyVaultClientCreateCertificateResult struct { - CertificateOperation -} - // KeyVaultClientCreateKeyResponse contains the response from method KeyVaultClient.CreateKey. type KeyVaultClientCreateKeyResponse struct { KeyVaultClientCreateKeyResult @@ -236,54 +187,6 @@ type KeyVaultClientDecryptResult struct { KeyOperationResult } -// KeyVaultClientDeleteCertificateContactsResponse contains the response from method KeyVaultClient.DeleteCertificateContacts. -type KeyVaultClientDeleteCertificateContactsResponse struct { - KeyVaultClientDeleteCertificateContactsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientDeleteCertificateContactsResult contains the result from method KeyVaultClient.DeleteCertificateContacts. -type KeyVaultClientDeleteCertificateContactsResult struct { - Contacts -} - -// KeyVaultClientDeleteCertificateIssuerResponse contains the response from method KeyVaultClient.DeleteCertificateIssuer. -type KeyVaultClientDeleteCertificateIssuerResponse struct { - KeyVaultClientDeleteCertificateIssuerResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientDeleteCertificateIssuerResult contains the result from method KeyVaultClient.DeleteCertificateIssuer. -type KeyVaultClientDeleteCertificateIssuerResult struct { - IssuerBundle -} - -// KeyVaultClientDeleteCertificateOperationResponse contains the response from method KeyVaultClient.DeleteCertificateOperation. -type KeyVaultClientDeleteCertificateOperationResponse struct { - KeyVaultClientDeleteCertificateOperationResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientDeleteCertificateOperationResult contains the result from method KeyVaultClient.DeleteCertificateOperation. -type KeyVaultClientDeleteCertificateOperationResult struct { - CertificateOperation -} - -// KeyVaultClientDeleteCertificateResponse contains the response from method KeyVaultClient.DeleteCertificate. -type KeyVaultClientDeleteCertificateResponse struct { - KeyVaultClientDeleteCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientDeleteCertificateResult contains the result from method KeyVaultClient.DeleteCertificate. -type KeyVaultClientDeleteCertificateResult struct { - DeletedCertificateBundle -} - // KeyVaultClientDeleteKeyResponse contains the response from method KeyVaultClient.DeleteKey. type KeyVaultClientDeleteKeyResponse struct { KeyVaultClientDeleteKeyResult @@ -296,42 +199,6 @@ type KeyVaultClientDeleteKeyResult struct { DeletedKeyBundle } -// KeyVaultClientDeleteSasDefinitionResponse contains the response from method KeyVaultClient.DeleteSasDefinition. -type KeyVaultClientDeleteSasDefinitionResponse struct { - KeyVaultClientDeleteSasDefinitionResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientDeleteSasDefinitionResult contains the result from method KeyVaultClient.DeleteSasDefinition. -type KeyVaultClientDeleteSasDefinitionResult struct { - DeletedSasDefinitionBundle -} - -// KeyVaultClientDeleteSecretResponse contains the response from method KeyVaultClient.DeleteSecret. -type KeyVaultClientDeleteSecretResponse struct { - KeyVaultClientDeleteSecretResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientDeleteSecretResult contains the result from method KeyVaultClient.DeleteSecret. -type KeyVaultClientDeleteSecretResult struct { - DeletedSecretBundle -} - -// KeyVaultClientDeleteStorageAccountResponse contains the response from method KeyVaultClient.DeleteStorageAccount. -type KeyVaultClientDeleteStorageAccountResponse struct { - KeyVaultClientDeleteStorageAccountResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientDeleteStorageAccountResult contains the result from method KeyVaultClient.DeleteStorageAccount. -type KeyVaultClientDeleteStorageAccountResult struct { - DeletedStorageBundle -} - // KeyVaultClientEncryptResponse contains the response from method KeyVaultClient.Encrypt. type KeyVaultClientEncryptResponse struct { KeyVaultClientEncryptResult @@ -344,236 +211,16 @@ type KeyVaultClientEncryptResult struct { KeyOperationResult } -// KeyVaultClientFullBackupPollerResponse contains the response from method KeyVaultClient.FullBackup. -type KeyVaultClientFullBackupPollerResponse struct { - // Poller contains an initialized poller. - Poller *KeyVaultClientFullBackupPoller - +// KeyVaultClientExportResponse contains the response from method KeyVaultClient.Export. +type KeyVaultClientExportResponse struct { + KeyVaultClientExportResult // RawResponse contains the underlying HTTP response. RawResponse *http.Response } -// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received. -func (l KeyVaultClientFullBackupPollerResponse) PollUntilDone(ctx context.Context, freq time.Duration) (KeyVaultClientFullBackupResponse, error) { - respType := KeyVaultClientFullBackupResponse{} - resp, err := l.Poller.pt.PollUntilDone(ctx, freq, &respType.FullBackupOperation) - if err != nil { - return respType, err - } - respType.RawResponse = resp - return respType, nil -} - -// Resume rehydrates a KeyVaultClientFullBackupPollerResponse from the provided client and resume token. -func (l *KeyVaultClientFullBackupPollerResponse) Resume(ctx context.Context, client *KeyVaultClient, token string) error { - pt, err := runtime.NewPollerFromResumeToken("keyVaultClient.FullBackup", token, client.Con.Pipeline(), client.fullBackupHandleError) - if err != nil { - return err - } - poller := &KeyVaultClientFullBackupPoller{ - pt: pt, - } - resp, err := poller.Poll(ctx) - if err != nil { - return err - } - l.Poller = poller - l.RawResponse = resp - return nil -} - -// KeyVaultClientFullBackupResponse contains the response from method KeyVaultClient.FullBackup. -type KeyVaultClientFullBackupResponse struct { - KeyVaultClientFullBackupResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientFullBackupResult contains the result from method KeyVaultClient.FullBackup. -type KeyVaultClientFullBackupResult struct { - FullBackupOperation -} - -// KeyVaultClientFullBackupStatusResponse contains the response from method KeyVaultClient.FullBackupStatus. -type KeyVaultClientFullBackupStatusResponse struct { - KeyVaultClientFullBackupStatusResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientFullBackupStatusResult contains the result from method KeyVaultClient.FullBackupStatus. -type KeyVaultClientFullBackupStatusResult struct { - FullBackupOperation -} - -// KeyVaultClientFullRestoreOperationPollerResponse contains the response from method KeyVaultClient.FullRestoreOperation. -type KeyVaultClientFullRestoreOperationPollerResponse struct { - // Poller contains an initialized poller. - Poller *KeyVaultClientFullRestoreOperationPoller - - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received. -func (l KeyVaultClientFullRestoreOperationPollerResponse) PollUntilDone(ctx context.Context, freq time.Duration) (KeyVaultClientFullRestoreOperationResponse, error) { - respType := KeyVaultClientFullRestoreOperationResponse{} - resp, err := l.Poller.pt.PollUntilDone(ctx, freq, &respType.RestoreOperation) - if err != nil { - return respType, err - } - respType.RawResponse = resp - return respType, nil -} - -// Resume rehydrates a KeyVaultClientFullRestoreOperationPollerResponse from the provided client and resume token. -func (l *KeyVaultClientFullRestoreOperationPollerResponse) Resume(ctx context.Context, client *KeyVaultClient, token string) error { - pt, err := runtime.NewPollerFromResumeToken("keyVaultClient.FullRestoreOperation", token, client.Con.Pipeline(), client.fullRestoreOperationHandleError) - if err != nil { - return err - } - poller := &KeyVaultClientFullRestoreOperationPoller{ - pt: pt, - } - resp, err := poller.Poll(ctx) - if err != nil { - return err - } - l.Poller = poller - l.RawResponse = resp - return nil -} - -// KeyVaultClientFullRestoreOperationResponse contains the response from method KeyVaultClient.FullRestoreOperation. -type KeyVaultClientFullRestoreOperationResponse struct { - KeyVaultClientFullRestoreOperationResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientFullRestoreOperationResult contains the result from method KeyVaultClient.FullRestoreOperation. -type KeyVaultClientFullRestoreOperationResult struct { - RestoreOperation -} - -// KeyVaultClientGetCertificateContactsResponse contains the response from method KeyVaultClient.GetCertificateContacts. -type KeyVaultClientGetCertificateContactsResponse struct { - KeyVaultClientGetCertificateContactsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetCertificateContactsResult contains the result from method KeyVaultClient.GetCertificateContacts. -type KeyVaultClientGetCertificateContactsResult struct { - Contacts -} - -// KeyVaultClientGetCertificateIssuerResponse contains the response from method KeyVaultClient.GetCertificateIssuer. -type KeyVaultClientGetCertificateIssuerResponse struct { - KeyVaultClientGetCertificateIssuerResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetCertificateIssuerResult contains the result from method KeyVaultClient.GetCertificateIssuer. -type KeyVaultClientGetCertificateIssuerResult struct { - IssuerBundle -} - -// KeyVaultClientGetCertificateIssuersResponse contains the response from method KeyVaultClient.GetCertificateIssuers. -type KeyVaultClientGetCertificateIssuersResponse struct { - KeyVaultClientGetCertificateIssuersResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetCertificateIssuersResult contains the result from method KeyVaultClient.GetCertificateIssuers. -type KeyVaultClientGetCertificateIssuersResult struct { - CertificateIssuerListResult -} - -// KeyVaultClientGetCertificateOperationResponse contains the response from method KeyVaultClient.GetCertificateOperation. -type KeyVaultClientGetCertificateOperationResponse struct { - KeyVaultClientGetCertificateOperationResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetCertificateOperationResult contains the result from method KeyVaultClient.GetCertificateOperation. -type KeyVaultClientGetCertificateOperationResult struct { - CertificateOperation -} - -// KeyVaultClientGetCertificatePolicyResponse contains the response from method KeyVaultClient.GetCertificatePolicy. -type KeyVaultClientGetCertificatePolicyResponse struct { - KeyVaultClientGetCertificatePolicyResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetCertificatePolicyResult contains the result from method KeyVaultClient.GetCertificatePolicy. -type KeyVaultClientGetCertificatePolicyResult struct { - CertificatePolicy -} - -// KeyVaultClientGetCertificateResponse contains the response from method KeyVaultClient.GetCertificate. -type KeyVaultClientGetCertificateResponse struct { - KeyVaultClientGetCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetCertificateResult contains the result from method KeyVaultClient.GetCertificate. -type KeyVaultClientGetCertificateResult struct { - CertificateBundle -} - -// KeyVaultClientGetCertificateVersionsResponse contains the response from method KeyVaultClient.GetCertificateVersions. -type KeyVaultClientGetCertificateVersionsResponse struct { - KeyVaultClientGetCertificateVersionsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetCertificateVersionsResult contains the result from method KeyVaultClient.GetCertificateVersions. -type KeyVaultClientGetCertificateVersionsResult struct { - CertificateListResult -} - -// KeyVaultClientGetCertificatesResponse contains the response from method KeyVaultClient.GetCertificates. -type KeyVaultClientGetCertificatesResponse struct { - KeyVaultClientGetCertificatesResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetCertificatesResult contains the result from method KeyVaultClient.GetCertificates. -type KeyVaultClientGetCertificatesResult struct { - CertificateListResult -} - -// KeyVaultClientGetDeletedCertificateResponse contains the response from method KeyVaultClient.GetDeletedCertificate. -type KeyVaultClientGetDeletedCertificateResponse struct { - KeyVaultClientGetDeletedCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetDeletedCertificateResult contains the result from method KeyVaultClient.GetDeletedCertificate. -type KeyVaultClientGetDeletedCertificateResult struct { - DeletedCertificateBundle -} - -// KeyVaultClientGetDeletedCertificatesResponse contains the response from method KeyVaultClient.GetDeletedCertificates. -type KeyVaultClientGetDeletedCertificatesResponse struct { - KeyVaultClientGetDeletedCertificatesResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetDeletedCertificatesResult contains the result from method KeyVaultClient.GetDeletedCertificates. -type KeyVaultClientGetDeletedCertificatesResult struct { - DeletedCertificateListResult +// KeyVaultClientExportResult contains the result from method KeyVaultClient.Export. +type KeyVaultClientExportResult struct { + KeyBundle } // KeyVaultClientGetDeletedKeyResponse contains the response from method KeyVaultClient.GetDeletedKey. @@ -600,78 +247,6 @@ type KeyVaultClientGetDeletedKeysResult struct { DeletedKeyListResult } -// KeyVaultClientGetDeletedSasDefinitionResponse contains the response from method KeyVaultClient.GetDeletedSasDefinition. -type KeyVaultClientGetDeletedSasDefinitionResponse struct { - KeyVaultClientGetDeletedSasDefinitionResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetDeletedSasDefinitionResult contains the result from method KeyVaultClient.GetDeletedSasDefinition. -type KeyVaultClientGetDeletedSasDefinitionResult struct { - DeletedSasDefinitionBundle -} - -// KeyVaultClientGetDeletedSasDefinitionsResponse contains the response from method KeyVaultClient.GetDeletedSasDefinitions. -type KeyVaultClientGetDeletedSasDefinitionsResponse struct { - KeyVaultClientGetDeletedSasDefinitionsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetDeletedSasDefinitionsResult contains the result from method KeyVaultClient.GetDeletedSasDefinitions. -type KeyVaultClientGetDeletedSasDefinitionsResult struct { - DeletedSasDefinitionListResult -} - -// KeyVaultClientGetDeletedSecretResponse contains the response from method KeyVaultClient.GetDeletedSecret. -type KeyVaultClientGetDeletedSecretResponse struct { - KeyVaultClientGetDeletedSecretResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetDeletedSecretResult contains the result from method KeyVaultClient.GetDeletedSecret. -type KeyVaultClientGetDeletedSecretResult struct { - DeletedSecretBundle -} - -// KeyVaultClientGetDeletedSecretsResponse contains the response from method KeyVaultClient.GetDeletedSecrets. -type KeyVaultClientGetDeletedSecretsResponse struct { - KeyVaultClientGetDeletedSecretsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetDeletedSecretsResult contains the result from method KeyVaultClient.GetDeletedSecrets. -type KeyVaultClientGetDeletedSecretsResult struct { - DeletedSecretListResult -} - -// KeyVaultClientGetDeletedStorageAccountResponse contains the response from method KeyVaultClient.GetDeletedStorageAccount. -type KeyVaultClientGetDeletedStorageAccountResponse struct { - KeyVaultClientGetDeletedStorageAccountResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetDeletedStorageAccountResult contains the result from method KeyVaultClient.GetDeletedStorageAccount. -type KeyVaultClientGetDeletedStorageAccountResult struct { - DeletedStorageBundle -} - -// KeyVaultClientGetDeletedStorageAccountsResponse contains the response from method KeyVaultClient.GetDeletedStorageAccounts. -type KeyVaultClientGetDeletedStorageAccountsResponse struct { - KeyVaultClientGetDeletedStorageAccountsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetDeletedStorageAccountsResult contains the result from method KeyVaultClient.GetDeletedStorageAccounts. -type KeyVaultClientGetDeletedStorageAccountsResult struct { - DeletedStorageListResult -} - // KeyVaultClientGetKeyResponse contains the response from method KeyVaultClient.GetKey. type KeyVaultClientGetKeyResponse struct { KeyVaultClientGetKeyResult @@ -684,6 +259,18 @@ type KeyVaultClientGetKeyResult struct { KeyBundle } +// KeyVaultClientGetKeyRotationPolicyResponse contains the response from method KeyVaultClient.GetKeyRotationPolicy. +type KeyVaultClientGetKeyRotationPolicyResponse struct { + KeyVaultClientGetKeyRotationPolicyResult + // RawResponse contains the underlying HTTP response. + RawResponse *http.Response +} + +// KeyVaultClientGetKeyRotationPolicyResult contains the result from method KeyVaultClient.GetKeyRotationPolicy. +type KeyVaultClientGetKeyRotationPolicyResult struct { + KeyRotationPolicy +} + // KeyVaultClientGetKeyVersionsResponse contains the response from method KeyVaultClient.GetKeyVersions. type KeyVaultClientGetKeyVersionsResponse struct { KeyVaultClientGetKeyVersionsResult @@ -708,100 +295,16 @@ type KeyVaultClientGetKeysResult struct { KeyListResult } -// KeyVaultClientGetSasDefinitionResponse contains the response from method KeyVaultClient.GetSasDefinition. -type KeyVaultClientGetSasDefinitionResponse struct { - KeyVaultClientGetSasDefinitionResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetSasDefinitionResult contains the result from method KeyVaultClient.GetSasDefinition. -type KeyVaultClientGetSasDefinitionResult struct { - SasDefinitionBundle -} - -// KeyVaultClientGetSasDefinitionsResponse contains the response from method KeyVaultClient.GetSasDefinitions. -type KeyVaultClientGetSasDefinitionsResponse struct { - KeyVaultClientGetSasDefinitionsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetSasDefinitionsResult contains the result from method KeyVaultClient.GetSasDefinitions. -type KeyVaultClientGetSasDefinitionsResult struct { - SasDefinitionListResult -} - -// KeyVaultClientGetSecretResponse contains the response from method KeyVaultClient.GetSecret. -type KeyVaultClientGetSecretResponse struct { - KeyVaultClientGetSecretResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetSecretResult contains the result from method KeyVaultClient.GetSecret. -type KeyVaultClientGetSecretResult struct { - SecretBundle -} - -// KeyVaultClientGetSecretVersionsResponse contains the response from method KeyVaultClient.GetSecretVersions. -type KeyVaultClientGetSecretVersionsResponse struct { - KeyVaultClientGetSecretVersionsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetSecretVersionsResult contains the result from method KeyVaultClient.GetSecretVersions. -type KeyVaultClientGetSecretVersionsResult struct { - SecretListResult -} - -// KeyVaultClientGetSecretsResponse contains the response from method KeyVaultClient.GetSecrets. -type KeyVaultClientGetSecretsResponse struct { - KeyVaultClientGetSecretsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetSecretsResult contains the result from method KeyVaultClient.GetSecrets. -type KeyVaultClientGetSecretsResult struct { - SecretListResult -} - -// KeyVaultClientGetStorageAccountResponse contains the response from method KeyVaultClient.GetStorageAccount. -type KeyVaultClientGetStorageAccountResponse struct { - KeyVaultClientGetStorageAccountResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetStorageAccountResult contains the result from method KeyVaultClient.GetStorageAccount. -type KeyVaultClientGetStorageAccountResult struct { - StorageBundle -} - -// KeyVaultClientGetStorageAccountsResponse contains the response from method KeyVaultClient.GetStorageAccounts. -type KeyVaultClientGetStorageAccountsResponse struct { - KeyVaultClientGetStorageAccountsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientGetStorageAccountsResult contains the result from method KeyVaultClient.GetStorageAccounts. -type KeyVaultClientGetStorageAccountsResult struct { - StorageListResult -} - -// KeyVaultClientImportCertificateResponse contains the response from method KeyVaultClient.ImportCertificate. -type KeyVaultClientImportCertificateResponse struct { - KeyVaultClientImportCertificateResult +// KeyVaultClientGetRandomBytesResponse contains the response from method KeyVaultClient.GetRandomBytes. +type KeyVaultClientGetRandomBytesResponse struct { + KeyVaultClientGetRandomBytesResult // RawResponse contains the underlying HTTP response. RawResponse *http.Response } -// KeyVaultClientImportCertificateResult contains the result from method KeyVaultClient.ImportCertificate. -type KeyVaultClientImportCertificateResult struct { - CertificateBundle +// KeyVaultClientGetRandomBytesResult contains the result from method KeyVaultClient.GetRandomBytes. +type KeyVaultClientGetRandomBytesResult struct { + RandomBytes } // KeyVaultClientImportKeyResponse contains the response from method KeyVaultClient.ImportKey. @@ -816,54 +319,12 @@ type KeyVaultClientImportKeyResult struct { KeyBundle } -// KeyVaultClientMergeCertificateResponse contains the response from method KeyVaultClient.MergeCertificate. -type KeyVaultClientMergeCertificateResponse struct { - KeyVaultClientMergeCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientMergeCertificateResult contains the result from method KeyVaultClient.MergeCertificate. -type KeyVaultClientMergeCertificateResult struct { - CertificateBundle -} - -// KeyVaultClientPurgeDeletedCertificateResponse contains the response from method KeyVaultClient.PurgeDeletedCertificate. -type KeyVaultClientPurgeDeletedCertificateResponse struct { - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - // KeyVaultClientPurgeDeletedKeyResponse contains the response from method KeyVaultClient.PurgeDeletedKey. type KeyVaultClientPurgeDeletedKeyResponse struct { // RawResponse contains the underlying HTTP response. RawResponse *http.Response } -// KeyVaultClientPurgeDeletedSecretResponse contains the response from method KeyVaultClient.PurgeDeletedSecret. -type KeyVaultClientPurgeDeletedSecretResponse struct { - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientPurgeDeletedStorageAccountResponse contains the response from method KeyVaultClient.PurgeDeletedStorageAccount. -type KeyVaultClientPurgeDeletedStorageAccountResponse struct { - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRecoverDeletedCertificateResponse contains the response from method KeyVaultClient.RecoverDeletedCertificate. -type KeyVaultClientRecoverDeletedCertificateResponse struct { - KeyVaultClientRecoverDeletedCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRecoverDeletedCertificateResult contains the result from method KeyVaultClient.RecoverDeletedCertificate. -type KeyVaultClientRecoverDeletedCertificateResult struct { - CertificateBundle -} - // KeyVaultClientRecoverDeletedKeyResponse contains the response from method KeyVaultClient.RecoverDeletedKey. type KeyVaultClientRecoverDeletedKeyResponse struct { KeyVaultClientRecoverDeletedKeyResult @@ -876,64 +337,16 @@ type KeyVaultClientRecoverDeletedKeyResult struct { KeyBundle } -// KeyVaultClientRecoverDeletedSasDefinitionResponse contains the response from method KeyVaultClient.RecoverDeletedSasDefinition. -type KeyVaultClientRecoverDeletedSasDefinitionResponse struct { - KeyVaultClientRecoverDeletedSasDefinitionResult +// KeyVaultClientReleaseResponse contains the response from method KeyVaultClient.Release. +type KeyVaultClientReleaseResponse struct { + KeyVaultClientReleaseResult // RawResponse contains the underlying HTTP response. RawResponse *http.Response } -// KeyVaultClientRecoverDeletedSasDefinitionResult contains the result from method KeyVaultClient.RecoverDeletedSasDefinition. -type KeyVaultClientRecoverDeletedSasDefinitionResult struct { - SasDefinitionBundle -} - -// KeyVaultClientRecoverDeletedSecretResponse contains the response from method KeyVaultClient.RecoverDeletedSecret. -type KeyVaultClientRecoverDeletedSecretResponse struct { - KeyVaultClientRecoverDeletedSecretResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRecoverDeletedSecretResult contains the result from method KeyVaultClient.RecoverDeletedSecret. -type KeyVaultClientRecoverDeletedSecretResult struct { - SecretBundle -} - -// KeyVaultClientRecoverDeletedStorageAccountResponse contains the response from method KeyVaultClient.RecoverDeletedStorageAccount. -type KeyVaultClientRecoverDeletedStorageAccountResponse struct { - KeyVaultClientRecoverDeletedStorageAccountResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRecoverDeletedStorageAccountResult contains the result from method KeyVaultClient.RecoverDeletedStorageAccount. -type KeyVaultClientRecoverDeletedStorageAccountResult struct { - StorageBundle -} - -// KeyVaultClientRegenerateStorageAccountKeyResponse contains the response from method KeyVaultClient.RegenerateStorageAccountKey. -type KeyVaultClientRegenerateStorageAccountKeyResponse struct { - KeyVaultClientRegenerateStorageAccountKeyResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRegenerateStorageAccountKeyResult contains the result from method KeyVaultClient.RegenerateStorageAccountKey. -type KeyVaultClientRegenerateStorageAccountKeyResult struct { - StorageBundle -} - -// KeyVaultClientRestoreCertificateResponse contains the response from method KeyVaultClient.RestoreCertificate. -type KeyVaultClientRestoreCertificateResponse struct { - KeyVaultClientRestoreCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRestoreCertificateResult contains the result from method KeyVaultClient.RestoreCertificate. -type KeyVaultClientRestoreCertificateResult struct { - CertificateBundle +// KeyVaultClientReleaseResult contains the result from method KeyVaultClient.Release. +type KeyVaultClientReleaseResult struct { + KeyReleaseResult } // KeyVaultClientRestoreKeyResponse contains the response from method KeyVaultClient.RestoreKey. @@ -948,150 +361,16 @@ type KeyVaultClientRestoreKeyResult struct { KeyBundle } -// KeyVaultClientRestoreSecretResponse contains the response from method KeyVaultClient.RestoreSecret. -type KeyVaultClientRestoreSecretResponse struct { - KeyVaultClientRestoreSecretResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRestoreSecretResult contains the result from method KeyVaultClient.RestoreSecret. -type KeyVaultClientRestoreSecretResult struct { - SecretBundle -} - -// KeyVaultClientRestoreStatusResponse contains the response from method KeyVaultClient.RestoreStatus. -type KeyVaultClientRestoreStatusResponse struct { - KeyVaultClientRestoreStatusResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRestoreStatusResult contains the result from method KeyVaultClient.RestoreStatus. -type KeyVaultClientRestoreStatusResult struct { - RestoreOperation -} - -// KeyVaultClientRestoreStorageAccountResponse contains the response from method KeyVaultClient.RestoreStorageAccount. -type KeyVaultClientRestoreStorageAccountResponse struct { - KeyVaultClientRestoreStorageAccountResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientRestoreStorageAccountResult contains the result from method KeyVaultClient.RestoreStorageAccount. -type KeyVaultClientRestoreStorageAccountResult struct { - StorageBundle -} - -// KeyVaultClientSelectiveKeyRestoreOperationPollerResponse contains the response from method KeyVaultClient.SelectiveKeyRestoreOperation. -type KeyVaultClientSelectiveKeyRestoreOperationPollerResponse struct { - // Poller contains an initialized poller. - Poller *KeyVaultClientSelectiveKeyRestoreOperationPoller - - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received. -func (l KeyVaultClientSelectiveKeyRestoreOperationPollerResponse) PollUntilDone(ctx context.Context, freq time.Duration) (KeyVaultClientSelectiveKeyRestoreOperationResponse, error) { - respType := KeyVaultClientSelectiveKeyRestoreOperationResponse{} - resp, err := l.Poller.pt.PollUntilDone(ctx, freq, &respType.SelectiveKeyRestoreOperation) - if err != nil { - return respType, err - } - respType.RawResponse = resp - return respType, nil -} - -// Resume rehydrates a KeyVaultClientSelectiveKeyRestoreOperationPollerResponse from the provided client and resume token. -func (l *KeyVaultClientSelectiveKeyRestoreOperationPollerResponse) Resume(ctx context.Context, client *KeyVaultClient, token string) error { - pt, err := runtime.NewPollerFromResumeToken("keyVaultClient.SelectiveKeyRestoreOperation", token, client.Con.Pipeline(), client.selectiveKeyRestoreOperationHandleError) - if err != nil { - return err - } - poller := &KeyVaultClientSelectiveKeyRestoreOperationPoller{ - pt: pt, - } - resp, err := poller.Poll(ctx) - if err != nil { - return err - } - l.Poller = poller - l.RawResponse = resp - return nil -} - -// KeyVaultClientSelectiveKeyRestoreOperationResponse contains the response from method KeyVaultClient.SelectiveKeyRestoreOperation. -type KeyVaultClientSelectiveKeyRestoreOperationResponse struct { - KeyVaultClientSelectiveKeyRestoreOperationResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientSelectiveKeyRestoreOperationResult contains the result from method KeyVaultClient.SelectiveKeyRestoreOperation. -type KeyVaultClientSelectiveKeyRestoreOperationResult struct { - SelectiveKeyRestoreOperation -} - -// KeyVaultClientSetCertificateContactsResponse contains the response from method KeyVaultClient.SetCertificateContacts. -type KeyVaultClientSetCertificateContactsResponse struct { - KeyVaultClientSetCertificateContactsResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientSetCertificateContactsResult contains the result from method KeyVaultClient.SetCertificateContacts. -type KeyVaultClientSetCertificateContactsResult struct { - Contacts -} - -// KeyVaultClientSetCertificateIssuerResponse contains the response from method KeyVaultClient.SetCertificateIssuer. -type KeyVaultClientSetCertificateIssuerResponse struct { - KeyVaultClientSetCertificateIssuerResult +// KeyVaultClientRotateKeyResponse contains the response from method KeyVaultClient.RotateKey. +type KeyVaultClientRotateKeyResponse struct { + KeyVaultClientRotateKeyResult // RawResponse contains the underlying HTTP response. RawResponse *http.Response } -// KeyVaultClientSetCertificateIssuerResult contains the result from method KeyVaultClient.SetCertificateIssuer. -type KeyVaultClientSetCertificateIssuerResult struct { - IssuerBundle -} - -// KeyVaultClientSetSasDefinitionResponse contains the response from method KeyVaultClient.SetSasDefinition. -type KeyVaultClientSetSasDefinitionResponse struct { - KeyVaultClientSetSasDefinitionResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientSetSasDefinitionResult contains the result from method KeyVaultClient.SetSasDefinition. -type KeyVaultClientSetSasDefinitionResult struct { - SasDefinitionBundle -} - -// KeyVaultClientSetSecretResponse contains the response from method KeyVaultClient.SetSecret. -type KeyVaultClientSetSecretResponse struct { - KeyVaultClientSetSecretResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientSetSecretResult contains the result from method KeyVaultClient.SetSecret. -type KeyVaultClientSetSecretResult struct { - SecretBundle -} - -// KeyVaultClientSetStorageAccountResponse contains the response from method KeyVaultClient.SetStorageAccount. -type KeyVaultClientSetStorageAccountResponse struct { - KeyVaultClientSetStorageAccountResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientSetStorageAccountResult contains the result from method KeyVaultClient.SetStorageAccount. -type KeyVaultClientSetStorageAccountResult struct { - StorageBundle +// KeyVaultClientRotateKeyResult contains the result from method KeyVaultClient.RotateKey. +type KeyVaultClientRotateKeyResult struct { + KeyBundle } // KeyVaultClientSignResponse contains the response from method KeyVaultClient.Sign. @@ -1118,54 +397,6 @@ type KeyVaultClientUnwrapKeyResult struct { KeyOperationResult } -// KeyVaultClientUpdateCertificateIssuerResponse contains the response from method KeyVaultClient.UpdateCertificateIssuer. -type KeyVaultClientUpdateCertificateIssuerResponse struct { - KeyVaultClientUpdateCertificateIssuerResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientUpdateCertificateIssuerResult contains the result from method KeyVaultClient.UpdateCertificateIssuer. -type KeyVaultClientUpdateCertificateIssuerResult struct { - IssuerBundle -} - -// KeyVaultClientUpdateCertificateOperationResponse contains the response from method KeyVaultClient.UpdateCertificateOperation. -type KeyVaultClientUpdateCertificateOperationResponse struct { - KeyVaultClientUpdateCertificateOperationResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientUpdateCertificateOperationResult contains the result from method KeyVaultClient.UpdateCertificateOperation. -type KeyVaultClientUpdateCertificateOperationResult struct { - CertificateOperation -} - -// KeyVaultClientUpdateCertificatePolicyResponse contains the response from method KeyVaultClient.UpdateCertificatePolicy. -type KeyVaultClientUpdateCertificatePolicyResponse struct { - KeyVaultClientUpdateCertificatePolicyResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientUpdateCertificatePolicyResult contains the result from method KeyVaultClient.UpdateCertificatePolicy. -type KeyVaultClientUpdateCertificatePolicyResult struct { - CertificatePolicy -} - -// KeyVaultClientUpdateCertificateResponse contains the response from method KeyVaultClient.UpdateCertificate. -type KeyVaultClientUpdateCertificateResponse struct { - KeyVaultClientUpdateCertificateResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientUpdateCertificateResult contains the result from method KeyVaultClient.UpdateCertificate. -type KeyVaultClientUpdateCertificateResult struct { - CertificateBundle -} - // KeyVaultClientUpdateKeyResponse contains the response from method KeyVaultClient.UpdateKey. type KeyVaultClientUpdateKeyResponse struct { KeyVaultClientUpdateKeyResult @@ -1178,40 +409,16 @@ type KeyVaultClientUpdateKeyResult struct { KeyBundle } -// KeyVaultClientUpdateSasDefinitionResponse contains the response from method KeyVaultClient.UpdateSasDefinition. -type KeyVaultClientUpdateSasDefinitionResponse struct { - KeyVaultClientUpdateSasDefinitionResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientUpdateSasDefinitionResult contains the result from method KeyVaultClient.UpdateSasDefinition. -type KeyVaultClientUpdateSasDefinitionResult struct { - SasDefinitionBundle -} - -// KeyVaultClientUpdateSecretResponse contains the response from method KeyVaultClient.UpdateSecret. -type KeyVaultClientUpdateSecretResponse struct { - KeyVaultClientUpdateSecretResult - // RawResponse contains the underlying HTTP response. - RawResponse *http.Response -} - -// KeyVaultClientUpdateSecretResult contains the result from method KeyVaultClient.UpdateSecret. -type KeyVaultClientUpdateSecretResult struct { - SecretBundle -} - -// KeyVaultClientUpdateStorageAccountResponse contains the response from method KeyVaultClient.UpdateStorageAccount. -type KeyVaultClientUpdateStorageAccountResponse struct { - KeyVaultClientUpdateStorageAccountResult +// KeyVaultClientUpdateKeyRotationPolicyResponse contains the response from method KeyVaultClient.UpdateKeyRotationPolicy. +type KeyVaultClientUpdateKeyRotationPolicyResponse struct { + KeyVaultClientUpdateKeyRotationPolicyResult // RawResponse contains the underlying HTTP response. RawResponse *http.Response } -// KeyVaultClientUpdateStorageAccountResult contains the result from method KeyVaultClient.UpdateStorageAccount. -type KeyVaultClientUpdateStorageAccountResult struct { - StorageBundle +// KeyVaultClientUpdateKeyRotationPolicyResult contains the result from method KeyVaultClient.UpdateKeyRotationPolicy. +type KeyVaultClientUpdateKeyRotationPolicyResult struct { + KeyRotationPolicy } // KeyVaultClientVerifyResponse contains the response from method KeyVaultClient.Verify. diff --git a/sdk/keyvault/azkeys/internal/roleassignments_client.go b/sdk/keyvault/azkeys/internal/roleassignments_client.go index 92c88026f19b..0e5726d1dece 100644 --- a/sdk/keyvault/azkeys/internal/roleassignments_client.go +++ b/sdk/keyvault/azkeys/internal/roleassignments_client.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -59,7 +58,7 @@ func (client *roleAssignmentsClient) createCreateRequest(ctx context.Context, va return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) @@ -122,7 +121,7 @@ func (client *roleAssignmentsClient) deleteCreateRequest(ctx context.Context, va return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil @@ -185,7 +184,7 @@ func (client *roleAssignmentsClient) getCreateRequest(ctx context.Context, vault return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil @@ -244,7 +243,7 @@ func (client *roleAssignmentsClient) listForScopeCreateRequest(ctx context.Conte if options != nil && options.Filter != nil { reqQP.Set("$filter", *options.Filter) } - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil diff --git a/sdk/keyvault/azkeys/internal/roledefinitions_client.go b/sdk/keyvault/azkeys/internal/roledefinitions_client.go index b90c26cbdfd1..cdb0a719e1be 100644 --- a/sdk/keyvault/azkeys/internal/roledefinitions_client.go +++ b/sdk/keyvault/azkeys/internal/roledefinitions_client.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal @@ -59,7 +58,7 @@ func (client *roleDefinitionsClient) createOrUpdateCreateRequest(ctx context.Con return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, runtime.MarshalAsJSON(req, parameters) @@ -122,7 +121,7 @@ func (client *roleDefinitionsClient) deleteCreateRequest(ctx context.Context, va return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil @@ -185,7 +184,7 @@ func (client *roleDefinitionsClient) getCreateRequest(ctx context.Context, vault return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil @@ -244,7 +243,7 @@ func (client *roleDefinitionsClient) listCreateRequest(ctx context.Context, vaul if options != nil && options.Filter != nil { reqQP.Set("$filter", *options.Filter) } - reqQP.Set("api-version", "7.2") + reqQP.Set("api-version", "7.3-preview") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header.Set("Accept", "application/json") return req, nil diff --git a/sdk/keyvault/azkeys/internal/time_unix.go b/sdk/keyvault/azkeys/internal/time_unix.go index fb04ebdc6b50..aa325c111e27 100644 --- a/sdk/keyvault/azkeys/internal/time_unix.go +++ b/sdk/keyvault/azkeys/internal/time_unix.go @@ -3,8 +3,7 @@ // 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 (autorest: 3.4.3, generator: @autorest/go@4.0.0-preview.27) +// Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package internal diff --git a/sdk/keyvault/azkeys/models.go b/sdk/keyvault/azkeys/models.go index 3a38649732d0..5aa2888bd745 100644 --- a/sdk/keyvault/azkeys/models.go +++ b/sdk/keyvault/azkeys/models.go @@ -84,6 +84,9 @@ type KeyBundle struct { // The Json web key. Key *JSONWebKey `json:"key,omitempty"` + // The policy rules under which the key can be exported. + ReleasePolicy *KeyReleasePolicy `json:"release_policy,omitempty"` + // Application specific metadata in the form of key-value pairs. Tags map[string]*string `json:"tags,omitempty"` @@ -284,3 +287,107 @@ func deletedKeyItemFromGenerated(i *internal.DeletedKeyItem) *DeletedKeyItem { KeyItem: *keyItemFromGenerated(&i.KeyItem), } } + +type KeyReleasePolicy struct { + // Content type and version of key release policy + ContentType *string `json:"contentType,omitempty"` + + // Blob encoding the policy rules under which the key can be released. + Data []byte `json:"data,omitempty"` +} + +func keyReleasePolicyFromGenerated(i *internal.KeyReleasePolicy) *KeyReleasePolicy { + if i == nil { + return nil + } + return &KeyReleasePolicy{ + ContentType: i.ContentType, + Data: i.Data, + } +} + +// KeyRotationPolicy - Management policy for a key. +type KeyRotationPolicy struct { + // The key rotation policy attributes. + Attributes *KeyRotationPolicyAttributes `json:"attributes,omitempty"` + + // Actions that will be performed by Key Vault over the lifetime of a key. For preview, lifetimeActions can only have two items at maximum: one for rotate, + // one for notify. Notification time would be + // default to 30 days before expiry and it is not configurable. + LifetimeActions []*LifetimeActions `json:"lifetimeActions,omitempty"` + + // READ-ONLY; The key policy id. + ID *string `json:"id,omitempty" azure:"ro"` +} + +// KeyRotationPolicyAttributes - The key rotation policy attributes. +type KeyRotationPolicyAttributes struct { + // The expiryTime will be applied on the new key version. It should be at least 28 days. It will be in ISO 8601 Format. Examples: 90 days: P90D, 3 months: + // P3M, 48 hours: PT48H, 1 year and 10 days: P1Y10D + ExpiryTime *string `json:"expiryTime,omitempty"` + + // READ-ONLY; The key rotation policy created time in UTC. + Created *time.Time `json:"created,omitempty" azure:"ro"` + + // READ-ONLY; The key rotation policy's last updated time in UTC. + Updated *time.Time `json:"updated,omitempty" azure:"ro"` +} + +func (k KeyRotationPolicyAttributes) toGenerated() *internal.KeyRotationPolicyAttributes { + return &internal.KeyRotationPolicyAttributes{ + ExpiryTime: k.ExpiryTime, + Created: k.Created, + Updated: k.Updated, + } +} + +// LifetimeActions - Action and its trigger that will be performed by Key Vault over the lifetime of a key. +type LifetimeActions struct { + // The action that will be executed. + Action *LifetimeActionsType `json:"action,omitempty"` + + // The condition that will execute the action. + Trigger *LifetimeActionsTrigger `json:"trigger,omitempty"` +} + +func (l LifetimeActions) toGenerated() *internal.LifetimeActions { + return &internal.LifetimeActions{ + Action: &internal.LifetimeActionsType{ + Type: (*internal.ActionType)(l.Action.Type), + }, + Trigger: &internal.LifetimeActionsTrigger{ + TimeAfterCreate: l.Trigger.TimeAfterCreate, + TimeBeforeExpiry: l.Trigger.TimeBeforeExpiry, + }, + } +} + +func lifetimeActionsFromGenerated(i *internal.LifetimeActions) *LifetimeActions { + if i == nil { + return nil + } + return &LifetimeActions{ + Trigger: &LifetimeActionsTrigger{ + TimeAfterCreate: i.Trigger.TimeAfterCreate, + TimeBeforeExpiry: i.Trigger.TimeBeforeExpiry, + }, + Action: &LifetimeActionsType{ + Type: (*ActionType)(i.Action.Type), + }, + } +} + +// LifetimeActionsType - The action that will be executed. +type LifetimeActionsType struct { + // The type of the action. + Type *ActionType `json:"type,omitempty"` +} + +// LifetimeActionsTrigger - A condition to be satisfied for an action to be executed. +type LifetimeActionsTrigger struct { + // Time after creation to attempt to rotate. It only applies to rotate. It will be in ISO 8601 duration format. Example: 90 days : "P90D" + TimeAfterCreate *string `json:"timeAfterCreate,omitempty"` + + // Time before expiry to attempt to rotate or notify. It will be in ISO 8601 duration format. Example: 90 days : "P90D" + TimeBeforeExpiry *string `json:"timeBeforeExpiry,omitempty"` +} diff --git a/sdk/keyvault/azkeys/recordings/TestBackupKey.json b/sdk/keyvault/azkeys/recordings/TestBackupKey.json deleted file mode 100644 index ef16940533e4..000000000000 --- a/sdk/keyvault/azkeys/recordings/TestBackupKey.json +++ /dev/null @@ -1,3242 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key292313766/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key292313766/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:39 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "685", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "960e4455-3c07-4fe8-936c-a635678f2f32", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "sHmE5JHAnfbtEgc3riheOT9Z-UCyrRt4mExtJnslIsgA2qFiLaXchbrEV826GB0BdsDjN9iiaVmrI-WTfXugjtODPhRiAhQpcbh08gLUwqsfxIvtatE-8BkdoG4_C0ONy9QmnvjJy4kpEX0if6T8mI86Z1mtup-hmXNjYAhc5PHFPbd_uQHHGFsYPWsTsJcQ7zqC0ng2BY3TdljKsrw1k31XHyrhAKz_Y2Zwr8JpsJhon1Fwuwn1S6EAXhLsLvTnVfeiOLRBMqSMyjFZ26-bwtNlz73_3x_09iR0mX0RIWvRG6OE_55gkJSekpTdJn9460-1T1A7ReRFfWEsYNHPHQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227297, - "updated": 1634227297, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key292313766/backup?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key292313766/backup?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "0", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:39 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "10414", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "65f4acfe-88ae-407c-932e-cd5ccbb00a98", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key292313766?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:39 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "815", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "682a2c35-ae1a-4f0e-ada0-5c71d1d88893", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key292313766", - "deletedDate": 1634227297, - "scheduledPurgeDate": 1634832097, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "sHmE5JHAnfbtEgc3riheOT9Z-UCyrRt4mExtJnslIsgA2qFiLaXchbrEV826GB0BdsDjN9iiaVmrI-WTfXugjtODPhRiAhQpcbh08gLUwqsfxIvtatE-8BkdoG4_C0ONy9QmnvjJy4kpEX0if6T8mI86Z1mtup-hmXNjYAhc5PHFPbd_uQHHGFsYPWsTsJcQ7zqC0ng2BY3TdljKsrw1k31XHyrhAKz_Y2Zwr8JpsJhon1Fwuwn1S6EAXhLsLvTnVfeiOLRBMqSMyjFZ26-bwtNlz73_3x_09iR0mX0RIWvRG6OE_55gkJSekpTdJn9460-1T1A7ReRFfWEsYNHPHQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227297, - "updated": 1634227297, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:39 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "497a6ba6-e0ad-4e72-a220-aaa16e413f65", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:39 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "92631a0d-03fc-4ef1-b60b-01bb7b72ffcc", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:40 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "61efda98-efc2-41e7-8d04-2581a745e12e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:40 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "cad38722-91aa-4b55-b337-5e9bf34c0399", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:40 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "775576b2-3fbc-4ae4-aa97-68bb534dae1c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:41 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "11c7f03a-33d6-42eb-9bdc-0fdda58594a1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:41 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "170bde7d-6c15-43ad-ac0a-c1c634548aef", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:42 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ed36b3a1-331f-4d60-aab2-3f65cb7bfca5", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:42 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d46a4273-ec61-4b87-9fd1-53fe08f3bf42", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:42 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9ff3b77d-09d9-40e1-b352-dfd4074f77b0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:43 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a7711071-ea31-4178-9cd9-1df1a2380761", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:43 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7e661964-b3fb-431d-acac-8665f229853c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:43 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c51d5cf0-8e7f-49bc-b59f-10ebad24ec99", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:44 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "fff8fafa-9347-4140-bbeb-72f623ceae3f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:44 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1e66851d-d134-40b0-9774-a7ff9b7687b3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:45 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "41185fb8-3f28-49ea-8cd6-2c21065bf7f4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:45 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4a7d6519-d06e-4e68-857d-c410cbc6769e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:45 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5910a596-e6fd-4ac4-8a3d-a9fdf9bdf119", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:46 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4a8dbe80-9024-4f67-8c91-64ae9f50405c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:46 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2ec92257-c4c8-46b2-a537-ade30e2abb55", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:46 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ea1710f5-be2d-40d5-9813-b8d919369414", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:47 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3efa4d38-4174-46c0-a36f-5f1ee3e284f1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:47 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6cc33f2e-3e74-43f2-bd37-b63b6bcee7e4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:47 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "de27949b-7f22-492a-a785-4a4f0d03c4fe", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:48 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4881013e-7f75-499d-af3d-1cdcfbad6f00", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:48 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "963ca4ab-d38b-40f9-80d4-e8c5860c997f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:49 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "815", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0c4036b2-9530-4e03-a682-653ec03682d7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key292313766", - "deletedDate": 1634227297, - "scheduledPurgeDate": 1634832097, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "sHmE5JHAnfbtEgc3riheOT9Z-UCyrRt4mExtJnslIsgA2qFiLaXchbrEV826GB0BdsDjN9iiaVmrI-WTfXugjtODPhRiAhQpcbh08gLUwqsfxIvtatE-8BkdoG4_C0ONy9QmnvjJy4kpEX0if6T8mI86Z1mtup-hmXNjYAhc5PHFPbd_uQHHGFsYPWsTsJcQ7zqC0ng2BY3TdljKsrw1k31XHyrhAKz_Y2Zwr8JpsJhon1Fwuwn1S6EAXhLsLvTnVfeiOLRBMqSMyjFZ26-bwtNlz73_3x_09iR0mX0RIWvRG6OE_55gkJSekpTdJn9460-1T1A7ReRFfWEsYNHPHQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227297, - "updated": 1634227297, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:49 GMT" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:01:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "17551af6-7313-47aa-b873-2273a805f267", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key292313766/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key292313766/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:49 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "300", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2fa8aa24-f8b6-4040-9cb6-1ee4189f6ff1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key292313766 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:49 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "fba1899b-0e46-4c52-8659-4a6b850b12d6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:49 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ff42a183-29f4-423c-a6b9-e508cf9885be", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:50 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "17d91b15-19c4-409f-a289-68926434c0c2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:50 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ce219f86-b1b2-4932-878f-73d42a0bb4da", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:51 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f45e3c8f-6289-4ea0-a962-a6ab3e5627cb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:51 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f65c1234-63ba-4d75-bcdd-fb9942722cfd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:51 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "de422851-3cf7-46b9-a43a-29dc5b5a67a5", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:52 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2938004b-9b34-40eb-9d49-c6eda647c140", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:52 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "34b3d06f-77af-42a5-8f43-ab22bf66fa76", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:53 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "603", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9d43864c-1f85-45ab-8a79-87bf066dd755", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the key \u0027https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269\u0027. This can happen if either: a second key with the same name was created after the first key was deleted; thus trying to restore a key whose name is already in use. To fix this, rename the second key to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the key. To avoid this error, perform operations against a key in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/restore?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "10414", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:53 GMT" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuWDVzSHJQNzlBblhIOGF2cVB6UklvempVMUgwTE9WVkN2TmZDS1lGYWVab0o4MEFtdXdfOTBpOTRnemNuc21RaXNtaFZqWWJoZmVEZ2lNVExGQ3JyLXQ0dWVOTGk3N1RDNXJmbndVNmZEdzJ0dGhOY0pLcEJqTHF5cGNGdWU3Q3gyelpUX0x1ZzdfaDMzdXZCX3dOMThOaDNKMF9BcmQ3dG9heDc5VENBdHFQdGVWS1RJaVo5QTR3MUg0X1o2a3dyNjhMNmpKZk5lYTBiVmlTRGdUMVhHdnh0SUJtZnllbmFQS25CWVlkMWQzN3Q0LVdONHdmUE9OZWh5cVBGOURFQkVsTjlRbFFDbWRwdXhRNTRTYXd1UTZIZmUxV3dmaG1TcGdhakpCQ081eVRaaWhIRlBJZGxueDFMX1BZT3pKRlFBbVNtMW9NNkJYMWpuUDBLblFyeXNBLjhfZTJCQ1pVV1l6b3ZjX1hMUWRRWVEuUGI3ODVfQkhvZ0VrZENURV9XckY5NVFISm9DSlpHdUZ1b3BjTERMTTVGbDdWd1hrZVl3NGVVZjJLdHQycHBrcEJOUGpWYnQxOEJGc0RSWTVZeER5bEZ2TzVaVzNlT210cGlEcWJ5ME1pWkotLTBReEdIZmlZTWxCa2Ruc0Q0LU5oYldmM0ZvSFd3aHBHdUtpTHFvMHRZSjI4ZHRkUkl4UWNfejBCRDRyTi1tbFplZFdiOW9pc0ZkVnJ2LWxqazlHVGZCaWJPMGlxTzZOTGd2dkFmT1o5Wm1ja3hsOV9NTzRyYnNRTkRpM21YNU1kdTRGcFhjbF9LNHhQd2QyRkVmbkRaTE5QMG9fY3J0aE1YNGU4ZlZuekhkanlfdlhidnhtaE5VWVQyelFEaHpueWNicXgtX094bGdub3oyMHo5Q3NYSTVVanJGWi1SeUg2V2gzNnlpUHBXU1lKWVVyLUNDVHAwT0diVk1IeGdVQUkwSUNTQ1VnQ1lqLXJ4U25UZjctMG5hd0kwMFRSSnAtQm5VMTZWVlZfcHVPMVo2aUUxRnU1QkdVYXZ2bFFQcHpWbkdqTDR6TDNlM1k2OG12NTVLemNGSkt2cUNMdmNrYzhJalh3NkhYZzVIQVNnR050cjVuT3FTZHBNRWN3SnBWV3IwUFpFcm1zZ1M0RXV2N2tERGFWdmRiNmlTOFVaaDhaN0RIeWF3ZmdBUVFzaGxIdXY1VWhlUlpxUVBxQjRqZDh2ajdUbmxhV3RHWUY1SE4xZm14NDRoWWsxQnRFLWNpc2dwNWJfWmZsNUxnNzAyQkNxeWkyWWlUeTBMU1hELXFSOUpRMG1NMF9fSTlkMFFpOGFNVmEzZ0ZqaUlVTmJvdkJQWlRCN1NNSEFqNjFldDRpZkdsVlRaUmw4WXRyblhfNTB1SVBZXzc4a0EyWjdhdnhGbGk3ZkpWNVlYRXQ4aTF3b0NCMHBiVzlWbWo5a2kxa0JtTzNmUzlnOWpnNEVOSGVVSTBta0tWMmRtV3dqTS1TR2VJS0ozNnluT1VRdmVnNHlEVS1MQk1xSTdIckFHOGtFWDFlQlNCSWhJLWlwSzJTeVRpWFF3Smd5alN1dmFJMDdaQlNwYlRGdEpnUVc2VjRKWUtBTjlJTEQ0Y0ZKUzBSQl9IUkYyTkZGVWNmUWxzVTI2MHRGc0tKUzhxVXVLcEdpUXh6REtuV1g2QlFONFdBcDBhaWkxLVBoQmt5SXNrOWpnUWxKLWs4OTQzYnJROTZmZEpvQ3hsRERHVEhxeUJlZHd3RFV1NEVvb3ZlS3JuYzJ6b3JlX2tTWmZTQ0dhTWRYUk93R0dMTzcyR3RxVVZQUHBFcE1ZUmttbFA5S2k3NmRNVnVyS2Nfd2Z5UXFCdkNQU0pvaWYydnNOYl9PdnVQZlVLNDJTU2ZBV3J4ZVJDbDhhRFpCZGo4N0NSM0JPUk1mOGVVVUMxTTVOTWlNcFFiSXczSVFQbnFlZVp3ekFJUjUtRnpBTEJZVGxWM1FWVjhjd09aenRhY1JENzBtRGlNQ242cmY5WGItekl5WnJ6bk84ZklaM19kLVR2R0dqSTVoMUJPbWxLc0tEeUh0UFppUV9hM2xFaWI0R3ZtWUN6VUJ1VzVNYXRtZDllYjhmREcyeXlHRmVBWDdFY2F2MU05aExrSTZWLWxXYm1yMGY1SzFfckU5TnB4aEkxUkd5czlmck1PRjVJRXpBcmF3cWMtV09nRlduaUF6bnlNMU5SVktpZFVHLWUzQWpWS0pxUGJGVjM0TkhuVUNGVVZSd2Z4Vm5OTUdGWHhmdnktYmRTQlpMRkI3OWVwWTRhaGtwQ1FGREU2RE1LSzRLdXBfTlhidzh2OVpKNVNFMWltOEg4ZUNaUWM3NzhrcGF2X1ZfbExWR0MxaGZfcTQyTWNpT3VyZHlYc0NKU0VPQUpMbFR1NzJOMjVRU2hfeVg5ZU15T242dEtRalUyaE4ybldhWWFGb09oclFvTEJwVW12NGdwSnN0bC1IMkl6T3R4b21JeFFsdkVCdnhTZTd3UGhPQVc0dWJYend1d3NncVJGQWJQc3R3ZUlVblpySGVpSFhlUnBQOFFXMWlkeEkyTnpIaDl3WDhkTWVsLWtpcHJZQkM1N2JBWWhoWUxIQU50bGx3ZmhadFloTnFZRFVFVUF0UVk1QVktWWE1Nm9NSVo5WlVhSmNlSzZ5b19uTU1rNWp2QnpWZ01xVnV3WUlxY3JBMXRNeXZxT0NOYmFWYmpSZ3Rqa1lUODlVRVQ3QlVMT0VzNDhTMXlUOFI3LXlGaUJXNkdpc0hFT0d2MC1qVWJWS1F3RExuZVFpdHRkQUc4ZzV0bkxaUEVBTkt5ZllBMEdPVEh1MlBCd1FyVWlBaXBIME5iRmZYdnJfclM1UWRJb3MzenlsenpFR3NzNk8ydGNTeVF2aF9CZzRKZk9sUnhLUkljdm9EWmdKUnF0RWQ5aVNkM1dfMGpHSmtTcHFicW5WQWo3cDhKblk5RklTS3RPX25zQlpHM3A1aEttbWVHRlYxMUZhb24zTEp3YWhFR0JKMW1vcmxqbnlJNG1SQVN1dlBRRGEtWUo1dGRKNFBHSHhmNDZNYXBXYVU4MDdPVDI4MHptdG9FNERDRXNISzd5Z0pOUjVLeFlfZDhsOG9LYjQ4U0VENTNkWHRCN2lZenVjbVc5Vm16T1lDc2Z1NTFucFgzblJSNzdQV0pKV2xRaWtZZlRNbGJlRExPSzhUZjRBT19sbS13ZEJlUDNUcUpQd0dWV19JQkFCNWo2U1RmU1hPX3NmWFo3aFV1OVFGM09xVGlPa2h6VGhUbi0yS2VVMXFjeWlNOW8zMEhfbWx2Q1lqYzJTSUpaUkFDWmNIMVNscWc5VW01aVRteFUwZEZ6OU9ySlp1MGpMYVAydnlOd0NCUUdlRlVua2hfdWFCaFR5NFYxQVNJdTZ1MnBPd2dGZXVjUEpwOUhFOTVwT000RXdQTkltbncxRmhjOVhXZlh4WUZ3RWtGMlRiZXhIWUdsemNUSjZPdnpRSTEtZGE3NHd0YnFrVU9scC14TWZIekFHdkpfS1BNYVZZLW5qV1pySk10M1BNWXZPT2w3dXVaenVhQVZTREpxMVByanctaFZLVGNOUGtoMmhaR25RckdCTW8yOGg4YWtNOHhLcllnbFlYNnNPeExEbmNLN0dpNk1sMGc2VlZHSm5KUzlRckJnX0IxbzlEeFZjeUJfNzJuWmt6cDZvNktzZmRYZ3Y4Z3B3Y1VNVGQxM2VuWmJsTmJoUGR0T3IxM2NQbDN0M0tfQlBTLXg2TjRSX2RIaG44SXNfdWtvZEluWHNHNjhrczJGb1VDVzR5amVLR2lEYnNRNzl5OEp3NWExdUVEY2thVm5CU09vNFo4eS1vZHE0TGJOMngtWlpSQnFwTUdaM09WS2RwNUpQcXkxUEY2TFhBVHdtNUtHM0RXM1dqY2dFN2pzS2JvRlFsTThnbzIzMXZjY3VQcTdBSnI0aENhdng0a2ZzT2JnQmpxY2RtRlJLblEwTThFZDVDRi1SSUFMNDhkT3l0YS16TFlNNlN0YjkwN09fN2pmYlZxbzNmbUlvckIxUDUxbzlXeVlhWVdPbEMwcXgwa2x5TDRZa1ViR0NRMTI4dUljZW1rWFVaRnNFa21xaFZTU1F1UG9LVEgtYndPcVFfMjFFMXFFeWdNZ0pickljZkNYRnVIb0RNZUdOejJ2cU13TW1jWWU5SXpfRW1SekUzN3N0aGt3UzhPdjVJbzhtUXJrYXVDSzJaUEo0bnJpYVp1UWhlUzVneVROUDdzX3VuVHpTV0Zrd1M2NFp0Y2MtY3Nvb1o2N2otYU04ME5UbjlJTDgyckZOZ3lMajFlZWNMbW1HMHNOSnVmby11aU40ZTY4SC1tdUpaRHVCcDVzbTBVTGIwcmRWU2FqUzJsSGFHdnRod2hyVTJEYldhTXg0aUxweTROXzdqalptbWR1RzJnc3ZjazNuWWRTcnd5U2hWSUFBZkJDT2JkU1l5V0tHM1hHaFJoWnpIdVA0SG1uUmwtUmFDMi1TQmt0RmxPdjZIT1FjRGlJOTk2WllpNE55dEh6ckdRbUpTbjZPcTU2VUhLM2tQNXF1Z29jRWY4dTBFNmRkSEFncW1rYmlwVGsxVHJTOXhaTUx6MGZNM05vRWQ2eVhUOXZoanV2RmNwN3B0bGo3RzB5dDJLSGh0QVJDQVZVNkFubDNEU1JFS0pGS3hhcU94TFZkWlR0M1JwOFZiX3JFdXpSaHhERkJkOHhmUjhveVBxdm5uMDg0Y3o0QW5HUktyXzh4SEZCaFBBcUJwVjh2YXFmSF96S3RSUmdwUjZqRDMtMUVRd01ZZHBJZWFHNF9mbG44TjJ1SUN2bndlUzB0bzdVRU9LUER5UVF3d3k2S1NBcGxoLVFKcmxSWjA3SVZBM0VtOGZCZnYzWGZidjJXaXVCNEk0WmRXZVltbXJkVHZjb2Y0OGFqc0RlNk9Gbko0Ymp1eFRYTzBCZllOTU1QbGdIUjR3WHBSZFJ0Qm1jSmhPWkZKOWdMY0xWNVB1Wm5acVhxQXZjLVpva3h1cEMySG9hZ2RhUC1BeUlSUWUzM0NRQWRMcjE2TE90bWNpdGFmenZLVXNIMUNlTHFYNG5uN2FEQ2VBY1J6RlRDRFFxYnBHOWRKNXlYY2ZwWFg0a3RWLUxhMi13cFdtWFFjc1Z5aFJfbENJSEJfQWhTSG15NXMwQmREMVd5MzJibWlPbTlIN1Z3REF0YmNNSDRILWpSXzNwUnFzX3pEdVNIUDk3R01qeGdJSk0wWE1aQjFLcVpYT1NDcklvX0FRb2hhN01xbjB4SWstRHpJRW9STzRDc0VmMzFubVVRN3ZfeVFHOUl6SXRxbjA1c1pKampkczg1aXNPaW8zTVg5aHZaNjJyXzRBVXkwUDEzWlhpOEg1a01DeXVaTnpzajctQlprZXpRaVVabmdoNHdDRlJRUksxbUZzcEJsVFp1OVNEOHNCbWV4RUtJTS1LYnFmSlBQcGVwXzJYTHlmQUNjQkVhSGg2QU9uYjc1TFFhOWVuR0tpWE1kdjR6VDNrWEJuS0RjVUd3UmxLX2xqTFhxRndZdFZkbXNEZTdIY0VTRWh4a3FxeGY1OVd5cWQ2eFpTUkM1Mk16bEJERmZPWDlLckpucmtzUWxfQWtiZVZYUWJ0X0F1QUxOcjN0MUY3OFNKZ3JiVGViSC1sLV8xWEl0WUZGT1UzdURJWFZ2Q1BQUi11TGQwVUNRVUYwclRVeEZyMWZ5SG41aFFhOGg3Z2xXUGd0Wnd4ZjFLQXRZeDU1YWx2MkNNLVhVM3NacXBJX2syWnlLcmJWLWdsbjRKeGVjMGVfVjVlcG5CWUdIWl9naWt1QmtUZTViR2dPX2pXelZfbGJaamdrNThlWVlJeEEzSktmbVV1OHVhZFRLUEhDZG1BWkFDS2ZrTG1IRFVpN1EycmIyYkNQbXZwYUVoRWF1VEx0US04SGx3WlpRUFFkLUdaUEoxTFVpTno1d0ZlNlFNSXkxR3VkX1ZaTmFTaThROTNpc2xISUxWRll0bVExLWtIUFp6ZWN2c2djb2VYbUpiR2JfeEwwTTR0eTF0b2NZZFpMVDI3Sm9IaE0tb05vREhQaVNIdno1VkkxaGN4SmR6cVBWUXpUakFmTjFCVy1FZVdTR1ZqeTBVem5qRmFwbklidkladkJheVE0bjBISl9hQkEtVkoxbVdsT2ZJdjVyNjU0UzcxZ3gzWHdRUzBsYVQ2VExqQXN1YW9MOWY0ZVNQV3Z2MllRN2ZoYXdLYWhpLXZUUUNoUzQxajFXZm5IUUZ5SUQzMncwTUY0ZUxMRGhRenlDQnp0UHUzeGo5YkZELS1VRzl2cGs5dk1BTmdyU0EwNkQ1X2dmQ1pTczlRdF9VU292TFVRZ2FqQlg4MzNZMWxlclVSampaczB5ck9xTnN3Z3pJajc4eVU5c0JhRlZIdXEtd3Z1UXF6c1FOaklNU2ZmbDdaaXNjUzRSSVppNU12dHg2R0tCeklEN09CbzNRZXhadFdxOTVJdk9FMWxhTHFSeUVDdWFRSmxYUFBCU29GYUZmSllNTGlBZkMzeF9INkoxblZQc2lKa2hMUUpFVUwxUFZJdnM5RXhMOTZMclFUUG9tRDBqQTd1SG56c2w4ZVBwVGZMb1dxeGctbU5GRk1sclFucmxYTFkwQ2VyTmtZMV9rTmxvNTYxYnRJNHRVRFJWRmV0X0J6bkFIck03R3ByalBiOVhOeFQ2QWMxRDEtczZfNmh3bDR0SmlVQ3MtNzFPRlNHTlJhcVM5Q1NNMDg4eV9CaFRvRDJMVUZhOU81VVhsSG5LNWtWeFU4SXBqa1dLcmowZURQZU1lODhxRmZxd2dsN0xsUU9pWVZMT3c2RVJvbVF4dmNHSkVqWXlHNHU1dlo4VWhnYUd2OHRJc3VlclkwWWRDaVRkaUZ0N1dic3ZndmZsVmNBTjdrTDRycjB5aml4cGlHcjBhV3NrT2cxcllxYWRIc3JKMWpFQ0ptNERnMHJnUHFNM3dCcTRhQU50QUIzTlVHandUd193ZjJkbzJScDQtX0VDSVR5YzBZQl9uOUVKbTJ4TUNPSHQ1NWtZRkpnTzZ5X0dfbVhSeTh2WlB4LVZYOGFxNENzN0lmQzUwSTUzMXFSc3BkSGZITjZkMmxYazNYVGl2MGhmQ2dJUlFLdFhzdXhURG1kS2hlNVgyQ29fUi01NEs3MW1XTDUwQ3JSMWhlbHk2aHYtaXVXLV8xdWxZOWVrQ25QT3hVc0VObDk4ZW5GVjg5UEFEZEtCOGYtMkVXVkQyS3FwY2NrNTZOT2czbk15MFotdWhndGNFaTRfbTBBaC01LUNUOXJKcEFBMlpheV9qUm83aUNjQy16V180OEpNS1NBck4wMUhWeFhlM2R1S2VrR2YxWHNySVJuMDZlVnNiTUxzWlQxaUdXUXJvS3lqZ3ZCR290VHVURkp0RVNzRS1EalN2b2s5SS12NUlvYWZTYnQ1WURnSFNvQXJnSE1PS2ZZWUVaX3ZSZld4VWlOdTR0UWNHZmxnaHZSS3MtVFhXS08wQl9GSGhGLTlCd0tyLVhnUVVSclRmQ012c0Z0dXk0SGpoSXluMUVVSGVPaEwzSWo0RzBQbm1VWl85c0lwS1lpUzBtZXV5MXBvLVdhYkdGOUczMUpienNkekdGNVhYd2RDa1Nxd0tnMVJBd3U0UFFmMG50ZXJvVlFCUVlPTjNqVzZpYXlEcV92RmZLMno5RjNFbnNEYXlXU0hheW81N2hQNUtsSFJWbElwUUpKZVRWMXNGaG8xckJ3OWlHdTZsVnVfc3hidS1YS2ZaRHhSZWVZOE5rS015cll4OG1fZEMzTnpqY1RSSm02X3lXZFU2OFp3UEwtTXZVS054WkdEQ3NHOVpXc3U0VVMxbHhGWm5xWGgzNHh2YTBnLUdhZldLM1REQVBPcTdFSWFRMHR5TTBkMmRSZFVFUXFLUkd5a1p6ck01WlhmMWpCbHUwbHhMQnp1QV9IQUlfMlpHeGEydjc3dkE3djg1WWIwb3kxWTVTOFJGbE9JSmNObkIxZC1NZFNDWXJsbE01ZzZGYWFKRTJlTkxEb3lQdkJWc2dWR2xHS2JkZ1ljMDl2VkdkVzlSWUVwd2VweVFHRV9ZVlVGeHhZcDNOb3dLV2lGdE96bVY2Q0dqTDF1M3I3emE3djZQc0JfdkxlQjhaV1c0cEljVXR0bUx1OHBoTTFNc2xYVnRBZVVIeVQwZVExU1k3VFlwWGd0cG1vSU8yWDV1R05zNTdpbGVBZ3ZyMDVhc0xua0tnclZYUS1Tcy1TMXo2V2hRaEh4ejJ2SDFXaGE5MTFMNHctekpKS1JjUXdXWG85SXpBT0p2SjlBdFlwVWdEUXhDdFpHWS1KeXd1aVhwMjA4enhqdktETFBpWTdNbHUtaUs3UWwzUktTbEMtZW56Q3EtTVJGblNqeDlfUWhnbWNPSUxWQmF6azBwQ2c2TWVva3owaDZYWExMS2dyV3J5T3Z2ek5URHQwUlZKVWlHN216bHNycmlzNzVQbURwcHQwOHdSYkNRRi1kZkM4RUFfQ1RBNng0MmJCeVM0YVo3TU5FUzJfYmZQQktlMmwzdzREbkVHMjJoZjMtV3JScllVV1k4LWdrOXpGOFNNUGw2M2xXMjBYV2xSaldtWUhmZEF5VURRUnh0bGJGcHFNR25Vd1BNa09BaXFjLWtmSnF1U29oN2laY0dPaGx5SmxLWk93V2x3NjlSV3ctR2dvVkx6VW14a2UtZklrbGpWSnUteTlLRVpPM1hiUjg2UFIxSWg0WTZxZ1p3amUtOF9aVTNGUXpLbWJwVHFSY0RJamUyRnpGUzVEaFpPX0xqU1hDX2lqRDV0eFZyODd4UHVheXFaOE5wOTdjRUhFeW5FRU1McXUyc01HbjZKZzZWdW5wS01ka21XMVpiU1lPNTVCQ0ZOa1NrZlZJOThDajVwLWYyNUNaYXF2RmRrTC1XYnIxMTJvWEFvVWpDSWRWLVMzNlZpbWc5MUxGSUlSTXZoMUs5a3FLU0ZiVXRoTVNRWHJYdE9IR3pxd25sbWxZYUc2dDRVUGlXQzAwaE1RdEd6YjNjOEwxeEdPVDFZSDdQM2ItS2hiaEl3MmRvQVA3NXNxbzV0blo1ejFyRTZCdGxSaUdNdjZLbURVd1FKeWxtWWxjalRsMUVqTjFJbklfVkp1Tk9nUFlUZGpJVmtEcE5SUVB1d3hIQUx0eU9jS0NTVEpIallxSndNVmZLdW9lTDBNV25xWEtWSmlhZ2NDbVVjUWtnUDJyd21NU0lzbGZ1LXo4LXkzcXhVbFhOTktyMUJ0bk9BN0xLOVVhN2VvXzZ0QVV5eldsLXhZM0JLQTFOTU9ZbEswNzYwWEJ0VGRoSVdTUWw2VHpoSmxCbUgyQ1R0ZXZaYlNiMm9wODlWbkg5VE9ZYXVfOVZXay1UVk03eU1BLU9VYi1pbGRXanJXWlJzY2dqb0JxZXo3cHdjYklHTVFiaHNjb2hNVko5YkJTS2RPa0pxc2RaTF8ySVduckI2dk9HaXBOZjAzNHFtNjNMS1lySFdZYlJ6eEJfMTgyYXpfRkdXeERqTW8xSUdtOW83cy1BMGlGYmxGOUpzeUV3TWdSQmluaXo2NWNGNlBuSjJMa3NaT1JGRlhZZ2lVRkM4SHdfRE9DcUVrbnJubUVxeldfWWFZTExva1M1WFVUMWhBWEc3N2pWN2JaTUd1RmNBeWthZ2dwOThvSlZOM1BQNjJjbi1iVThVakFJczNVQXctbzVNMU1LRXZMZUxHWkc0RW5BeDRjdHBfNDhKT1NtSGRWbWRmbF9ZNlc0LUw4TUYtemtEYlM0Q0pqbGo3NEpBUXdkbE52c2xoX0E1RDF4Z3pKXzVlUjRRRFF2SVQySGNlWGdPTjZRR2gxZFFEYlhNTlZFOWQxOVlYdUloSnBNS25tRk1HZndDTHZxek1iaVlpQkdEckIyZTJfSXlEbGd4ZFJfajMxdXVTN015MlZ2NkRtODZWT2NJYjdJYUdRNTVxZlhsamU3aTNjWTBueXhyN196Vko1dFMyUklvYXVRWVp6YmM4Ty15MnR4cHlSRi1zLVYuczU5cGtCME9HMXRyN1Zrd1p6OWtibkpDQjdXZHJwQ1FENnRNQTdkXy1WSQ" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "685", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5f621155-442f-4b15-9c21-e4a8bc98447d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "sHmE5JHAnfbtEgc3riheOT9Z-UCyrRt4mExtJnslIsgA2qFiLaXchbrEV826GB0BdsDjN9iiaVmrI-WTfXugjtODPhRiAhQpcbh08gLUwqsfxIvtatE-8BkdoG4_C0ONy9QmnvjJy4kpEX0if6T8mI86Z1mtup-hmXNjYAhc5PHFPbd_uQHHGFsYPWsTsJcQ7zqC0ng2BY3TdljKsrw1k31XHyrhAKz_Y2Zwr8JpsJhon1Fwuwn1S6EAXhLsLvTnVfeiOLRBMqSMyjFZ26-bwtNlz73_3x_09iR0mX0RIWvRG6OE_55gkJSekpTdJn9460-1T1A7ReRFfWEsYNHPHQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227297, - "updated": 1634227297, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key292313766/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key292313766/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:54 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "685", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "25da1b85-40b5-42ea-9dd7-d9ccc965c4ba", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "sHmE5JHAnfbtEgc3riheOT9Z-UCyrRt4mExtJnslIsgA2qFiLaXchbrEV826GB0BdsDjN9iiaVmrI-WTfXugjtODPhRiAhQpcbh08gLUwqsfxIvtatE-8BkdoG4_C0ONy9QmnvjJy4kpEX0if6T8mI86Z1mtup-hmXNjYAhc5PHFPbd_uQHHGFsYPWsTsJcQ7zqC0ng2BY3TdljKsrw1k31XHyrhAKz_Y2Zwr8JpsJhon1Fwuwn1S6EAXhLsLvTnVfeiOLRBMqSMyjFZ26-bwtNlz73_3x_09iR0mX0RIWvRG6OE_55gkJSekpTdJn9460-1T1A7ReRFfWEsYNHPHQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227297, - "updated": 1634227297, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key292313766?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:54 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "815", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "40dc69b2-27e3-4d22-a686-42fa9703ca54", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key292313766", - "deletedDate": 1634227312, - "scheduledPurgeDate": 1634832112, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "sHmE5JHAnfbtEgc3riheOT9Z-UCyrRt4mExtJnslIsgA2qFiLaXchbrEV826GB0BdsDjN9iiaVmrI-WTfXugjtODPhRiAhQpcbh08gLUwqsfxIvtatE-8BkdoG4_C0ONy9QmnvjJy4kpEX0if6T8mI86Z1mtup-hmXNjYAhc5PHFPbd_uQHHGFsYPWsTsJcQ7zqC0ng2BY3TdljKsrw1k31XHyrhAKz_Y2Zwr8JpsJhon1Fwuwn1S6EAXhLsLvTnVfeiOLRBMqSMyjFZ26-bwtNlz73_3x_09iR0mX0RIWvRG6OE_55gkJSekpTdJn9460-1T1A7ReRFfWEsYNHPHQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227297, - "updated": 1634227297, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:54 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0a6f1138-806d-49c9-ae9b-9171bd91ad3c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:54 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "29e174ad-1ab3-4338-aaf3-2e4bd2adcb14", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:54 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ed7336dc-1663-49fc-81ed-7ec750f9dae4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:55 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2952bec3-6486-432e-a892-f82f9297accd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:55 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "dd8f7d3a-60e0-40c6-aa04-5d29dc1c12f0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:55 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0e66cbe0-4b43-4bd2-beb2-5674a4111f58", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:56 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6a3781dc-ec93-4434-87f1-2c39ed57f1eb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:56 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "173877eb-077c-41c6-bace-a5bcfe00b0ee", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:56 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "38687b0d-48ac-4084-ab1f-a1b4cc9f0799", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:57 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9eb72487-727c-4545-be2b-370da3bf6612", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:57 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b907c4b1-db3b-4d66-9904-ce182c991d91", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:58 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5c002f9d-7cfe-4f4d-9b90-0eaecaa0f85d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:58 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1c4d2e57-90bd-41a3-bb03-8969a7bdf2a4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:58 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3644144b-b63b-4e21-b137-05fe97e3ea59", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:59 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "875c4700-8a93-4c12-bc4a-621a9a3d20c3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:59 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "dca004c7-4ec3-4a68-989e-5637bbf26d59", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:59 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "58fc1327-e2a6-42aa-af27-248451af4d1b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:00 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "03e6b68f-1465-4053-b575-f5981e91a885", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:00 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "477f592e-a44c-44a0-8078-d334a47fd657", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:00 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:58 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "51057990-7b0e-4ebd-ade0-8046b9586707", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:01 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:58 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f72be031-1216-461a-b3d5-132c4c2d0997", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:01 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:58 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c2f0d043-5e19-43f9-b917-8678a6982238", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:02 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:59 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "788656a3-61b4-4b81-b216-da614d9f087f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:02 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:59 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ccb44544-d227-4272-bfe4-3bfcf7600722", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:02 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2653b3eb-88e2-4991-96fb-be1a7e9375f2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:03 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "de46119f-c051-4159-b745-735d4e7d8c2a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:03 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "29039c2d-0597-4849-9071-24577a1c7a3c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:03 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5e05522b-e674-437d-ba54-05f0ca01dd9e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:04 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e88ccfd5-ba77-433f-b532-03335c401681", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:04 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b19b4e81-e752-4cea-aed1-b4b712812fa8", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:04 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "66f5aa5b-6dd8-4aae-b205-e2524b166723", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:05 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "73412cf2-76ea-4618-a108-f33b88f61a1b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:05 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "85bdab27-0ec7-4f40-9c13-a55cc910e6f2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:06 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "aaaea5a9-7dab-41ee-a527-3f873f01128c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key292313766" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:06 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "815", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4cec2699-5589-4cf2-9d37-1c36b19f4d77", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key292313766", - "deletedDate": 1634227312, - "scheduledPurgeDate": 1634832112, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key292313766/8e5ee12b46004fc7a48278603e2b4269", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "sHmE5JHAnfbtEgc3riheOT9Z-UCyrRt4mExtJnslIsgA2qFiLaXchbrEV826GB0BdsDjN9iiaVmrI-WTfXugjtODPhRiAhQpcbh08gLUwqsfxIvtatE-8BkdoG4_C0ONy9QmnvjJy4kpEX0if6T8mI86Z1mtup-hmXNjYAhc5PHFPbd_uQHHGFsYPWsTsJcQ7zqC0ng2BY3TdljKsrw1k31XHyrhAKz_Y2Zwr8JpsJhon1Fwuwn1S6EAXhLsLvTnVfeiOLRBMqSMyjFZ26-bwtNlz73_3x_09iR0mX0RIWvRG6OE_55gkJSekpTdJn9460-1T1A7ReRFfWEsYNHPHQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227297, - "updated": 1634227297, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key292313766?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedkeys/key292313766?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:06 GMT" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:02:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5d230b22-69ef-4aaf-a8bc-e63f779e07b9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azkeys/recordings/TestCreateOCTKey.json b/sdk/keyvault/azkeys/recordings/TestCreateOCTKey.json deleted file mode 100644 index ffe2af64147b..000000000000 --- a/sdk/keyvault/azkeys/recordings/TestCreateOCTKey.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2572725512/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key2572725512/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "32", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 14:30:48 GMT" - }, - "RequestBody": { - "key_size": 256, - "kty": "oct-HSM" - }, - "StatusCode": 400, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "77", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 14:30:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "06bf280c-ca06-41b4-b257-bcda615bdb0b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "BadParameter", - "message": "Property has invalid value\r\n" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azkeys/recordings/TestDeleteKey.json b/sdk/keyvault/azkeys/recordings/TestDeleteKey.json deleted file mode 100644 index 59e5904b2771..000000000000 --- a/sdk/keyvault/azkeys/recordings/TestDeleteKey.json +++ /dev/null @@ -1,1010 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key223495041/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key223495041/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "26", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:19 GMT" - }, - "RequestBody": { - "key_ops": [], - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "685", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9aef0633-dbc7-48ac-bc69-c86a7074715f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key223495041/26580e08b3244cc49186f264fc84ae44", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "wPUoFbW5A6SSMqik_A0uwQnvcO7cY_xtWv6ZT47vr_Jj-ketHk7UsgA6x3Xpphqg0gEXGC7MVPWFqz5rmaAb0YS2e9aT0r-8wJHxpBqLXFCyyY4xbvC6Hv83vCYbghXznnECcmRUPdAwQu0uOxosvFEHpBF7p2gJfzC83QzPFJrm5-1mfQNAwttLhlXZWdi3Trbp7wseLYZiXKWRORbjGiwrQubEnpTtZ_xshQ67GXIexnFaicroAkCeAK3xUvPTzUzv7Ak12_p4mjbfJPWBXA9ikics6S8sSCcW6RKpfFW5NPQJbi7_l8DiYyFBxp-sio7rP3rAbpA_kLilp5o6rQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227277, - "updated": 1634227277, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key223495041?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:20 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "815", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "04c40e2d-6b7a-44d1-9144-729a8a1f4574", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key223495041", - "deletedDate": 1634227278, - "scheduledPurgeDate": 1634832078, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key223495041/26580e08b3244cc49186f264fc84ae44", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "wPUoFbW5A6SSMqik_A0uwQnvcO7cY_xtWv6ZT47vr_Jj-ketHk7UsgA6x3Xpphqg0gEXGC7MVPWFqz5rmaAb0YS2e9aT0r-8wJHxpBqLXFCyyY4xbvC6Hv83vCYbghXznnECcmRUPdAwQu0uOxosvFEHpBF7p2gJfzC83QzPFJrm5-1mfQNAwttLhlXZWdi3Trbp7wseLYZiXKWRORbjGiwrQubEnpTtZ_xshQ67GXIexnFaicroAkCeAK3xUvPTzUzv7Ak12_p4mjbfJPWBXA9ikics6S8sSCcW6RKpfFW5NPQJbi7_l8DiYyFBxp-sio7rP3rAbpA_kLilp5o6rQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227277, - "updated": 1634227277, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:20 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "fb1dad4b-868d-4fcc-ba9b-4bc44c5114bd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:20 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "15d1ae6a-fe6b-4073-bf2e-c617bb638c07", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:21 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "95fb68e9-99cc-42d2-8558-526b54e0e79f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:22 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "39a56c2c-f076-49a2-9562-acb3d58a3652", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:23 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:21 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "61087754-25ee-4362-b0fc-2a87aa96be95", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:24 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6cf1391a-f5d3-4253-9515-b4b87089781f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:25 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:23 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "84175e36-a2c9-4d26-a168-44e033f02943", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:27 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a0a9f891-d3ee-4004-9229-ca2330615132", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:28 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d66378d9-abb9-45a7-8e50-ab5f589b49a1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:29 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:27 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3545fbc5-484e-4c3c-b78c-9013d7f74e00", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:30 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "afe1f183-e545-4f70-a860-9b5d93719ec2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:31 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b628195f-2e4e-4621-b754-e443d4a9345c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:32 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7e9cc41d-3e5c-4464-9059-be428e43d699", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:33 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:31 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e35d13a5-7fb2-4723-9607-0a2a462967f7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:34 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:32 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "988389d4-4844-42e2-9cac-f4463c5fdc5a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:36 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "24934648-5bc7-4cee-835b-5d23af07d0e1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:37 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4bcdab36-a970-4281-ad02-4ece3126a755", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:38 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "815", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3657b2e2-e46c-4f97-8a70-62353b1ad50b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key223495041", - "deletedDate": 1634227278, - "scheduledPurgeDate": 1634832078, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key223495041/26580e08b3244cc49186f264fc84ae44", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "wPUoFbW5A6SSMqik_A0uwQnvcO7cY_xtWv6ZT47vr_Jj-ketHk7UsgA6x3Xpphqg0gEXGC7MVPWFqz5rmaAb0YS2e9aT0r-8wJHxpBqLXFCyyY4xbvC6Hv83vCYbghXznnECcmRUPdAwQu0uOxosvFEHpBF7p2gJfzC83QzPFJrm5-1mfQNAwttLhlXZWdi3Trbp7wseLYZiXKWRORbjGiwrQubEnpTtZ_xshQ67GXIexnFaicroAkCeAK3xUvPTzUzv7Ak12_p4mjbfJPWBXA9ikics6S8sSCcW6RKpfFW5NPQJbi7_l8DiYyFBxp-sio7rP3rAbpA_kLilp5o6rQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227277, - "updated": 1634227277, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key223495041/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key223495041/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:38 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "300", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "56107c38-ba89-430e-ae2a-fbfa5ae7e1b9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key223495041 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:38 GMT" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:01:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0ed1cecd-ade1-4c08-a370-146548b0cc9f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:38 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d9608505-c256-4c74-909b-6cb8bdb97197", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key223495041?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:38 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "80", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "cdedc375-90aa-40cf-a3d9-21339ed2839c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key223495041" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key223495041?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key223495041?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:38 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "300", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5eaf65f6-5c85-44e2-a8ba-be6db6523a98", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key223495041 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azkeys/recordings/TestListDeletedKeys.json b/sdk/keyvault/azkeys/recordings/TestListDeletedKeys.json deleted file mode 100644 index bdd2811a1348..000000000000 --- a/sdk/keyvault/azkeys/recordings/TestListDeletedKeys.json +++ /dev/null @@ -1,3280 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/0key2910003706/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/0key2910003706/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:34 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "687", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4a3e13c8-ec2e-4dcd-a70b-b83ddfd5d2d1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/0key2910003706/85c90a5093c74a05bc08d117b6a4e31b", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "riNZIFqoadPiT_qA6OnnVejydtWh3btiUWqXxoUCsMTwv7ApNWICCLiAX_IDB8Z3qKTQH6wVKPQvRnYagqkmUertUDByEYvDGWZHWX0VEwLgTC_ltlTWdgt-uoYW7HmJYPH4-xcER67ZCpoPUUY0U7Fby1MfBAZb7mmk935Cws9GX4GrnFeuJEpgi-UpSpKGX1YP9MrBFgjE4Mg8_vqdhB8FaQN14-4tuXHlKZeg2vQ3vKvvbNTZwDUyRxzLQ5R1c0EFzHPUj-nSA_wVVOveS_xTQ67n2Xn6v3zpPPdyAgz-GyBLMDuQ1CM23k26HAR7LVb-4QYzPVg4YVe8DFi-VQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227532, - "updated": 1634227532, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/0key2910003706?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:34 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "20f8d56a-c038-44f6-b39b-f19aadb0aa30", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/0key2910003706", - "deletedDate": 1634227533, - "scheduledPurgeDate": 1634832333, - "key": { - "kid": "https://seankane.vault.azure.net/keys/0key2910003706/85c90a5093c74a05bc08d117b6a4e31b", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "riNZIFqoadPiT_qA6OnnVejydtWh3btiUWqXxoUCsMTwv7ApNWICCLiAX_IDB8Z3qKTQH6wVKPQvRnYagqkmUertUDByEYvDGWZHWX0VEwLgTC_ltlTWdgt-uoYW7HmJYPH4-xcER67ZCpoPUUY0U7Fby1MfBAZb7mmk935Cws9GX4GrnFeuJEpgi-UpSpKGX1YP9MrBFgjE4Mg8_vqdhB8FaQN14-4tuXHlKZeg2vQ3vKvvbNTZwDUyRxzLQ5R1c0EFzHPUj-nSA_wVVOveS_xTQ67n2Xn6v3zpPPdyAgz-GyBLMDuQ1CM23k26HAR7LVb-4QYzPVg4YVe8DFi-VQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227532, - "updated": 1634227532, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:35 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "68dc106f-b0c1-497e-87fe-59563a8c2ce5", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:35 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "53c55d18-0fe1-4ebf-81ea-3b071e1be1cc", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:35 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e57de2a5-09a6-4f99-b3da-7fea640b66ba", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:36 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "053c9371-e460-4260-97ab-ff3ce3fa0e53", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:36 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a7b455ea-95f9-4291-9e1a-69103bbd95df", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:36 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3b473c4b-7885-46ff-822a-2cead225f0ca", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:37 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "291a1c03-0b87-4d0f-9354-dc5408fddf80", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:37 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c9e5e175-6341-4bf8-beae-51c12d684d7e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:37 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2734770b-5a34-44db-9a00-533746d73548", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:38 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e4996278-1d75-4edd-b891-1c9b107e7b7d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:38 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "57e3ee98-6244-4da5-97e6-231548c54023", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:38 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c89a4168-dec3-43d1-a8cd-23cbaca9a3fb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:39 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "bd6f265b-961c-4488-b689-611d05350fef", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:39 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "56683b68-5c2f-4196-aaa6-dcb15155fa05", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:40 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9a411ee3-ea5e-47b7-86bc-d8c0e84b69f3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:40 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2b9d52e5-a34b-4956-b212-3fe70ce1a17f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:40 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a8bbba40-c1bc-4c62-b2a3-586ff445a5c2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:41 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "51bc66d2-67f7-409d-953f-4522f04d9912", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:41 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a1c98d6d-5c3e-407d-a21a-223f4c9164dd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:41 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "87a07f0a-7bfb-4d81-ac6e-fc21c5c0cc3e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:42 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "804beefe-e9cd-45b2-8242-9279eeb977e4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:42 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2d482dfa-2bc0-4cea-913d-a684a36c3d93", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:42 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "170d0bac-4e78-47b9-a729-55f260a455cf", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:43 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c0921557-5324-40dd-85e4-0c5836ed90f6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:43 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "91dc129a-e1ae-44d2-a024-21445f4b3586", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:44 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "37e219ee-3b82-4017-bc1f-87dbdc116e67", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:44 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "407f3d39-2904-4ab0-9e66-d91eb314f0e5", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:44 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "93f4aaed-3979-43be-afc9-7d42e6efc6ac", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:45 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "09a9e094-7f1e-42b9-9234-beff78c5b372", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:45 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "829728d1-7824-47e1-a10e-16e6e41792c0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:45 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5f22d226-0d0b-4b15-801a-0995eab15cfa", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:46 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2bec2587-f1fd-49f0-9cf4-1dadf2ff37d5", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:46 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b5e6a551-290b-48a5-b4dc-0677ddd66a02", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:47 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ab4302c5-26c6-47dd-bd0e-8f034f3f715f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: 0key2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/0key2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:47 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "bc89653c-07cc-42d1-a71e-160886916a00", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/0key2910003706", - "deletedDate": 1634227533, - "scheduledPurgeDate": 1634832333, - "key": { - "kid": "https://seankane.vault.azure.net/keys/0key2910003706/85c90a5093c74a05bc08d117b6a4e31b", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "riNZIFqoadPiT_qA6OnnVejydtWh3btiUWqXxoUCsMTwv7ApNWICCLiAX_IDB8Z3qKTQH6wVKPQvRnYagqkmUertUDByEYvDGWZHWX0VEwLgTC_ltlTWdgt-uoYW7HmJYPH4-xcER67ZCpoPUUY0U7Fby1MfBAZb7mmk935Cws9GX4GrnFeuJEpgi-UpSpKGX1YP9MrBFgjE4Mg8_vqdhB8FaQN14-4tuXHlKZeg2vQ3vKvvbNTZwDUyRxzLQ5R1c0EFzHPUj-nSA_wVVOveS_xTQ67n2Xn6v3zpPPdyAgz-GyBLMDuQ1CM23k26HAR7LVb-4QYzPVg4YVe8DFi-VQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227532, - "updated": 1634227532, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/keyy2910003706/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/keyy2910003706/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:47 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "687", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c1d16606-50c3-4e38-b2ad-61d9e273b6f2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/keyy2910003706/b07d14200ef3443ba9d2c1f1a796a905", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "wc8McB7dTREplY7IdeOa3hbbVOK-Au8x4hfsgMpjwJgwz94lPxuJVMs9wZipOZV_4CI3jiywQ6jbJ1oFtPbfpVmZl8Xs8ALjwt6gwIkY8ULisr8lS1P2g7R9Jtj7y0ma-wW_xkoF3oErF0XxFxo4bJo6S_BLUcP4lDcQeulnOAHwd9DFBOCZpxKZyu_0PJBfYXRBI-yJvTGUcXveB36P6S2yuHfpBJFy6QJvbIYQ0yDdgUL9UqDI8F3cjJfIhYOfMUkQIxwZuNBNIYriIpnwRkxEkbjSsIEOPzXao_Sofd8aptgaAoPKQFRsF7q7Gm6GCpjgkSV2Y3751jGfibyrZQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227545, - "updated": 1634227545, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/keyy2910003706?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:47 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4521d54a-a493-4674-96b8-312d2dac5c07", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/keyy2910003706", - "deletedDate": 1634227545, - "scheduledPurgeDate": 1634832345, - "key": { - "kid": "https://seankane.vault.azure.net/keys/keyy2910003706/b07d14200ef3443ba9d2c1f1a796a905", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "wc8McB7dTREplY7IdeOa3hbbVOK-Au8x4hfsgMpjwJgwz94lPxuJVMs9wZipOZV_4CI3jiywQ6jbJ1oFtPbfpVmZl8Xs8ALjwt6gwIkY8ULisr8lS1P2g7R9Jtj7y0ma-wW_xkoF3oErF0XxFxo4bJo6S_BLUcP4lDcQeulnOAHwd9DFBOCZpxKZyu_0PJBfYXRBI-yJvTGUcXveB36P6S2yuHfpBJFy6QJvbIYQ0yDdgUL9UqDI8F3cjJfIhYOfMUkQIxwZuNBNIYriIpnwRkxEkbjSsIEOPzXao_Sofd8aptgaAoPKQFRsF7q7Gm6GCpjgkSV2Y3751jGfibyrZQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227545, - "updated": 1634227545, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:47 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f8cbfd0c-a34b-4fd0-b160-a9ead63ec1af", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:48 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a3f56538-0d54-4798-9f84-0f4cddf13947", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:48 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7cf4f7d1-7995-47da-88b7-76eb75a2cbdc", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:48 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7d2c6963-653d-4ac9-a5b5-3ef4c5ffedcd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:49 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8f4c5397-f466-4b3d-8174-91160ec71e6a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:49 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2f78b7f2-ea3b-47b2-86ae-02cae168fee8", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:49 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6695e4ad-f65b-4f26-a499-0523c460d4f4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:50 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "cc9f003d-4513-489f-a5b7-3cf79f7a5357", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:50 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9b37ca1e-b50d-4947-a85a-773bc41a3562", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:51 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "39445457-6311-40a3-8433-8f40f88c6d8d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:51 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "628a7812-e257-4bf5-9f40-5a406bf3b2e6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:51 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b8b481f9-5054-4dc5-a129-d26518be8fc3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:52 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "406da503-fe0b-4a89-9b9a-7359fdfbf2bb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:52 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3e87398f-9d10-49c6-8b96-02529b898ed3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:52 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "61b3eb96-a4f5-4294-9945-1971acc94459", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:53 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7bd2038b-c2ef-465e-98b7-bc20e4d84b2b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:53 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "bb7c5234-cdbc-42a7-9a88-dd64e72a7be3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:53 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4414a5a9-fed2-40fc-bbb9-904cd8af367d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:54 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "24b8048f-a44c-4c92-a906-16657f346d9e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:54 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c731f958-ccd4-4097-b25e-615bf2901baa", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/keyy2910003706", - "deletedDate": 1634227545, - "scheduledPurgeDate": 1634832345, - "key": { - "kid": "https://seankane.vault.azure.net/keys/keyy2910003706/b07d14200ef3443ba9d2c1f1a796a905", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "wc8McB7dTREplY7IdeOa3hbbVOK-Au8x4hfsgMpjwJgwz94lPxuJVMs9wZipOZV_4CI3jiywQ6jbJ1oFtPbfpVmZl8Xs8ALjwt6gwIkY8ULisr8lS1P2g7R9Jtj7y0ma-wW_xkoF3oErF0XxFxo4bJo6S_BLUcP4lDcQeulnOAHwd9DFBOCZpxKZyu_0PJBfYXRBI-yJvTGUcXveB36P6S2yuHfpBJFy6QJvbIYQ0yDdgUL9UqDI8F3cjJfIhYOfMUkQIxwZuNBNIYriIpnwRkxEkbjSsIEOPzXao_Sofd8aptgaAoPKQFRsF7q7Gm6GCpjgkSV2Y3751jGfibyrZQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227545, - "updated": 1634227545, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/keyyy2910003706/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/keyyy2910003706/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:54 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "688", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9ad770fb-0b8c-4ff5-b1c1-2fe06564a463", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/keyyy2910003706/1f1465e79b4946019fcf834b1a9c2208", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "5nFOa3wS8BLU3hzRos3155RszwPYY71tHf0AyA6QmRDQbrdsN_tooye7Vbnv_YweWHwFJYDWMKV65xflqf9A4d44YbnlkVUHEZPJviaiPYDBU6HNmTDMT921NChPi8y8Q_obPVrS0dBHXXHhHBrmV8fipO-3FCYD10_xP0IYVKfxqkaKA1qHajgblVscQP4BQPmygQxx0dROOyK5p7YziEjmkTwH4KWFroZVKj0a77lq-4pokxfgUQ_wvhjtn7MFbnM9sL_p2IeB7bXClH44OIkZntZXgBsqxSTVIY5nKoszqT1PMot38R92OFkD7RmPtFzsxmNDyMph5OLCS8fIsQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227552, - "updated": 1634227552, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/keyyy2910003706?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:55 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "821", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d27a624e-6f03-473c-b9c1-af3e90f27549", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/keyyy2910003706", - "deletedDate": 1634227553, - "scheduledPurgeDate": 1634832353, - "key": { - "kid": "https://seankane.vault.azure.net/keys/keyyy2910003706/1f1465e79b4946019fcf834b1a9c2208", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "5nFOa3wS8BLU3hzRos3155RszwPYY71tHf0AyA6QmRDQbrdsN_tooye7Vbnv_YweWHwFJYDWMKV65xflqf9A4d44YbnlkVUHEZPJviaiPYDBU6HNmTDMT921NChPi8y8Q_obPVrS0dBHXXHhHBrmV8fipO-3FCYD10_xP0IYVKfxqkaKA1qHajgblVscQP4BQPmygQxx0dROOyK5p7YziEjmkTwH4KWFroZVKj0a77lq-4pokxfgUQ_wvhjtn7MFbnM9sL_p2IeB7bXClH44OIkZntZXgBsqxSTVIY5nKoszqT1PMot38R92OFkD7RmPtFzsxmNDyMph5OLCS8fIsQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227552, - "updated": 1634227552, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:55 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "68907522-fc34-4c87-a8be-6bbe4fa44a47", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:55 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4ceb3665-c2ff-45a9-ab3d-bf142e660013", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:55 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "19292ed7-5224-483f-bdcd-0c486bf4c2be", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:56 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f7fa0dfb-28e1-4718-a762-17d4efa4237c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:56 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "698e0ba6-4a4d-42f3-b71d-530f057add7f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:56 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "817e6a62-ebf3-47b7-80eb-17fca57fb0bc", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:57 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f1027098-4706-482e-b0a1-d63042374bb7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:57 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2802128b-f891-4097-bd31-b450d6c7dd36", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:58 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a5fec998-60f2-423a-b90c-eaad38d98376", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:58 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ddb4057a-3787-43f1-8327-fa8ce2c75c96", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:58 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c503ffe3-cba9-4acb-8e0e-ab590f2fd68a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:59 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d3b0f97c-ee48-4fda-af50-8dca03b1af54", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:59 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f0f9cc86-1e6d-466b-810d-5bf33ecc6633", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: keyyy2910003706" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/keyyy2910003706?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:59 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "821", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2c9f7c7f-f79b-42fb-b47d-e5d703ae9fe8", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/keyyy2910003706", - "deletedDate": 1634227553, - "scheduledPurgeDate": 1634832353, - "key": { - "kid": "https://seankane.vault.azure.net/keys/keyyy2910003706/1f1465e79b4946019fcf834b1a9c2208", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "5nFOa3wS8BLU3hzRos3155RszwPYY71tHf0AyA6QmRDQbrdsN_tooye7Vbnv_YweWHwFJYDWMKV65xflqf9A4d44YbnlkVUHEZPJviaiPYDBU6HNmTDMT921NChPi8y8Q_obPVrS0dBHXXHhHBrmV8fipO-3FCYD10_xP0IYVKfxqkaKA1qHajgblVscQP4BQPmygQxx0dROOyK5p7YziEjmkTwH4KWFroZVKj0a77lq-4pokxfgUQ_wvhjtn7MFbnM9sL_p2IeB7bXClH44OIkZntZXgBsqxSTVIY5nKoszqT1PMot38R92OFkD7RmPtFzsxmNDyMph5OLCS8fIsQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227552, - "updated": 1634227552, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:05:59 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2390", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d6dd3e98-4f8b-4936-8222-34b3e226aa7a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "value": [ - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/0key2910003706", - "deletedDate": 1634227533, - "scheduledPurgeDate": 1634832333, - "kid": "https://seankane.vault.azure.net/keys/0key2910003706", - "attributes": { - "enabled": true, - "created": 1634227532, - "updated": 1634227532, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key12910003706", - "deletedDate": 1634224737, - "scheduledPurgeDate": 1634829537, - "kid": "https://seankane.vault.azure.net/keys/key12910003706", - "attributes": { - "enabled": true, - "created": 1634224737, - "updated": 1634224737, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key212910003706", - "deletedDate": 1634224740, - "scheduledPurgeDate": 1634829540, - "kid": "https://seankane.vault.azure.net/keys/key212910003706", - "attributes": { - "enabled": true, - "created": 1634224740, - "updated": 1634224740, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key2910003706", - "deletedDate": 1634227490, - "scheduledPurgeDate": 1634832290, - "kid": "https://seankane.vault.azure.net/keys/key2910003706", - "attributes": { - "enabled": true, - "created": 1634227490, - "updated": 1634227490, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key312910003706", - "deletedDate": 1634224746, - "scheduledPurgeDate": 1634829546, - "kid": "https://seankane.vault.azure.net/keys/key312910003706", - "attributes": { - "enabled": true, - "created": 1634224746, - "updated": 1634224746, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/keyy2910003706", - "deletedDate": 1634227545, - "scheduledPurgeDate": 1634832345, - "kid": "https://seankane.vault.azure.net/keys/keyy2910003706", - "attributes": { - "enabled": true, - "created": 1634227545, - "updated": 1634227545, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/keyyy2910003706", - "deletedDate": 1634227553, - "scheduledPurgeDate": 1634832353, - "kid": "https://seankane.vault.azure.net/keys/keyyy2910003706", - "attributes": { - "enabled": true, - "created": 1634227552, - "updated": 1634227552, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/keyyy2910003706?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/keyyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:06:00 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "303", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "38afdac0-1684-4fd9-96e9-5967a7c107b0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) keyyy2910003706 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/keyy2910003706?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/keyy2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:06:00 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "302", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7b6ae0bd-f744-4d8f-9522-d4f10478e9f9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) keyy2910003706 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/0key2910003706?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/0key2910003706?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:06:00 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "302", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:05:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "227a14f2-2c01-4d6c-8238-14e805c54da7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) 0key2910003706 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azkeys/recordings/TestListDeletedSecrets.json b/sdk/keyvault/azkeys/recordings/TestListDeletedSecrets.json deleted file mode 100644 index b73a9389b371..000000000000 --- a/sdk/keyvault/azkeys/recordings/TestListDeletedSecrets.json +++ /dev/null @@ -1,3345 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key13245351623/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key13245351623/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:00 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "687", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f0f2b487-d5b1-4490-9253-74e8a9241998", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key13245351623/1f81df962944472da4525d98a342aaa3", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "q41qSTLqj0I_Krr8F8wHo4mPQrq1VwtmXusjs3VfCN3tBIaoyDh-UyGdW5iEtrqHLrTM24V_zMvrz1lVuS1K3v3eI2jnyrY8WGjpAqvdSjDoZwLKQbnhX_7BunHXjPzN80cPpHr0MoBlYHbBKWYDpAJEgIBBU8FeABzjrUG6N2rxNlgEeSI0Y8SGkeSMm4Rq6hNXqO_bRUxpU924kKt0NBQIVfimER95LGPDWXtG4GmrC9OAd355SeCEg58nPmDu4EBlMBKkUslGlI7CZQ08IWeoLUgdcrRVqS1LOETM5kxu2qmqisTX8TxOg6_T0Qb7Y_GxoVJXetUL8jqtNAul5Q", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061841, - "updated": 1634061841, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key13245351623?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:01 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d9b17494-6202-4101-929f-2daea91c6c25", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key13245351623", - "deletedDate": 1634061842, - "scheduledPurgeDate": 1634666642, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key13245351623/1f81df962944472da4525d98a342aaa3", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "q41qSTLqj0I_Krr8F8wHo4mPQrq1VwtmXusjs3VfCN3tBIaoyDh-UyGdW5iEtrqHLrTM24V_zMvrz1lVuS1K3v3eI2jnyrY8WGjpAqvdSjDoZwLKQbnhX_7BunHXjPzN80cPpHr0MoBlYHbBKWYDpAJEgIBBU8FeABzjrUG6N2rxNlgEeSI0Y8SGkeSMm4Rq6hNXqO_bRUxpU924kKt0NBQIVfimER95LGPDWXtG4GmrC9OAd355SeCEg58nPmDu4EBlMBKkUslGlI7CZQ08IWeoLUgdcrRVqS1LOETM5kxu2qmqisTX8TxOg6_T0Qb7Y_GxoVJXetUL8jqtNAul5Q", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061841, - "updated": 1634061841, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:01 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "84871945-756f-4658-ad36-deedf7948603", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:01 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "59df8db3-caa5-473d-a326-ce0ad57788bb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:01 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4b1855a1-6560-42bc-aed3-2071dece9352", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:02 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6d18cd8e-889c-4c24-b847-61731584ccc1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:02 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "df3bdb90-868f-4e48-bf6d-a96ac809005e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:02 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d15b85d7-abdf-445a-b5eb-6b2e3adb280c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:03 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "808c5f26-1ebb-4f9b-8f43-b1e1b0d206ec", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:03 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "05153ef8-ec8f-4be6-9c41-ea70e9e08b9f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:04 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "336afcfc-b59a-43dc-993e-134d0ffe6d71", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:04 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4c575a52-0b57-4f39-8015-580f9d10f6d6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:04 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e9fa4265-ec1a-4401-8022-8f510198445a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:05 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a921a541-a687-4f82-894f-b1e1ba85a3ce", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:05 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "01b04900-4a7b-42b0-8f66-1e9bccecf8bb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:05 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c335d893-6c39-4b0e-b53c-2cc84fe25e4b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:06 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1b536f66-a645-46fd-9b03-e526464906c0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:06 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "562dda49-b4b9-4c7d-b1c8-3671d96b60f7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c734a1b0-5f20-4cd4-a3e0-e4c679153585", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "354d4bc1-58a9-4cfc-aeb2-40b692b4bcf1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c9ae5f06-392b-4765-bf78-d4cf19cc1fdd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "83c29a16-bd1f-4b82-9ab9-ca7062772810", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "04508526-7788-4bdf-9126-557bfadaafb0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ed29bc81-5b47-4803-a20b-db79e6eebc3c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "979a18f9-a86a-487e-b678-aeb98d0bdccd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0b320688-bb37-4d48-87db-f9f4c8209e94", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f87f3080-dae9-460f-ba38-fe1e2e7f9236", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:10 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1af529e8-63cf-465b-b982-f227668279fa", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:10 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c995abe6-bd8d-4e45-8892-b6a03136be86", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:10 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6f47eea7-737c-48b0-bbdb-12214e6e7bfe", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:11 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "099374d2-a58c-4028-b2ef-8258d6bdd09b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:11 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9f01c421-4a7e-4a02-a744-7e5107042e29", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6225cd17-2980-4bc2-b491-c98313b04c64", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "69a34bf0-b191-44d6-bdc2-ecdbd1d11cd6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key13245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key13245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:12 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "38f0af19-22c6-44dc-8142-5c6edd4e3479", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key13245351623", - "deletedDate": 1634061842, - "scheduledPurgeDate": 1634666642, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key13245351623/1f81df962944472da4525d98a342aaa3", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "q41qSTLqj0I_Krr8F8wHo4mPQrq1VwtmXusjs3VfCN3tBIaoyDh-UyGdW5iEtrqHLrTM24V_zMvrz1lVuS1K3v3eI2jnyrY8WGjpAqvdSjDoZwLKQbnhX_7BunHXjPzN80cPpHr0MoBlYHbBKWYDpAJEgIBBU8FeABzjrUG6N2rxNlgEeSI0Y8SGkeSMm4Rq6hNXqO_bRUxpU924kKt0NBQIVfimER95LGPDWXtG4GmrC9OAd355SeCEg58nPmDu4EBlMBKkUslGlI7CZQ08IWeoLUgdcrRVqS1LOETM5kxu2qmqisTX8TxOg6_T0Qb7Y_GxoVJXetUL8jqtNAul5Q", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061841, - "updated": 1634061841, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key213245351623/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key213245351623/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:12 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "688", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "55bfe0ce-0826-4974-abf7-36713beed0f1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key213245351623/a7839271faa04e8f8a9afe70da86ed76", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "2-KzsZt_EMAvbEfeFmzIflwZsWQEeN64i34nWoUF0Hnijj4x78FgensetcXOeVDEPSiRT8BCyC6V1nu1PtIwe9S4o_wmKrU2TDOzAcGXAoU1SXBheEo7XUzIUUpRvKAtuMGSNjaV_FFnn3RvhxJioLHXKC8gvvJ0LzkYrxE2ebzlzRiqPVDBtKKL8KLehzYxSdOSo79ZEufWA8R3UcEjbF02OVZ7-1rOpsFTjV7rVrUuFZoGKcPsDmL-ch2h4Jltdlk8MRez2dauF__np-Zjyg8Z8hZ3xH9tLKFObpVHDxsf_HS_3f7SyeYKHSfNL-0DEHj6FfDZV80AjK03W9cVxQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061854, - "updated": 1634061854, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key213245351623?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:13 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "821", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "28bcae59-9996-409b-bfb0-e0cf872ca75a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key213245351623", - "deletedDate": 1634061854, - "scheduledPurgeDate": 1634666654, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key213245351623/a7839271faa04e8f8a9afe70da86ed76", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "2-KzsZt_EMAvbEfeFmzIflwZsWQEeN64i34nWoUF0Hnijj4x78FgensetcXOeVDEPSiRT8BCyC6V1nu1PtIwe9S4o_wmKrU2TDOzAcGXAoU1SXBheEo7XUzIUUpRvKAtuMGSNjaV_FFnn3RvhxJioLHXKC8gvvJ0LzkYrxE2ebzlzRiqPVDBtKKL8KLehzYxSdOSo79ZEufWA8R3UcEjbF02OVZ7-1rOpsFTjV7rVrUuFZoGKcPsDmL-ch2h4Jltdlk8MRez2dauF__np-Zjyg8Z8hZ3xH9tLKFObpVHDxsf_HS_3f7SyeYKHSfNL-0DEHj6FfDZV80AjK03W9cVxQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061854, - "updated": 1634061854, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:13 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "de937f78-83c9-4802-83c6-d9876256edbc", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:13 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "91f74204-e23d-4107-9d00-9d58914a61cc", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:13 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "38f18675-5815-41ee-a107-7ae6f7153fb8", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "dce08e3f-ccd7-4ba6-99fe-259f8eadc2a2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3c8110a0-9bcc-4c79-9471-b7e48a6573e7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "006861ce-fffc-403b-a921-7031d4123845", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:15 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2d8a83c5-9172-4400-b670-86c8df5b04d9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:15 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "23b99b6b-265a-4de1-8c84-68a771a12e4d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:16 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e1dbaa43-6f05-457c-bacc-9c295df344c4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:16 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "bc289655-2dac-4fce-993f-2827fa9a9189", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:16 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5314a93a-4fa9-46ed-a9aa-ae65442ecb6e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d269c12c-2df2-42d7-9d72-39ed0b6f0123", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0c96c1e5-7ba5-44ad-8490-b24b56814053", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "48cc5a64-5771-4441-b01c-0095c5ae5b9d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:18 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "82ca3932-382e-4ebc-9c07-b50d28a1443f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key213245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key213245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:18 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "821", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "491a9f0b-e6c6-4ecc-8df2-6a979c4a4904", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key213245351623", - "deletedDate": 1634061854, - "scheduledPurgeDate": 1634666654, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key213245351623/a7839271faa04e8f8a9afe70da86ed76", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "2-KzsZt_EMAvbEfeFmzIflwZsWQEeN64i34nWoUF0Hnijj4x78FgensetcXOeVDEPSiRT8BCyC6V1nu1PtIwe9S4o_wmKrU2TDOzAcGXAoU1SXBheEo7XUzIUUpRvKAtuMGSNjaV_FFnn3RvhxJioLHXKC8gvvJ0LzkYrxE2ebzlzRiqPVDBtKKL8KLehzYxSdOSo79ZEufWA8R3UcEjbF02OVZ7-1rOpsFTjV7rVrUuFZoGKcPsDmL-ch2h4Jltdlk8MRez2dauF__np-Zjyg8Z8hZ3xH9tLKFObpVHDxsf_HS_3f7SyeYKHSfNL-0DEHj6FfDZV80AjK03W9cVxQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061854, - "updated": 1634061854, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key313245351623/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key313245351623/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:18 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "688", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f34ab75e-f5db-4059-85d2-490a825e08e0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key313245351623/0f2fe9e5e3c84600b6e48a524d58c11a", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "4EgqW3aejBnxeef6Wy2dRW0zhI3t2hX9hs7-m5fcMeR_IQDS8nAGpnt251hHVguSCvardY206C4OIxFQwXXVKaziC3eER-Kk2rkvGt6o4erk1BD9wcady45IM44Mg4uJuV5S4NQ69FsKbvZprBDj08Irx5XkGsyYjLQcS4GUp_cl7rU9nZi4hNaZtVQF5gTKTpP40fDwD3tcoHSO8gVi85cAt97_5BZxZa6cX2sz3YbDb38v-fMhoLRQs_3GLRY1OaMyTvuWuJVUQZXxzBWzkO2NUiJTCCeOeIvre6QLhwce3MPI91Zm4K3190Oo5X2uNhL8LJt78UaKpCAHMEt0CQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061859, - "updated": 1634061859, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key313245351623?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:19 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "821", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0f3f7efe-db19-41db-ac5a-9c4e5ae4df1a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key313245351623", - "deletedDate": 1634061860, - "scheduledPurgeDate": 1634666660, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key313245351623/0f2fe9e5e3c84600b6e48a524d58c11a", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "4EgqW3aejBnxeef6Wy2dRW0zhI3t2hX9hs7-m5fcMeR_IQDS8nAGpnt251hHVguSCvardY206C4OIxFQwXXVKaziC3eER-Kk2rkvGt6o4erk1BD9wcady45IM44Mg4uJuV5S4NQ69FsKbvZprBDj08Irx5XkGsyYjLQcS4GUp_cl7rU9nZi4hNaZtVQF5gTKTpP40fDwD3tcoHSO8gVi85cAt97_5BZxZa6cX2sz3YbDb38v-fMhoLRQs_3GLRY1OaMyTvuWuJVUQZXxzBWzkO2NUiJTCCeOeIvre6QLhwce3MPI91Zm4K3190Oo5X2uNhL8LJt78UaKpCAHMEt0CQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061859, - "updated": 1634061859, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:19 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "adc3d663-5b02-46d9-b658-76c7837ee876", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:19 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5eeb13f8-b7c3-4b92-804c-de142e7e2c19", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:19 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8335db65-d685-48b9-9eb9-8ae8619e13a9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:19 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5efa2197-c254-4ab6-970b-fedb4623f50b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:20 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e439c8b7-d17b-4b24-8389-32b20aafc734", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:20 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:21 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "686b8921-36c7-4d82-ae47-3288c97fc219", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:21 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:21 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "865cea64-83b3-444b-9873-84dd7aaa87ee", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:21 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:21 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "863a2916-b27f-494d-af49-1f9521d0b9d6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:21 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c6227eb5-ff14-4ee1-89c4-44f740aa0c0b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:22 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d93a5b20-62cb-4763-8f8c-9f3e1412d67b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:22 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b642ab1e-e995-4868-868c-f83e717077f3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:22 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:23 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c3d6ca40-f465-4c8f-952f-98554d062318", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:23 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:23 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8f143a6e-55b6-470b-b718-f031a907d8af", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:23 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0fb42118-aaeb-4177-9097-43319f350d59", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:23 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "70b5c3d5-3c8d-4203-9d88-820995a150ca", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:24 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "83", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c4702e5f-0f61-4c26-ac08-aa7d176a3018", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key313245351623" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key313245351623?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:24 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "821", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "02aebf10-0302-46a7-a861-d56ee9e0c74d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key313245351623", - "deletedDate": 1634061860, - "scheduledPurgeDate": 1634666660, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key313245351623/0f2fe9e5e3c84600b6e48a524d58c11a", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "4EgqW3aejBnxeef6Wy2dRW0zhI3t2hX9hs7-m5fcMeR_IQDS8nAGpnt251hHVguSCvardY206C4OIxFQwXXVKaziC3eER-Kk2rkvGt6o4erk1BD9wcady45IM44Mg4uJuV5S4NQ69FsKbvZprBDj08Irx5XkGsyYjLQcS4GUp_cl7rU9nZi4hNaZtVQF5gTKTpP40fDwD3tcoHSO8gVi85cAt97_5BZxZa6cX2sz3YbDb38v-fMhoLRQs_3GLRY1OaMyTvuWuJVUQZXxzBWzkO2NUiJTCCeOeIvre6QLhwce3MPI91Zm4K3190Oo5X2uNhL8LJt78UaKpCAHMEt0CQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634061859, - "updated": 1634061859, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:24 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "3386", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "480f44e5-41f8-4ab5-8702-822ee92ccdc4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "value": [ - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key13245351623", - "deletedDate": 1634061842, - "scheduledPurgeDate": 1634666642, - "kid": "https://seankane.vault.azure.net/keys/key13245351623", - "attributes": { - "enabled": true, - "created": 1634061841, - "updated": 1634061841, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key213245351623", - "deletedDate": 1634061854, - "scheduledPurgeDate": 1634666654, - "kid": "https://seankane.vault.azure.net/keys/key213245351623", - "attributes": { - "enabled": true, - "created": 1634061854, - "updated": 1634061854, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key23245351623", - "deletedDate": 1634059396, - "scheduledPurgeDate": 1634664196, - "kid": "https://seankane.vault.azure.net/keys/key23245351623", - "attributes": { - "enabled": true, - "created": 1634059396, - "updated": 1634059396, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key313245351623", - "deletedDate": 1634061860, - "scheduledPurgeDate": 1634666660, - "kid": "https://seankane.vault.azure.net/keys/key313245351623", - "attributes": { - "enabled": true, - "created": 1634061859, - "updated": 1634061859, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key3245351623", - "deletedDate": 1634059394, - "scheduledPurgeDate": 1634664194, - "kid": "https://seankane.vault.azure.net/keys/key3245351623", - "attributes": { - "enabled": true, - "created": 1634059394, - "updated": 1634059394, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key33245351623", - "deletedDate": 1634059400, - "scheduledPurgeDate": 1634664200, - "kid": "https://seankane.vault.azure.net/keys/key33245351623", - "attributes": { - "enabled": true, - "created": 1634059400, - "updated": 1634059400, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret111223495041", - "deletedDate": 1633980349, - "scheduledPurgeDate": 1634585149, - "kid": "https://seankane.vault.azure.net/keys/secret111223495041", - "attributes": { - "enabled": true, - "created": 1633980349, - "updated": 1633980349, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret11223495041", - "deletedDate": 1633978946, - "scheduledPurgeDate": 1634583746, - "kid": "https://seankane.vault.azure.net/keys/secret11223495041", - "attributes": { - "enabled": true, - "created": 1633978945, - "updated": 1633978945, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret1223495041", - "deletedDate": 1633978870, - "scheduledPurgeDate": 1634583670, - "kid": "https://seankane.vault.azure.net/keys/secret1223495041", - "attributes": { - "enabled": true, - "created": 1633978870, - "updated": 1633978870, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - ], - "nextLink": "https://seankane.vault.azure.net:443/deletedkeys?api-version=7.2\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTFJV3RsZVM5VFJVTlNSVlF4T1RRM016RXhPRFl5UlVNdlJqWTVNRFl3UmtJME5USTFOREV4TVRnMlJrSTJOVFpFUmtKRk0wUTVOamNoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys?api-version=7.2\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTFJV3RsZVM5VFJVTlNSVlF4T1RRM016RXhPRFl5UlVNdlJqWTVNRFl3UmtJME5USTFOREV4TVRnMlJrSTJOVFpFUmtKRk0wUTVOamNoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys?api-version=7.2\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTFJV3RsZVM5VFJVTlNSVlF4T1RRM016RXhPRFl5UlVNdlJqWTVNRFl3UmtJME5USTFOREV4TVRnMlJrSTJOVFpFUmtKRk0wUTVOamNoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9", - ":scheme": "https", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:24 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "3094", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8923c8d7-ddcf-4af7-9bfa-a24c9a9b54d2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "value": [ - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret2223495041", - "deletedDate": 1633980610, - "scheduledPurgeDate": 1634585410, - "kid": "https://seankane.vault.azure.net/keys/secret2223495041", - "attributes": { - "enabled": true, - "created": 1633980610, - "updated": 1633980610, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret223495041", - "deletedDate": 1633978779, - "scheduledPurgeDate": 1634583579, - "kid": "https://seankane.vault.azure.net/keys/secret223495041", - "attributes": { - "enabled": true, - "created": 1633978779, - "updated": 1633978779, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret3223495041", - "deletedDate": 1633980689, - "scheduledPurgeDate": 1634585489, - "kid": "https://seankane.vault.azure.net/keys/secret3223495041", - "attributes": { - "enabled": true, - "created": 1633980688, - "updated": 1633980688, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret4223495041", - "deletedDate": 1633981480, - "scheduledPurgeDate": 1634586280, - "kid": "https://seankane.vault.azure.net/keys/secret4223495041", - "attributes": { - "enabled": true, - "created": 1633981480, - "updated": 1633981480, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret5223495041", - "deletedDate": 1633981533, - "scheduledPurgeDate": 1634586333, - "kid": "https://seankane.vault.azure.net/keys/secret5223495041", - "attributes": { - "enabled": true, - "created": 1633981532, - "updated": 1633981532, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret6223495041", - "deletedDate": 1633981664, - "scheduledPurgeDate": 1634586464, - "kid": "https://seankane.vault.azure.net/keys/secret6223495041", - "attributes": { - "enabled": true, - "created": 1633981664, - "updated": 1633981664, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret7223495041", - "deletedDate": 1633981952, - "scheduledPurgeDate": 1634586752, - "kid": "https://seankane.vault.azure.net/keys/secret7223495041", - "attributes": { - "enabled": true, - "created": 1633981952, - "updated": 1633981952, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret8223495041", - "deletedDate": 1633982323, - "scheduledPurgeDate": 1634587123, - "kid": "https://seankane.vault.azure.net/keys/secret8223495041", - "attributes": { - "enabled": true, - "created": 1633982323, - "updated": 1633982323, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/secret9223495041", - "deletedDate": 1633982922, - "scheduledPurgeDate": 1634587722, - "kid": "https://seankane.vault.azure.net/keys/secret9223495041", - "attributes": { - "enabled": true, - "created": 1633982922, - "updated": 1633982922, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key313245351623?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key313245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:25 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "303", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "58da0e2a-7992-40c0-960c-4021cf281107", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key313245351623 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key213245351623?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key213245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:25 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "303", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3a187438-04b4-4931-9e61-b426e3d7224e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key213245351623 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key13245351623?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key13245351623?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Tue, 12 Oct 2021 18:04:25 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "302", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 12 Oct 2021 18:04:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f93ca7af-d7fe-4c1c-b6d8-c2d1580fc742", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key13245351623 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azkeys/recordings/TestListKeys.json b/sdk/keyvault/azkeys/recordings/TestListKeys.json deleted file mode 100644 index 6e55f5487879..000000000000 --- a/sdk/keyvault/azkeys/recordings/TestListKeys.json +++ /dev/null @@ -1,2298 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-0778370593/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key-0778370593/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "26", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:03 GMT" - }, - "RequestBody": { - "key_ops": [], - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "687", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2160d26d-bcc8-4f7e-8bcd-2ba78ea95ec9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-0778370593/716cb303f5a640f49c6a510c0da3fda1", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "noIPVoZGgNfvj_DCYE8qAnpPUCxgzUs6UVo_bOc9O3Bh-PWUwjFUvOdR3TDh4mNQrOcheYBjaLw9YiGJfnTGJDifuJMtA3jVfshS1QESr5T7TlxQmz8Qlb0MeDZVFxQ0vFppD4gGBWLxl5wMbSjOgaxo9Xu7UHQMWEesw8FBRC5Y4WWb7NIGHf_Q7TBZ1UYrYq7ScrUFX9xGBvC1P51aHUxX3nhUgurfoZ9sCR3BPxBJTBRYo-txPjHBbrtqrcONAqA89bjTzX-I5kRPg2bGoAsaCIgcmTDT3tU1Oj8UFhAJzn7iugFblJN8050uRzM5HwGW-aTBPTu8GK8mi9LK9Q", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227261, - "updated": 1634227261, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-1778370593/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key-1778370593/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "26", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:03 GMT" - }, - "RequestBody": { - "key_ops": [], - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "687", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3755bcbe-eb9a-4275-8cb9-7042cb983de3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-1778370593/cbcce9acb2c64d92a1bc96488b7b15d1", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "qcxscnbmZofAwwgEjAB_HCd53IKQw8nwawkwKallBOGECc4-SO2B70LWVRYwSE26w-KvWPbjchQlpQs43IRpevDibJMGdbV43m-tEVSAcrlBBFTg7byVwbmHeEJju0AmNkh3-Gz-EhRL4ISYk2HxH6JMPdu2DD1Xubcmloc3pkGq7792MRFPaVCYdyz-dce6y0lFxqU-n72eHETLCZFtoZUC_e48LqAsO4nnKOratPK2RU10q8cBWThbVemzUyJH6Li4H8ZGk670G97oeti85SBoIEAyNOSZrcJMf9KQ0MuvaUlKNRI2NsYTMncKouyb4XgcOCJceobigC_Zm59HNQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-2778370593/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key-2778370593/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "26", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:04 GMT" - }, - "RequestBody": { - "key_ops": [], - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "687", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5a39401e-3324-40dc-abed-2a7c7a5a72c6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-2778370593/bb9b80d23d7f4f56b0705c6b326b2d49", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "nroKdb-1KKkc_88SyjtdqRo7XddJJWYWCDC-IeOK1o-gtPHJQWSSyVi6FkyVbYELjG5ccxiQyLTR1kTr-pFlOVsS4w29oMB-jJXbEVHVsywxdE5ikSZC9H_Fymc_-E1kkwtsnbC9g2eNx9isEtizZhRXPAsjR0t0CZuBu5UJclK97kb24tdH1Tu2Ud9-UABRWUiR_b-Kz6f7-SLgnVemzyxggAKPy_prSuzv_mgC648_wya6jiBhAIeybAygykzeYjH9N48h_MNMRJdZuI2mvVV895GifWuUS1jHopWF99kU5XaKZ2MISeIIRsp_LE9kYV1j4aimac3EXOrzCBOQZQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-3778370593/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key-3778370593/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "26", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:04 GMT" - }, - "RequestBody": { - "key_ops": [], - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "687", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d07730c0-4a97-438b-9e1d-c4c5064c2cc3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-3778370593/84d1dc554a53458c98c12d63ab94e8b5", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "qW5fCxvlDsRyLu00jaTp-IYDZtpvVcJ0WyiHOnvtxj1F2_iKhmNvj-NNYF7suI06bWZD97WxZ28h-cNIYk7Q4c3M4j-MdGf_hzuDPFvI5nm_RzTxQFO65I6WYXenwKkXvOGyhPtXTJQrHmPJfuRyhAO6SMu8wE1IbWW19zj94VbOdKG6tI_iYYkWJekHosxS9c9egx9FeHDw1oCGnNwDk60HkGPPnNeqhDhMLQf-EaLTYLGirF3CWeqbJXNPL6FNoM-83l9y_AzLdwzQ-dgBpwozuz2mGB6_iKu1XqlJl-W5_1kVNcJWzt5p1SDWKsDwdtPL33lGICSNF3RN5CnnJQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:04 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1253", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6f0e8bbc-80ca-4c82-8bfe-8ca0845f0ecb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "value": [ - { - "kid": "https://seankane.vault.azure.net/keys/importedKey", - "attributes": { - "enabled": true, - "created": 1634224757, - "updated": 1634224757, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key-0778370593", - "attributes": { - "enabled": true, - "created": 1634227261, - "updated": 1634227261, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key-1778370593", - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key-2778370593", - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key-3778370593", - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key1452004750", - "attributes": { - "enabled": true, - "created": 1634224709, - "updated": 1634224709, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-0778370593?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key-0778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:05 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "befca86b-0620-4b78-9c5b-2f99ef9947a9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key-0778370593", - "deletedDate": 1634227263, - "scheduledPurgeDate": 1634832063, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-0778370593/716cb303f5a640f49c6a510c0da3fda1", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "noIPVoZGgNfvj_DCYE8qAnpPUCxgzUs6UVo_bOc9O3Bh-PWUwjFUvOdR3TDh4mNQrOcheYBjaLw9YiGJfnTGJDifuJMtA3jVfshS1QESr5T7TlxQmz8Qlb0MeDZVFxQ0vFppD4gGBWLxl5wMbSjOgaxo9Xu7UHQMWEesw8FBRC5Y4WWb7NIGHf_Q7TBZ1UYrYq7ScrUFX9xGBvC1P51aHUxX3nhUgurfoZ9sCR3BPxBJTBRYo-txPjHBbrtqrcONAqA89bjTzX-I5kRPg2bGoAsaCIgcmTDT3tU1Oj8UFhAJzn7iugFblJN8050uRzM5HwGW-aTBPTu8GK8mi9LK9Q", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227261, - "updated": 1634227261, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-0778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:05 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "efe132fe-4b6b-44e6-89cd-43b3a4de213b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-0778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-0778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:05 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4bd93aea-a47a-4f2e-8039-6ef0fd6972f6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-0778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-0778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:05 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0ef79ee3-5da0-4f05-9e22-48c29f75344a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-0778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-0778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:06 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:04 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0d4f2842-27e3-48d4-89da-d09bfe521535", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-0778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-0778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:06 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:04 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7f5db0f2-7ebe-4b1c-81f9-ec171bab0bbb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-0778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-0778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:06 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:04 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2fbe485a-f45f-46cb-8a5f-ffc95defd0d8", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key-0778370593", - "deletedDate": 1634227263, - "scheduledPurgeDate": 1634832063, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-0778370593/716cb303f5a640f49c6a510c0da3fda1", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "noIPVoZGgNfvj_DCYE8qAnpPUCxgzUs6UVo_bOc9O3Bh-PWUwjFUvOdR3TDh4mNQrOcheYBjaLw9YiGJfnTGJDifuJMtA3jVfshS1QESr5T7TlxQmz8Qlb0MeDZVFxQ0vFppD4gGBWLxl5wMbSjOgaxo9Xu7UHQMWEesw8FBRC5Y4WWb7NIGHf_Q7TBZ1UYrYq7ScrUFX9xGBvC1P51aHUxX3nhUgurfoZ9sCR3BPxBJTBRYo-txPjHBbrtqrcONAqA89bjTzX-I5kRPg2bGoAsaCIgcmTDT3tU1Oj8UFhAJzn7iugFblJN8050uRzM5HwGW-aTBPTu8GK8mi9LK9Q", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227261, - "updated": 1634227261, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0778370593?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedkeys/key-0778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:06 GMT" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:01:04 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b69eefbe-545e-4f47-b41a-5a9747d80298", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-1778370593?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:07 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "65934bf9-14d1-47a1-815e-fbe0f168a221", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key-1778370593", - "deletedDate": 1634227265, - "scheduledPurgeDate": 1634832065, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-1778370593/cbcce9acb2c64d92a1bc96488b7b15d1", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "qcxscnbmZofAwwgEjAB_HCd53IKQw8nwawkwKallBOGECc4-SO2B70LWVRYwSE26w-KvWPbjchQlpQs43IRpevDibJMGdbV43m-tEVSAcrlBBFTg7byVwbmHeEJju0AmNkh3-Gz-EhRL4ISYk2HxH6JMPdu2DD1Xubcmloc3pkGq7792MRFPaVCYdyz-dce6y0lFxqU-n72eHETLCZFtoZUC_e48LqAsO4nnKOratPK2RU10q8cBWThbVemzUyJH6Li4H8ZGk670G97oeti85SBoIEAyNOSZrcJMf9KQ0MuvaUlKNRI2NsYTMncKouyb4XgcOCJceobigC_Zm59HNQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "53ad278d-cc6d-4f21-b056-7affc8ab7aa3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "aa8cc32c-f0b2-481b-9fb7-62bf3a1424d1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "436f6073-5113-486b-9f1f-5ab7b630d092", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3dd010bd-6054-41e4-90ad-36875da9abdf", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f72f4afd-818d-44d3-b482-cf73431c30cd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "820a3336-2825-4c94-9194-c977216de8fd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a63f15af-c076-49ba-bf6c-c750d970a815", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9a19693f-59cb-4634-99b1-660e62c03a67", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "653bc096-a339-485a-b542-727411b8d641", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:10 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "43fbe84c-0803-4327-978d-b287711996d6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-1778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:10 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "159d43cf-9dc8-4b10-9ff4-53c43d32d204", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key-1778370593", - "deletedDate": 1634227265, - "scheduledPurgeDate": 1634832065, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-1778370593/cbcce9acb2c64d92a1bc96488b7b15d1", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "qcxscnbmZofAwwgEjAB_HCd53IKQw8nwawkwKallBOGECc4-SO2B70LWVRYwSE26w-KvWPbjchQlpQs43IRpevDibJMGdbV43m-tEVSAcrlBBFTg7byVwbmHeEJju0AmNkh3-Gz-EhRL4ISYk2HxH6JMPdu2DD1Xubcmloc3pkGq7792MRFPaVCYdyz-dce6y0lFxqU-n72eHETLCZFtoZUC_e48LqAsO4nnKOratPK2RU10q8cBWThbVemzUyJH6Li4H8ZGk670G97oeti85SBoIEAyNOSZrcJMf9KQ0MuvaUlKNRI2NsYTMncKouyb4XgcOCJceobigC_Zm59HNQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1778370593?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedkeys/key-1778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:10 GMT" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:01:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "329932bb-f6a2-4774-9218-0b6943e3d8f4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-2778370593?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:10 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "682c2f6b-7776-4c20-8c9b-295d0cd803cd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key-2778370593", - "deletedDate": 1634227268, - "scheduledPurgeDate": 1634832068, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-2778370593/bb9b80d23d7f4f56b0705c6b326b2d49", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "nroKdb-1KKkc_88SyjtdqRo7XddJJWYWCDC-IeOK1o-gtPHJQWSSyVi6FkyVbYELjG5ccxiQyLTR1kTr-pFlOVsS4w29oMB-jJXbEVHVsywxdE5ikSZC9H_Fymc_-E1kkwtsnbC9g2eNx9isEtizZhRXPAsjR0t0CZuBu5UJclK97kb24tdH1Tu2Ud9-UABRWUiR_b-Kz6f7-SLgnVemzyxggAKPy_prSuzv_mgC648_wya6jiBhAIeybAygykzeYjH9N48h_MNMRJdZuI2mvVV895GifWuUS1jHopWF99kU5XaKZ2MISeIIRsp_LE9kYV1j4aimac3EXOrzCBOQZQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:11 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9a4e2d97-10cd-46d3-a12d-0265e260702d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:11 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3f7e516b-35bc-4469-b45c-d3092bdc3019", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:11 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "350e56c6-1d31-4fc6-a149-a94dcc13ce7a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:11 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1fde9f40-77f8-4255-ad13-d0b11633766f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "636b9fe6-a05d-497f-8a51-df53177b0e94", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "13384868-0791-46c6-871f-e15d8e47db98", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e7cc7e46-1bd4-4a00-9705-a3a2e10a299b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:13 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b06963b0-2cbc-4fb3-9d7d-327b74f91c23", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:13 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "38906974-2e99-4aa2-b06d-897ba88581e0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3c1d1899-9170-44d6-a4b7-7a2c74d33a3c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "047688c6-9ec5-4273-aee1-da952265453b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "88f4ee2f-cd1b-4e69-93b7-4b299207c7e8", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:15 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ccd5d55b-6e21-45dd-b587-57262e763700", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-2778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:15 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d3b70f20-e471-44d4-836d-6de51135ee90", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key-2778370593", - "deletedDate": 1634227268, - "scheduledPurgeDate": 1634832068, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-2778370593/bb9b80d23d7f4f56b0705c6b326b2d49", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "nroKdb-1KKkc_88SyjtdqRo7XddJJWYWCDC-IeOK1o-gtPHJQWSSyVi6FkyVbYELjG5ccxiQyLTR1kTr-pFlOVsS4w29oMB-jJXbEVHVsywxdE5ikSZC9H_Fymc_-E1kkwtsnbC9g2eNx9isEtizZhRXPAsjR0t0CZuBu5UJclK97kb24tdH1Tu2Ud9-UABRWUiR_b-Kz6f7-SLgnVemzyxggAKPy_prSuzv_mgC648_wya6jiBhAIeybAygykzeYjH9N48h_MNMRJdZuI2mvVV895GifWuUS1jHopWF99kU5XaKZ2MISeIIRsp_LE9kYV1j4aimac3EXOrzCBOQZQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2778370593?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedkeys/key-2778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:15 GMT" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:01:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f3956846-a28b-460a-9fcc-c7860e492c35", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-3778370593?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:15 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "bd95788f-38aa-4487-a76f-6abb5c72cd7e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key-3778370593", - "deletedDate": 1634227273, - "scheduledPurgeDate": 1634832073, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-3778370593/84d1dc554a53458c98c12d63ab94e8b5", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "qW5fCxvlDsRyLu00jaTp-IYDZtpvVcJ0WyiHOnvtxj1F2_iKhmNvj-NNYF7suI06bWZD97WxZ28h-cNIYk7Q4c3M4j-MdGf_hzuDPFvI5nm_RzTxQFO65I6WYXenwKkXvOGyhPtXTJQrHmPJfuRyhAO6SMu8wE1IbWW19zj94VbOdKG6tI_iYYkWJekHosxS9c9egx9FeHDw1oCGnNwDk60HkGPPnNeqhDhMLQf-EaLTYLGirF3CWeqbJXNPL6FNoM-83l9y_AzLdwzQ-dgBpwozuz2mGB6_iKu1XqlJl-W5_1kVNcJWzt5p1SDWKsDwdtPL33lGICSNF3RN5CnnJQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:15 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "28efff66-a525-4e76-a4b6-ce9198cb1535", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-3778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:16 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b24302f2-2252-491c-9ef0-d3396fadb99a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-3778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:16 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e5101cb8-d8c4-4d2a-9c13-b67296fb0614", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-3778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:16 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4542c933-f901-49ff-abb6-1f4cf90ac7f2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-3778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "58cd3fcd-ced6-4ab0-9671-c7f45d6be20c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-3778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f581888f-ec98-43b3-a5fb-eec3bc4bf088", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-3778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "437617e7-9151-4cde-ab28-4ee96c7a56f8", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-3778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:18 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "82", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d551678b-8c9b-47fd-ae3d-ed6093582991", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key-3778370593" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:18 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "819", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d68bc12c-4d16-483a-8404-82fd72b4c177", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key-3778370593", - "deletedDate": 1634227273, - "scheduledPurgeDate": 1634832073, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key-3778370593/84d1dc554a53458c98c12d63ab94e8b5", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "qW5fCxvlDsRyLu00jaTp-IYDZtpvVcJ0WyiHOnvtxj1F2_iKhmNvj-NNYF7suI06bWZD97WxZ28h-cNIYk7Q4c3M4j-MdGf_hzuDPFvI5nm_RzTxQFO65I6WYXenwKkXvOGyhPtXTJQrHmPJfuRyhAO6SMu8wE1IbWW19zj94VbOdKG6tI_iYYkWJekHosxS9c9egx9FeHDw1oCGnNwDk60HkGPPnNeqhDhMLQf-EaLTYLGirF3CWeqbJXNPL6FNoM-83l9y_AzLdwzQ-dgBpwozuz2mGB6_iKu1XqlJl-W5_1kVNcJWzt5p1SDWKsDwdtPL33lGICSNF3RN5CnnJQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227262, - "updated": 1634227262, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3778370593?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedkeys/key-3778370593?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:18 GMT" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:01:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "46a4fa0f-95c2-4934-84e1-3c7467bf4fdf", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azkeys/recordings/TestRecoverDeletedKey.json b/sdk/keyvault/azkeys/recordings/TestRecoverDeletedKey.json deleted file mode 100644 index 887b53863ab9..000000000000 --- a/sdk/keyvault/azkeys/recordings/TestRecoverDeletedKey.json +++ /dev/null @@ -1,3056 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key50499491/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:06 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "684", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1ed2a069-b658-4b03-ab2c-bbe489b04f84", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:07 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "813", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6e891a7d-346d-4fbe-974d-aa7cc0a1b25b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key50499491", - "deletedDate": 1634227325, - "scheduledPurgeDate": 1634832125, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ed790457-56f3-4afa-bb2c-560b137260a9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4fec71b5-e86a-490c-a1d1-2acdbe345901", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:07 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "50521707-cd1b-46f5-bc69-040026182849", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8897839b-f249-460d-89a9-9875927d3784", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2562f001-1b45-4078-9070-214fe756fa37", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:08 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "90ca8aa1-6ba5-4290-bed4-97f51542b336", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6d1b6d76-d7bb-40f6-9924-6947d47512e7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "968b3ef9-5a22-4056-acaa-6649d136cc8a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:09 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1b17d731-1564-4d6a-bbe0-c64d0d801b12", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:10 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9ffeaabc-6f10-4da5-8b61-943848a29f64", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:10 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "674047f6-4e67-4f7d-8aa1-9a2edc74a856", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:11 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "45e79f05-7f04-492b-88d7-225f6c23c2c3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:11 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ddd12918-c62d-4aff-a337-9d100d321f1a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:11 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "813", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "990f74a7-d700-431d-b7d5-b6facf0aa7c3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key50499491", - "deletedDate": 1634227325, - "scheduledPurgeDate": 1634832125, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491/recover?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/deletedkeys/key50499491/recover?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "0", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:11 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "684", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d0015305-1553-476f-b315-85f3f04e747c", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "df36a9a4-c8fa-4f32-bba4-b340316a8f2d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3c160095-6f4d-4617-93ce-27fdae0b7e16", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9dbed5ca-4e60-4fe8-90ab-fef2e4450f65", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:12 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9c2047e4-9393-4c4e-9a43-ad9bc63e4459", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:13 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e7e8fed2-1264-4e80-9535-6336c7e75174", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:13 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3c384881-dba2-4a72-be5b-361592eb0cb0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:11 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "050bb4d0-57e2-4375-90bf-192a1e9d2d8a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2d6008ac-c06d-4944-a996-11970ac6f38d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:14 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "07b8a959-980a-4e6b-b9dd-e6d3ee390128", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:15 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6680fcc3-9b35-4c15-a7f1-ea240af7e17f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:15 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4f74bad2-e535-4671-985e-ea874d99189e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:15 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a79a967e-0ec1-4001-b052-bd87e3b798e6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:16 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:13 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7071d6f7-5b53-4526-bd07-3707d266eb77", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:16 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2e7df3ab-8301-4b2f-8c72-c2c18fb5ff37", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2ab8ec4f-a9ec-4d99-bc2d-47ac7274c09d", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "81187d6a-e19d-4bc9-9b96-de94b0a136f2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:17 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "de231464-5e22-4cf5-b3ca-e0c25f034f49", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:18 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6dde8374-61b5-49d6-974d-9fc091a7cfe4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:18 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d6b15b2e-543a-40c7-b53f-fc2555bdff58", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:18 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "299", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "dd9f3cbd-a0e6-4a2a-b725-d6221e716504", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "A key with (name/id) key50499491 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:19 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "684", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "02ba36a8-675a-4474-bd6a-7292e544d222", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:19 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "684", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d4e3f84b-3e5a-428f-a478-ab1664287149", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491/?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/keys/key50499491/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:19 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "684", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "bdfa0386-5a36-4a43-b1ed-d4826df37f18", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key50499491?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:19 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "813", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0e24d2b2-9258-402e-b682-9ae8d03cbff3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key50499491", - "deletedDate": 1634227337, - "scheduledPurgeDate": 1634832137, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:20 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a50c8c8d-4355-4f2d-856d-3f4e9158a134", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:20 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "242df9f5-0f1e-4102-a1a2-6d02450fdf7a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:20 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "38a8f466-6d6d-40a7-a49b-13d3308625e1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:20 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "df1fda1e-3a9e-40ec-b6ef-fa66735039c9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:21 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "179ba966-aa2c-4350-b3e8-3cad3c9837c5", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:21 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "22ba0b13-e2f8-4acf-bc7b-ce0210843f92", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:22 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "21d7038e-1869-4785-b725-c0e01f7f18b3", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:22 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0da184cf-528c-4d35-9a79-d916ab5ba34e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:22 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9ddf9812-c2f8-40c0-8677-0829a78093e7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:23 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6de52707-dcfe-4381-9f31-51f4b236037b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:23 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b8b04651-6053-43e7-bd67-d8a9602754dd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:23 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:21 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "88bd147d-8fc9-4355-b8c9-75da2650ed3b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:24 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:21 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3968af2b-a0f6-482e-86ad-9d9de0bdea0a", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:24 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:21 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "11e381d8-aa19-4520-a994-eb5b778722d9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:24 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ce9e49ea-485b-4cde-8be5-fe43ab32fcf9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:25 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "0ac48cde-8652-4dde-b364-26ac92b062c2", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:25 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "319a7f5c-c1db-49f1-a381-692086967335", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:26 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f62f5f12-1f08-4b51-a1df-ba284c3f5a0f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:26 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8bc829c4-4428-4e01-8ce7-7c99563327d5", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:26 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6d34fa7d-b518-404b-a27d-ff0c51878c6e", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:27 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1b3fb11b-07a7-461f-a98d-66e2bc46d013", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:27 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1dd8830c-6454-4075-b145-a9dffd94f711", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:27 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5c179354-1e34-4f46-9c9a-62b06c6de9fb", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:28 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:26 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d4465a61-bd5e-43d1-8bfd-7f4cc265e4cd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:28 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:26 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4b41dc9e-c633-466b-a3bf-583d41d8f06f", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:28 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:27 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "27031864-7f85-4f5c-b4c9-0ca8f217d5e7", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:29 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:27 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "58585b6c-1d2c-48c7-b1d5-5b2a2bbe40b0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:29 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:27 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "97f7a177-baab-4902-bae6-e31ead794640", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:30 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8008d48e-3d97-4f07-a93c-856feed114b4", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:30 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8c39df0a-06fd-4391-8102-3e68a7ace24b", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:30 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3d495f3e-2b35-4a50-835e-628f5348aaba", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:31 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2fa41500-ee70-4b8b-8e03-4b9e38137c62", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:31 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "79", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "09d5a52d-a14e-4432-b6d9-38bedf3839d9", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key50499491" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:31 GMT" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "813", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1484a362-1b31-470b-81b4-c2c4586f59f0", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key50499491", - "deletedDate": 1634227337, - "scheduledPurgeDate": 1634832137, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key50499491/2bbd20cfcec147de8ed0a45b37805a9f", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "pD1tjMR61xSQdpgN7v46XMxntdyD6MpJFHQ7XxnWg5wuO_ffXnJxpuLFXEqpPlnZGC93vVh4DbMVF8RviOKb9TII11UKY28D5jMhZ_M8MseyXmLgKh74p2fp7Ki6iRkVFnWbmPVtAFrbhdKJUFto_gX_pFdCllB9qyA_OA12fHLwXpbtybjDtYoEp2I8U6A_M9sdw3UwLHQzmT99YYYjwvAUwf9asPGnHcasyC-0XfipMzBRrMcBR77h3aKpVdapT0hU6cj6tWPvsS7VUZexW9EEZmUkr3v9MhR9jGh-c2A4TdDvzD3hvPCGgOW8oZoPPcTikqkFpS-lmo2DK_ykFQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227325, - "updated": 1634227325, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key50499491?api-version=7.2", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedkeys/key50499491?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:32 GMT" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:02:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "904a9826-7953-41ce-966e-a937a86761c1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azkeys/test-resources-post.ps1 b/sdk/keyvault/azkeys/test-resources-post.ps1 new file mode 100644 index 000000000000..37de8267f271 --- /dev/null +++ b/sdk/keyvault/azkeys/test-resources-post.ps1 @@ -0,0 +1,112 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +# IMPORTANT: Do not invoke this file directly. Please instead run eng/New-TestResources.ps1 from the repository root. + +#Requires -Version 6.0 +#Requires -PSEdition Core + +using namespace System.Security.Cryptography +using namespace System.Security.Cryptography.X509Certificates + +# Use same parameter names as declared in eng/New-TestResources.ps1 (assume validation therein). +[CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'Medium')] +param ( + [Parameter()] + [hashtable] $DeploymentOutputs, + + # Captures any arguments from eng/New-TestResources.ps1 not declared here (no parameter errors). + [Parameter(ValueFromRemainingArguments = $true)] + $RemainingArguments +) + +# By default stop for any error. +if (!$PSBoundParameters.ContainsKey('ErrorAction')) { + $ErrorActionPreference = 'Stop' +} + +function Log($Message) { + Write-Host ('{0} - {1}' -f [DateTime]::Now.ToLongTimeString(), $Message) +} + +function New-X509Certificate2([string] $SubjectName) { + + $rsa = [RSA]::Create(2048) + try { + $req = [CertificateRequest]::new( + [string] $SubjectName, + $rsa, + [HashAlgorithmName]::SHA256, + [RSASignaturePadding]::Pkcs1 + ) + + # TODO: Add any KUs necessary to $req.CertificateExtensions + + $NotBefore = [DateTimeOffset]::Now.AddDays(-1) + $NotAfter = $NotBefore.AddDays(365) + + $req.CreateSelfSigned($NotBefore, $NotAfter) + } + finally { + $rsa.Dispose() + } +} + +function Export-X509Certificate2([string] $Path, [X509Certificate2] $Certificate) { + + $Certificate.Export([X509ContentType]::Pfx) | Set-Content $Path -AsByteStream +} + +function Export-X509Certificate2PEM([string] $Path, [X509Certificate2] $Certificate) { + +@" +-----BEGIN CERTIFICATE----- +$([Convert]::ToBase64String($Certificate.RawData, 'InsertLineBreaks')) +-----END CERTIFICATE----- +"@ > $Path + +} + +# Make sure we deployed a Managed HSM. +if (!$DeploymentOutputs['AZURE_MANAGEDHSM_URL']) { + Log "Managed HSM not deployed; skipping activation" + exit +} + +[Uri] $hsmUrl = $DeploymentOutputs['AZURE_MANAGEDHSM_URL'] +$hsmName = $hsmUrl.Host.Substring(0, $hsmUrl.Host.IndexOf('.')) + +Log 'Creating 3 X509 certificates to activate security domain' +$wrappingFiles = foreach ($i in 0..2) { + $certificate = New-X509Certificate2 "CN=$($hsmUrl.Host)" + + $baseName = "$PSScriptRoot\$hsmName-certificate$i" + Export-X509Certificate2 "$baseName.pfx" $certificate + Export-X509Certificate2PEM "$baseName.cer" $certificate + + Resolve-Path "$baseName.cer" +} + +Log "Downloading security domain from '$hsmUrl'" + +$sdPath = "$PSScriptRoot\$hsmName-security-domain.key" +if (Test-Path $sdpath) { + Log "Deleting old security domain: $sdPath" + Remove-Item $sdPath -Force +} + +Export-AzKeyVaultSecurityDomain -Name $hsmName -Quorum 2 -Certificates $wrappingFiles -OutputPath $sdPath + +Log "Security domain downloaded to '$sdPath'; Managed HSM is now active at '$hsmUrl'" + +# Force a sleep to wait for Managed HSM activation to propagate through Cosmos replication. Issue tracked in Azure DevOps. +Log 'Sleeping for 30 seconds to allow activation to propagate...' +Start-Sleep -Seconds 30 + +$testApplicationOid = $DeploymentOutputs['CLIENT_OBJECTID'] + +Log "Creating additional required role assignments for '$testApplicationOid'" +$null = New-AzKeyVaultRoleAssignment -HsmName $hsmName -RoleDefinitionName 'Managed HSM Crypto Officer' -ObjectID $testApplicationOid +$null = New-AzKeyVaultRoleAssignment -HsmName $hsmName -RoleDefinitionName 'Managed HSM Crypto User' -ObjectID $testApplicationOid + +Log "Role assignments created for '$testApplicationOid'" \ No newline at end of file diff --git a/sdk/keyvault/azkeys/test-resources.json b/sdk/keyvault/azkeys/test-resources.json new file mode 100644 index 000000000000..20f726f33227 --- /dev/null +++ b/sdk/keyvault/azkeys/test-resources.json @@ -0,0 +1,331 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "baseName": { + "type": "string", + "defaultValue": "[resourceGroup().name]", + "metadata": { + "description": "The base resource name." + } + }, + "tenantId": { + "type": "string", + "defaultValue": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "metadata": { + "description": "The tenant ID to which the application and resources belong." + } + }, + "testApplicationOid": { + "type": "string", + "metadata": { + "description": "The client OID to grant access to test resources." + } + }, + "provisionerApplicationOid": { + "type": "string", + "metadata": { + "description": "The provisioner OID to grant access to test resources." + } + }, + "location": { + "type": "string", + "defaultValue": "[resourceGroup().location]", + "metadata": { + "description": "The location of the resource. By default, this is the same as the resource group." + } + }, + "hsmLocation": { + "type": "string", + "defaultValue": "southcentralus", + "allowedValues": [ + "australiacentral", + "canadacentral", + "centralus", + "eastasia", + "eastus2", + "koreacentral", + "northeurope", + "southafricanorth", + "southcentralus", + "southeastasia", + "switzerlandnorth", + "uksouth", + "westeurope", + "westus" + ], + "metadata": { + "description": "The location of the Managed HSM. By default, this is 'southcentralus'." + } + }, + "enableHsm": { + "type": "bool", + "defaultValue": false, + "metadata": { + "description": "Whether to enable deployment of Managed HSM. The default is false." + } + }, + "keyVaultSku": { + "type": "string", + "defaultValue": "premium", + "metadata": { + "description": "Key Vault SKU to deploy. The default is 'premium'" + } + }, + "attestationImage": { + "type": "string", + "defaultValue": "keyvault-mock-attestation:latest", + "metadata": { + "description": "The container image name and tag to use for the attestation mock service." + } + } + }, + "variables": { + "attestationFarm": "[concat(parameters('baseName'), 'farm')]", + "attestationSite": "[concat(parameters('baseName'), 'site')]", + "attestationUri": "[concat('DOCKER|azsdkengsys.azurecr.io/', parameters('attestationImage'))]", + "kvApiVersion": "2019-09-01", + "kvName": "[parameters('baseName')]", + "hsmApiVersion": "2021-04-01-preview", + "hsmName": "[concat(parameters('baseName'), 'hsm')]", + "mgmtApiVersion": "2019-04-01", + "blobContainerName": "backup", + "primaryAccountName": "[concat(parameters('baseName'), 'prim')]", + "encryption": { + "services": { + "blob": { + "enabled": true + } + }, + "keySource": "Microsoft.Storage" + }, + "networkAcls": { + "bypass": "AzureServices", + "virtualNetworkRules": [], + "ipRules": [], + "defaultAction": "Allow" + } + }, + "resources": [ + { + "type": "Microsoft.KeyVault/vaults", + "apiVersion": "[variables('kvApiVersion')]", + "name": "[variables('kvName')]", + "location": "[parameters('location')]", + "properties": { + "sku": { + "family": "A", + "name": "[parameters('keyVaultSku')]" + }, + "tenantId": "[parameters('tenantId')]", + "accessPolicies": [ + { + "tenantId": "[parameters('tenantId')]", + "objectId": "[parameters('testApplicationOid')]", + "permissions": { + "keys": [ + "backup", + "create", + "decrypt", + "delete", + "encrypt", + "get", + "import", + "list", + "purge", + "recover", + "release", + "restore", + "rotate", + "sign", + "unwrapKey", + "update", + "verify", + "wrapKey" + ], + "secrets": [ + "backup", + "delete", + "get", + "list", + "purge", + "recover", + "restore", + "set" + ], + "certificates": [ + "backup", + "create", + "delete", + "deleteissuers", + "get", + "getissuers", + "import", + "list", + "listissuers", + "managecontacts", + "manageissuers", + "purge", + "recover", + "restore", + "setissuers", + "update" + ] + } + } + ], + "enabledForDeployment": false, + "enabledForDiskEncryption": false, + "enabledForTemplateDeployment": false, + "enableSoftDelete": true, + "softDeleteRetentionInDays": 7 + } + }, + { + "type": "Microsoft.KeyVault/managedHSMs", + "apiVersion": "[variables('hsmApiVersion')]", + "name": "[variables('hsmName')]", + "condition": "[parameters('enableHsm')]", + "location": "[parameters('hsmLocation')]", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "properties": { + "tenantId": "[parameters('tenantId')]", + "initialAdminObjectIds": "[union(array(parameters('testApplicationOid')), array(parameters('provisionerApplicationOid')))]", + "enablePurgeProtection": false, + "enableSoftDelete": true, + "softDeleteRetentionInDays": 7, + "publicNetworkAccess": "Enabled", + "networkAcls": "[variables('networkAcls')]" + } + }, + { + "type": "Microsoft.Storage/storageAccounts", + "apiVersion": "[variables('mgmtApiVersion')]", + "name": "[variables('primaryAccountName')]", + "location": "[parameters('location')]", + "sku": { + "name": "Standard_RAGRS", + "tier": "Standard" + }, + "kind": "StorageV2", + "properties": { + "networkAcls": "[variables('networkAcls')]", + "supportsHttpsTrafficOnly": true, + "encryption": "[variables('encryption')]", + "accessTier": "Hot" + } + }, + { + "type": "Microsoft.Storage/storageAccounts/blobServices", + "apiVersion": "2019-06-01", + "name": "[concat(variables('primaryAccountName'), '/default')]", + "dependsOn": [ + "[resourceId('Microsoft.Storage/storageAccounts', variables('primaryAccountName'))]" + ], + "sku": { + "name": "Standard_RAGRS", + "tier": "Standard" + }, + "properties": { + "cors": { + "corsRules": [] + }, + "deleteRetentionPolicy": { + "enabled": false + } + } + }, + { + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "apiVersion": "2019-06-01", + "name": "[concat(variables('primaryAccountName'), '/default/', variables('blobContainerName'))]", + "dependsOn": [ + "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('primaryAccountName'), 'default')]", + "[resourceId('Microsoft.Storage/storageAccounts', variables('primaryAccountName'))]" + ], + "properties": { + "publicAccess": "None" + } + }, + { + + "type": "Microsoft.Web/serverfarms", + "apiVersion": "2020-12-01", + "name": "[variables('attestationFarm')]", + "condition": "[parameters('enableHsm')]", + "location": "[parameters('location')]", + "kind": "linux", + "sku": { + "name": "B1" + }, + "properties": { + "reserved": true + } + }, + { + + "type": "Microsoft.Web/sites", + "apiVersion": "2020-12-01", + "name": "[variables('attestationSite')]", + "condition": "[parameters('enableHsm')]", + "dependsOn": [ + "[resourceId('Microsoft.Web/serverfarms', variables('attestationFarm'))]" + ], + "location": "[parameters('location')]", + "properties": { + "httpsOnly": true, + "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('attestationFarm'))]", + "siteConfig": { + "name": "[variables('attestationSite')]", + "alwaysOn": true, + "linuxFxVersion": "[variables('attestationUri')]", + "appSettings": [ + { + "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE", + "value": "false" + } + ] + } + } + } + ], + "outputs": { + "AZURE_KEYVAULT_URL": { + "type": "string", + "value": "[reference(variables('kvName')).vaultUri]" + }, + "AZURE_MANAGEDHSM_URL": { + "type": "string", + "condition": "[parameters('enableHsm')]", + "value": "[reference(variables('hsmName')).hsmUri]" + }, + "KEYVAULT_SKU": { + "type": "string", + "value": "[reference(parameters('baseName')).sku.name]" + }, + "CLIENT_OBJECTID": { + "type": "string", + "value": "[parameters('testApplicationOid')]" + }, + "BLOB_STORAGE_ACCOUNT_NAME": { + "type": "string", + "value": "[variables('primaryAccountName')]" + }, + "BLOB_PRIMARY_STORAGE_ACCOUNT_KEY": { + "type": "string", + "value": "[listKeys(variables('primaryAccountName'), variables('mgmtApiVersion')).keys[0].value]" + }, + "BLOB_CONTAINER_NAME" : { + "type": "string", + "value": "[variables('blobContainerName')]" + }, + "AZURE_KEYVAULT_ATTESTATION_URL": { + "type": "string", + "condition": "[parameters('enableHsm')]", + "value": "[format('https://{0}/', reference(variables('attestationSite')).defaultHostName)]" + } + } +} \ No newline at end of file diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestBackupKey/TestBackupKey_NON-HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestBackupKey/TestBackupKey_NON-HSM.json new file mode 100644 index 000000000000..53c498931821 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestBackupKey/TestBackupKey_NON-HSM.json @@ -0,0 +1,964 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/backup-key564789157/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/backup-key564789157/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:35 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "682", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:33 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "e25fcce9-6a1c-4a0d-bf44-f54564976e5b", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/backup-key564789157/3b75c1fae8c74941b5bbe2d5311dd9b1", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "u8mAj63FUACHLK4SMlqpoaHdl11N2S_tP2Q-7VY7zuyyNRhyt07k68RIx-WYGSGfT7snVf2AC607tdj-MB-XWXY1qS7Un7fVBLotfLfPIPVi1e7KVnH1B6z08kYM4QQ_9iLM-u5IQKN9QLtYS8mN1s-plMesEpI7xNfaB1AqfkuwYqRy1DLq0zjZgZ6a_wq6F69ay5ELJmll82NJK4ufCsR3GHcxWyxFNfeXX9X2ymD1UJvz4yg4p4ByhBadDVrjqa1mClHaODfHiayuKK1CGc3JqGKLUHHm5VQarwvwO_HucppEoPVIRQgFaum52hqpmZQrQ9NwjRjHSQz0-3MzFQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176614, + "updated": 1635176614, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/backup-key564789157/backup?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/backup-key564789157/backup?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "0", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:35 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "10471", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:34 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4dcd2957-7687-43b1-b41c-e88157cf33d1", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuQWE0NHhTZ0hiM0ljR1VhX2w5bFlnNXlFZG05VXEyRGNzWFJyMVMyUXhGUmFna2prc1pJQ2w4SUEzWUVSZWYwazZfOGV1YV9sTFp2NEUwTUdIMDNfZGVGZXV4LTlrVHRiUW5kYzZoUmRVNlEyaXNUUE1nY1NiRmtGbVlLUUt4NmhpU3FHZHBpQ0d5MjR3NkREYUFPZm9fYl9xaEY3VkJnRWZuUGN6c3p4U2VuUEpGVnlrSmpBcWxvVFlxdEdaRDBoUFZxck1wNkRJMkFyRTJiVl9FbnF6U0pjT0FnLWhDdjR5UFp3SHFIMndIM0dfUXA2X3dJUnRsT0NzZ1NrRGtGVnpHOG1IcVB3T0N0SjZRMGllLXZ1YTlPZmlkeG1uOC1SVzJQcGV1bk9Deng2Z29YaW4xMFRWeWJ5YW1hY3NTQ21jT05ZQjdNOWpZYWMzMUxmMW5TWDF3LmVNU1BJTGo2bF9EZjdDNW1saDhQTFEuc0hNYXAzVWN0UEdzbUc5T3AxWnJJSHZ2d0kta3lPZmdGVXNheFhiTTJLOXNLUU5Ia1MyMW1ibndRUkQ2a3YzeHhuYU9RakRlTnBlSEFuXzlDLTg1OFNveTJITDNlOVNDbExmZ1RaWHRDS2R0RnUyVEJ5WVRLVzhpcldYMWFyckRlMHFRd1lkM3NpUHdzdHpfQ0NqbEZBQy02SEtjWFdMS1JId0tGVFVDcGhJNi1VNEtzVkFjc0FzVmNHaFZRSmlyZWYtUmZuSHpwQktCd0lQeS1kdnQ0NktGY1BSSEtUOVRHUFF1ckNzeHNyVFRabjBqVDZyZ3M3OGlLdjlSeTBkbWtWOGNqUGstTXhMbEFWWVk0dE0xU1YyTm9CNGllM1JtWkx3VkJmWjhKV3dpWDUxTDNxd2Jtdko2TDR1eC1XUnJVeXY4ajNDMWdoS3QtUnZiTHFYZnd3WDRRZ0pOOWctTW04c1JaMUgyaHN5dm45Y0JhRk9OdVctRWlkYmpMMVFPeTJueU1aanZrQ1lYRl9YbHdZTGl4aUNDOWxtaWE5MURUMm5uNGp4WmppV0RVN042Z3R4WjJ5UW55eVUzSDl5UUhMSnRyTUdrUm5sREQ3NHNiYTVrc20wU0hJYkdjNXVjWm1IVU5DdnlzTzU5eGc3ZGZLRFRYTEkzc2RackVjODlDSkhOYjZFWDlhb2NreWFNcWhBV0VqYXFwemthMEZBRDYwMWxPYmVlTFBZajUzZDdHWDRWWlk0ME1lSlEtLWdGeWFxWGotTnJfQ2xjMVZyRXQybnh2SU1qSXZ5djhjcno5ampxdjZtd3Y1RHVOYlhHcUc3c0FCRlQwYUJ5VE1pWlZuN0VlNTQ1eFJabmV3aEpLOUxnY1J3VUlwbE9aWkNvOWhVS3FjS2dQRnBUQ2w5QjB3UkdqZVEtX2poQWIxVkg0Tkhuek16VFJlN19vVmhSeEpZN3ZGQ0FmMHNLUEdjV1hRZTIzelQyQjNXSWlnUWNhWmM5d2MxM1JZU2JCX1RkNXY1NGZMVDBWU1JlcC0zWnM4YTREeV9uWnI4VmVFdEdwWmR2TExBUFpoV2hzSklfdTVtMVdweXBUU21NRFg4TGxORVltMnFtaVFIc1FiczNwV0pPd3RPWTRTUDN3LXU5MElvUlI1c0tKWWRRaC1peVBUemRRVVBNZGhBM2NxSTJFX0hOWHRfRkt4M2ppcWxiUE9iVUN6ZXJtQVlLYzZtNHJiVjVuX3lucHZFcExfR3NYeGRFM3Btc0Vma0FodGt6eFRmbkozRE9yeElneXJtT1ZNZzE0SHNLVmNpVXhMbFhweEhIV3pZWTEzcXlyekxYTFRRLTFEbDl5b0NmbWdZbjdlS3Fuanh6dUtDVzlUXzlIR2E3MlZCWTg0bGc0WnVaUHdldlhDNHd1UkVsSXdiTGNqYjVybE5TcVpnN2UxQkw4SWJYdTJzazBFa29EeXcya2FoNkVkblBPTzFHLW1JZEZHblVqamdTQWtfanM1R3VRNXFLV3RydnFRSVI3ZUFFTUF6eWZSdUM4WGJ2b0EtWF8xXzNkV3RlLXltMXF1OEMtZlV0RjFYWnR3MkJZVHZ3QnplUzh3VVRzYzN4Q0h3X3NDcHU2c0hZSnZOX3dNdldaRlAyY2I2S0NQOUdKdHlOeHRwM0lGc2tiUDNZUHFOY2xvWmFqdTdEck9GRXVRelRVSjhvSHRScWxrNE9HMUluOHhmbm5UX3NzaEM2Znl5M0dBbGNvQkpnTERaYTNJeE1odU50ZWpwaF9pejRZZnZ1UnRyME1PaklOWGMtaWdVandlMHc2NDN5MmJRZnNWNEtTLTlXbFZST2FMNFpmQzU5Ty0tT2lvcUtzcVcyQlhOMWxVTFpVakc1YXlHa1R2TDhzeldJUE84UVlTS3c1LUl4OEk3SHZjRGJpZUxoMUNCM19WaU92Y3RwbWp4NVZyWnByVVZKcnRzWm1hTkJ0NmdFZ2pfRDJTYUxVbzhsTi1UbjhJSmlqUUhJa2U0ZmsyVjUzQU9kcDBfcE5SMU54TXlDMnptUWpuUWpRbG9aSVVVTTNoc3dnVWtwbzRBTFltbllvc1hERFVXR0htT19Fck5yUWswb0RFNEMyZEhqV1RiaW9aVTIwRGRzMV9RS2FZQ2xYdDE5VFhjWS1EbnQ2b2dKVGNuMERsMTJ0dl9MeDYtVUIyMk1QWjNEY0p5WW1OU3lNNEtVRURycGRZUy1LWl8tRFdGdFNLSGhtNFRkWlFLQ3dJTkkzaUJMdVozTjFyUlZPUmVRQWNzbXB3VWZPcGQzUUdHRjJHMjFUcF9KN0p5WnA1VzNCV0hLdTBlUW9xdnZyNUxyX0Q4czVSbVgyaS00QW9EUEVmQ0FERE1MWTdIOEdSdmJyTWtERGk1V3pVdEhMd092bmJvcnB6am5pQ1ZacjBWNmU1TlZRejJSX25lbWVNcGFDTUlreXV2U24zVjhxMXUyRTB6ZXBTcUY1Tm5CR2VnTE8tcDg4anI2bUpjNF9hRmthZmFiRWpfMXJhOHRsaHdFN3ZKSF9ZdmpJWmctOHktUk5WT0NJSzljX2pHT0tRR3lLcTVpOUxkbExNcnhDSlE5clRGZGExUzlCX0RHRExVNW95cDZRenBUNy02M3hCdmc2b1M0bGVzWDZKNTJod3A1b1hVMDZPS05CT0lra0pPUXRTdmo0MDBjLVJjSkxWNDVJWWdQcXczMzRkdWJUWVpGNkk4ZHYwSnJDdFpyQ1ZhX2ZiSE5sQ0RpUHNHVTB6YTlWOF9sWUlHY1VDRDd1N0pTdV9TdTNJS3lpXzhKMTEyQjJyUWRtME5uME0wYXJDNlJqMHNCNklsNksxSmpJQmFEaWl4R1NzWFY3MGFsd3Q1M2JKRmlJdVlBaTJUOUZoMm4wZlBKR0VyOC1PTWExWVlQS1RvcU83dnJkRWU5dHVVS3c0TWJXeTM5OUNOenRFckhsUVgxZG1BUmNyR1lzVmU3ampTdmNJSEJ0bXhZLXoxcjJLaURrR1pSNzBDSk40cVpzTGJFVjNTNmVKODNzMW9qOTJmZS1nZ3NBLUdYalJhek8wSDk3VlNhOFlMWmYzb0QwNlpaUjQ1azRfNUZadnFaV09vSkNwWlVQZ0lHRFNDOHIybWpWeGp6QTJuVFQ5MXlWZVdOcEYzUk9SWEplYXppTXVVUHZWazZIODQtSGw1a1I4N1FKTG5vQmY2OVRIWDE2MEQtVjdiRFc0emVVMUt3UXBTMm83NGJ4d29JbXlqa25OODc4U29SV3pzYXVVdlNtNVVXT1k0VDBaWDFRN2JHeWNmNXBZMER1dU43U3o5aGRoRjZvQVI2U1RTa2tIakFCeURlNWU1VkJGV19xUkxFOUdUMkVEcFVrTlJ0bXJ4ZHlXbFNRdmNKX0tOOWplUzU0bTYzblpqNzREOGhIc3NPR0RjRnBWNV9xSjFtQUx2NWdKYWFyZ0lFYkZ5UzFPZUVCcFltbGFtNmZXZ2RqTmVLbXJJMjh4QlVUcExRc095QVVFQy0xN2kxN1ZhRTA5NmcyQmdHUTZSZlVqQlR1U0tCUHlxZFpWMlRDQ3ZRR1RudHdBOUctMk1NOHVFRXJlMmJaOWdXaVE1MlZxdlNBcWNlV25tTHpVbkwtMFpwX1dUMDNNak1yZTF5YWFGU0hLVHNHRHJ4U1NsU0Y0M1RjQ0xKWThBWm5ZaTFDbUxjTlU5c0w2dEJKMjU1bkJHcHRteUJyUWJHdkZtQ3lGVXJnWXV3cGFCLUFQY3V1VTdIYWNha0tEcWYwaUV3UFBvY0NsZXlMZmVrdjRZVk9RWGpHQzNONmNZV0ZlM08xS0htSG9nTTNta3VTYmUycjBvVlVfeTVSbWlITmJqU3NmM25ScDNLUE1ZcG8zQVNUZzlwMkFxdGFjN3IwVkZWZ3BTQUlGUXhIOVlILWZRMk1MVTZmUUxNRHNfRDUzQ2tlV2wtdWs2Yzl2aFJlY3dSMk1oT0JKRGFSVmNkVndBYk5rS04wSzJDc2dIQktUcHdPN185OVNrdV9USFhlUTlqd2hWNHlmNXF3Q3NDYlBYT3F2bVowODBrdmNyVTFZaE53dWtuejJuSDBYOHFVTFdsN3V6RnpwNzVFdHhpZzdrVmMxdWZmVUlJZm1rR2k2a0VydERLTjZjcmtTU1E1eU41TjZPNmFEQUd4anItZThxZkFrNW5mLVdBLWNSc3ZqaGJfZ1JwR0g1Vk1PeURmOXpHcFVFRk5abGFPQW15Q05OY2dqb3M2MlA1SnNzbFJhMjBIQ2pybF9JalljLWdqSXRWbGRpNi1BSE1rT2dVNnhsckhyNE5DRFdFMjVjb3pFcEpQcDNkV1JrUXliNElqaUFvQ1BLdnNYU0IyUUVhLTkxc0Q4QW1ZRUJQd3hWeU8xLTVQRlBVTUVJT0ZDQzVtMFFJNzNmaVFQTUlGeThEakVYZGdfa1kwdmxPeXlIbzc0c0NIbUE2Vnl1OGp1NFEyNWRWWHpvRkllVmE0R2JfdFA0bjJrYTJxUV9LMlVzUEk3VE1qeVN1SEVFX2k1ZHlTYUU1UG41enVNNFBzNU5ldmZjVDNDdlBPNjRROGYzNzhzY3NLemM5WE5iT0l0NkxZZktpWTFXY0k5RnhhNXI3LTFHMDB4MFZZNEh6VUhMa29OTXY3VGwtVTdKY0JIV3FHYXlOaENhX0lfN0hhUk1qMHFYU2t2Uk9uVTVIdGtNd3pHWkNEaE9Qbzh1UTlxcGRXQVl2NXNaRmhTbFpHeEZHMFJPUkpzRFhENU56b2JHM0RBbjBBYUZwZXpZVDQwd1oyR2RKZGZVOUU0cE9mRG1WRXpoQU05enB2cHFCekhEeE5jbmk4d3RHeG1XczVZYlZvUFB0eUFxRHpudEpKOU1ZQ3htZnlITjFVc3RHeWJ2ZzVjWC03d1hQMEFlcFRTTkxuVVQxNHBQSnA2UXZTbFlJNi14UHpGUjg3bmpmSnhmd1YwYmxoSXhmWHBrTklmRUlQeFV4SE1iWFlnNXF4cE9NdDJBd0hNSVZxd1c4WjBid2xRaHZfUnN6djQtTUN4dzN1M0tHM3RhdzdhTlplS1paRnRQNV8zbnU4bXdsUEtreHdIUjhQMTFEcWNzTmIyMlk1UjdtakdBRVZMZ0MxZGx6aGdYUGVOUV9zZkJZQ3F4NEpRaEx0RlJqeEliRlZGZlNSTzBsQ3VYVzg2Y0NkcmU3cV9jY3Vfc1lJU08wLWxSdU5mbUU2UlZQM2JPVGpHcmxHUEtFTFZnNGxqbEdJXy0wNm5UOEFydHBGMnQ4YVRhc1ZzeUt1STBNX1hMMl9fRnB5ZHJwcFpINWJPQUZXbnRvOGItbzRCeXMtOHpXWWdRNmF5RmdGek9jZDVsWE51bXM3dVp4aFo4RDhURzBYMjA3NlJkak04dGY4enBfSklfTzdXVmk4dENCWllvQ3ZleEEtTWpBb0liZGt3TF9YbkRpSllidnFKS3FHc25MQnNyY3R6azFiaDBZR1NVdld2NXNUV0NFMGtWSWNNcjdDekF1a1JfMzViRm54WVZlaDRMRWJEUGV3aV9mZjJGYXdZRHBTSDlBMlNsYWh5am5uejZodWxDNUNGbVBlOU95UFZOMWVrSXdBMmU2b0xKZ1BFU0M0LWxoa1NDN3FyR2NmdWxoTDNJVmNsYW1mZDFYRmlFMFlUSlJaS014aTdjVEJDeWN1ZmowTXBFVndHV19UaU1MRnRQY3YtZXROb3MtVnhWdk55X1BIRnBYVXhNd2lLT0tDSHFLQWMxazJicWFaTEpWSXQ2Wkw5YXFJN0todWNhV3FMUl9Mb2pGRk5sNnllOS1SVWJWcTdaTXZERU4xT25QQW5Ud1d2bU5qX01zNnlyU3FGWFY3a3FkTXdWQXliQUJIV1BfLWNsc0JUUmxRMVJrckFBRDFLR2lkYS1MOHNScmJPSWUtNHVFUHhNcWhFREhMUlhEUnJDVVV4ZWVkX1F4UmczVXRtaUNVVUNWYUlRZGhwSXhKZHhBNm1kTlA5S0otVUc1UVdveDhPYWVBUlNuXzVRQ0FUWkVlcEZIOHBDQTM4OG54YXBhN3VmeFAzdVZ1VElOVTA2ZDh6eGhRWkNONkhsZklLejQtU2VSX3BtOC1SSXIyX1lfdjdfUy1lVVh4RGhKZDZGVENJbzVxQVEyQWNqT3R3cC1wQ01ia2RneVlBUWhraHVob2VVcGM5X0UzZnBQT01PYnFJU3dQSVZLc0JvamIwZUhUMXM3a2szRHR4RHN5TU5XOFhnMVlTOU1BNnBCQThMdG9DLTZoV2ZXckVmamRnOHR4bkZ0UlhJbENBXzVoT2p1bU5yRG9Cc1pQMGxDVVJVU2hJVXFfSjlBNERmZlktb25tejVfZkpWbEgtTE1IUWI4MkVFNVE2R01HZmdVZ2UxbFhaaFo0UHBWRHdOLVN2M0dxZTFqa1BwTHFwTlRWR3o5R1VHYThLRDBjYXFPWWdJa00xNjhzSHhya0oyZTdBZS1Cc3dWN1RNRGcxcmt4SUQ4aXNMbFU5cWg2S1dQZEZTVFR5TUpmTTdxckF3SjhPMWZCVi1XRkRodF85STl2TGJ6SWJTVWpva19WeFl2a09GUnU2YVAwWmI0UFJnZnJLWVRBNlFQLXU3RzY5UFhmYnFtbTlqNWFrVFkzQVU4UkdTSmR0VDlGVkZzLUlESmp0UC1tSVY3R2VoZVQ4bUN4bHVLT2owNXpjTWhGQzU0RldiaW5hU04tb2lxOHVqNGxneVpmMmJkZzhxdFIyUVktb3dwRzk4UTl6NlM4b2pKYnNvOGtJdEVMd01KNXlJUTFlQ2NTV2VTalZ5emUyUkpQblJvV3lCc01vZ0s4dUNUZzdYcmNvMzljUkNkNTNFRGgteEtnYUNjMTNiZEhaWW5nMUI3b1dtQ3ZzLXNYVllXUTFQUTdCV3Q4RmVMM1I5NXNNaTVZYkdhWUI5clREd1ZubFBrbjlGR1VrT3c0VlVqQUQ0VE1qZzBKZEQ0YWlqYjNpOU9LV2dLQUxwN0U2NlMxNW8xM3AzeG1idzcyNzFXUTFmbmN1aTd4VmRfYmpFRXJrNk9yTkMzU2tfZ0Z2eDFVM0ZMVTU3bGpwZlpIZ0JidlV0aEVfWnBhVkdfTE9WZW5sbDh5TlZHcE5NdFAwemg4UmNRMVBTTEd4YzdxUTdlY3h2aDVqaTdGTWMta2E0MVdmUXpGV2laM29pUDJudmhrX2o5M1ZKTU5xVy1nVFdEaUF0VEZmWXg4NHJYUmhkYmRQM25aRzc3WEZxeDQtRjZpb0gyTmpoUm00UmJleFhibEY4NE9XaG1lc0liaTgwYVpyUi13UngtZTA4THdFWU9Vb2RlUTh6dW9VbG9BZnBlWHJBb0VVRHg1dmVFTmZzOXZZWF81TTItYzVYY29XTjF0Mi1BbzUxOC1pbkxEcDA3Z29RT3F4WGkzN05iOTliU0NfdGJENl9mQ0ZUUVNTM1pfYlpEMEpFN2xNbnBXT2hVcXg3WjRhZHRFSnpVa00xbWpEblBabWl5SWUtNE5DOUhqV2lVcEZTSFdJNFoxNm5Yd0MtOGhFZTJSQzlqV3B0VWxILXBVRjFXQWJLYTJyZ0wzb2hfRkhqaGFGZF9GdEprX3hQaWluWlBQQmQtdFNZdXlYTU5pYzFyOEdtRXRBM0NpdEl4eHZ2X0hiU1pwbkdaTm04YkNEQk9JRlNYQVV6WWszU0lIdFZGNzd2bzBnaXNDWWs0LTZ6TDFpZ2hiRDhYZFhLMVlHRDdXWU5rNE9qM1RGTy1CbGZKeGpmdkhKYmtjWTlFYUVnbUR0UzlOejE5a1dwRlpYaENoTWxVT1ZXVDdFSVVXWGRkOWhGREtxdmR1MUZLNE1pMXIzLUtHMzlITWlRNGprUURUY3BNamJ6TzFPMUZCVkVoYTI4RVhpRzk0bUQwTFI5Q29RNnpDdThwM2RJNFQwbWxGNHFVWkRkX0MyV2RreExYcEc5ZUN0YjJjUUF1WHY2WkdtR2JUV050QTBCTlBEcjdBMjJ4Y1dMZlRkZU5TTXNCQzVDVU9pYUc1SFdFbnc2NmwtbjB4Q2N3dlFJYWxHTWRKUndFSzlQUVh0emhtdTJQRGF1eDUtMjRxODFXSjU4ekhwbS1kQ1ljUkk0T2tkSXdtbzFpMTZnUG03RHNOSDJ3NmJHRVE0SkozbThBSS03NnR4czdrZHpCUVhsemhuQW9KdkNwZmRER0pZeHNTZ2JCTDR3R0M2dnk1NmtDZHlCVXpud0NCS1RHRjVtZ3hQWnBrcmhCRS1RWlM5c281Yl9YdmU0MEV1YzBEcFlzLXd2V1VwQ0VnZ3I2ZzAxRTJpLVMyRW16NDhXYm1EYjlmVFdJcjh4aHhqN1YxOXRoenRpT3lIMEJJeWJEMFNpSmZXRm1TRmN3NGxqcl9ReU5XaWVCel9IeUM3Z09mNXNtaU9WY3Q1clh3Vm8zZ1hkblY4bkFaWVdsa0dmbE9faFkxWnlWLU93alpCNjdybGNGa3RISU9MZENyTlBuZFMwQTNBSHcwOURsbzFzVXFCSXJZOGNZMTBrYkNHNGtjdUdMVkV5UXREbjlPZmY4VHUyZnRNbFlDVGhXY0hvQmZmRnpRMWh1ZmNPZUtqZ25pMzZ1VkxuVWkzYndlcVdSNDE4elo5bEwycnZuMFRZbndiV3lUZk54bDhhR0RRb2hQdEdXcl8yWDhnN0czRzlZTlk5ZG1vbUJ5SVZzZHNfeHVEYTdqN3RWeTFrMkNRWkc1cmhKSWFQZThfeG44NjhCbmdqUXhGUmJaQ3RlbkF4V1ktc0loaWNxUTVablpvYzJyZGxjWUEtOUhwNEhTZXBJMkd6MEZHWklLR3BqVEtWUVhPY3I0TG55cEtUX0lLVUxJSmJyZVYyN3VjclRwOFdlc1FzbWJyc2pRQ1AxNC1kc0RrcnhsOWdDajdXU1pHbHRWYk1GMlZzVm1OTG03VE1PTEUtcDVzYnd2V3JWdlZWeFp2OU95Tjl5c1FYRkV5MEJvRXhJeWljNHZ3dkE4RnhpaXJfLWcwenhtbjI2ZlVoTVlkSDUzazBOWFBqdXNleG13QjJsNG5LT1dsSnVHMUwwZEhQbXpDLWYxaF9raDJlX0hrT0tZcDc0bmNIem55WUNsVEZTZXJRT1lkdE0tLVh3R1JNaFJRQUZIYVhiNDRYZHBNeVdZczhNSmowYXBCXzV0NkpJT2J2M292UTN1cjRWME1FbkFlTXpxdTE2X1hlajg0bWRTSFd1b0ZvRFNvazVHQ2JfTThuX3Z0UC1kY3VSbUlySHhFeURlNTI1WlZGYjBxS0RNWFY4R3NlUXZTejhUa3drcC1yRGs2VHdudTdnY2REdy1zTDZ2MzNtQnhTNFEzcFdsTmZnTV9QbDdNNWg0Z0ZPVGd4RFplWjVhZ2x5YWxFS2tfNzRIdUFIS0tkdGQtUzFRU1Z1SS1QdHRMQkg1T293bnNCcHh0OWh4MVVRd2h5b18tQUxiUTNuYzgycmZVU1ZzcHhISExXMHR4bzVjNUNJRjVwQXkyT1BkalJwVUJNUHMtMkwyYjhrTk9Odm9JdkJDN3BLOEo4QlYwbzFGNlJudXJqZlR3aGFKMUtWNF9IS2NLSFRYRzE4QnE3a2lQNmU1b1hXQi1BQ3R6UzBNSVo1UmVhOVVoRnN1S0NmWGEtRUdOajZDQThKNEljLktHU3ZieFZzbEZvdmx5MlFqR2xoZURpdTYweER4Z1E0OHZYWUtnLURzaVE" + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:35 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "818", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:34 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "dd1d9c82-cd71-4b81-aa2a-7ee4be157415", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/backup-key564789157", + "deletedDate": 1635176615, + "scheduledPurgeDate": 1642952615, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/backup-key564789157/3b75c1fae8c74941b5bbe2d5311dd9b1", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "u8mAj63FUACHLK4SMlqpoaHdl11N2S_tP2Q-7VY7zuyyNRhyt07k68RIx-WYGSGfT7snVf2AC607tdj-MB-XWXY1qS7Un7fVBLotfLfPIPVi1e7KVnH1B6z08kYM4QQ_9iLM-u5IQKN9QLtYS8mN1s-plMesEpI7xNfaB1AqfkuwYqRy1DLq0zjZgZ6a_wq6F69ay5ELJmll82NJK4ufCsR3GHcxWyxFNfeXX9X2ymD1UJvz4yg4p4ByhBadDVrjqa1mClHaODfHiayuKK1CGc3JqGKLUHHm5VQarwvwO_HucppEoPVIRQgFaum52hqpmZQrQ9NwjRjHSQz0-3MzFQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176614, + "updated": 1635176614, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:36 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:34 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "23c3dfe1-5eef-4335-bfb1-773a6637967d", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:36 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:34 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f1ee7ab4-45c3-4b7a-9ec9-8ee1b1841bde", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:36 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:34 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "dc750880-1f59-43dd-a73b-afacc151fddc", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:36 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:35 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b99d4dea-6ae8-4df6-be8f-841a56dbb927", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:37 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:35 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "721e8847-c819-4725-a033-e275fdf30b41", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:37 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "818", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c25f7d0a-4a65-4ea3-9afb-45677c1b9538", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/backup-key564789157", + "deletedDate": 1635176615, + "scheduledPurgeDate": 1642952615, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/backup-key564789157/3b75c1fae8c74941b5bbe2d5311dd9b1", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "u8mAj63FUACHLK4SMlqpoaHdl11N2S_tP2Q-7VY7zuyyNRhyt07k68RIx-WYGSGfT7snVf2AC607tdj-MB-XWXY1qS7Un7fVBLotfLfPIPVi1e7KVnH1B6z08kYM4QQ_9iLM-u5IQKN9QLtYS8mN1s-plMesEpI7xNfaB1AqfkuwYqRy1DLq0zjZgZ6a_wq6F69ay5ELJmll82NJK4ufCsR3GHcxWyxFNfeXX9X2ymD1UJvz4yg4p4ByhBadDVrjqa1mClHaODfHiayuKK1CGc3JqGKLUHHm5VQarwvwO_HucppEoPVIRQgFaum52hqpmZQrQ9NwjRjHSQz0-3MzFQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176614, + "updated": 1635176614, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:37 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 15:43:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4a9deb34-82d6-477f-b0be-9a4ec4c0be67", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/backup-key564789157/?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/keys/backup-key564789157/?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:38 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "307", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "0c45eb21-ea4b-4c64-a88c-9017f193ccef", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "A key with (name/id) backup-key564789157 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:38 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "bc889052-a2bd-432c-a537-13ef809e7ef9", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/restore?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/restore?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "10471", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:45 GMT" + }, + "RequestBody": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuQWE0NHhTZ0hiM0ljR1VhX2w5bFlnNXlFZG05VXEyRGNzWFJyMVMyUXhGUmFna2prc1pJQ2w4SUEzWUVSZWYwazZfOGV1YV9sTFp2NEUwTUdIMDNfZGVGZXV4LTlrVHRiUW5kYzZoUmRVNlEyaXNUUE1nY1NiRmtGbVlLUUt4NmhpU3FHZHBpQ0d5MjR3NkREYUFPZm9fYl9xaEY3VkJnRWZuUGN6c3p4U2VuUEpGVnlrSmpBcWxvVFlxdEdaRDBoUFZxck1wNkRJMkFyRTJiVl9FbnF6U0pjT0FnLWhDdjR5UFp3SHFIMndIM0dfUXA2X3dJUnRsT0NzZ1NrRGtGVnpHOG1IcVB3T0N0SjZRMGllLXZ1YTlPZmlkeG1uOC1SVzJQcGV1bk9Deng2Z29YaW4xMFRWeWJ5YW1hY3NTQ21jT05ZQjdNOWpZYWMzMUxmMW5TWDF3LmVNU1BJTGo2bF9EZjdDNW1saDhQTFEuc0hNYXAzVWN0UEdzbUc5T3AxWnJJSHZ2d0kta3lPZmdGVXNheFhiTTJLOXNLUU5Ia1MyMW1ibndRUkQ2a3YzeHhuYU9RakRlTnBlSEFuXzlDLTg1OFNveTJITDNlOVNDbExmZ1RaWHRDS2R0RnUyVEJ5WVRLVzhpcldYMWFyckRlMHFRd1lkM3NpUHdzdHpfQ0NqbEZBQy02SEtjWFdMS1JId0tGVFVDcGhJNi1VNEtzVkFjc0FzVmNHaFZRSmlyZWYtUmZuSHpwQktCd0lQeS1kdnQ0NktGY1BSSEtUOVRHUFF1ckNzeHNyVFRabjBqVDZyZ3M3OGlLdjlSeTBkbWtWOGNqUGstTXhMbEFWWVk0dE0xU1YyTm9CNGllM1JtWkx3VkJmWjhKV3dpWDUxTDNxd2Jtdko2TDR1eC1XUnJVeXY4ajNDMWdoS3QtUnZiTHFYZnd3WDRRZ0pOOWctTW04c1JaMUgyaHN5dm45Y0JhRk9OdVctRWlkYmpMMVFPeTJueU1aanZrQ1lYRl9YbHdZTGl4aUNDOWxtaWE5MURUMm5uNGp4WmppV0RVN042Z3R4WjJ5UW55eVUzSDl5UUhMSnRyTUdrUm5sREQ3NHNiYTVrc20wU0hJYkdjNXVjWm1IVU5DdnlzTzU5eGc3ZGZLRFRYTEkzc2RackVjODlDSkhOYjZFWDlhb2NreWFNcWhBV0VqYXFwemthMEZBRDYwMWxPYmVlTFBZajUzZDdHWDRWWlk0ME1lSlEtLWdGeWFxWGotTnJfQ2xjMVZyRXQybnh2SU1qSXZ5djhjcno5ampxdjZtd3Y1RHVOYlhHcUc3c0FCRlQwYUJ5VE1pWlZuN0VlNTQ1eFJabmV3aEpLOUxnY1J3VUlwbE9aWkNvOWhVS3FjS2dQRnBUQ2w5QjB3UkdqZVEtX2poQWIxVkg0Tkhuek16VFJlN19vVmhSeEpZN3ZGQ0FmMHNLUEdjV1hRZTIzelQyQjNXSWlnUWNhWmM5d2MxM1JZU2JCX1RkNXY1NGZMVDBWU1JlcC0zWnM4YTREeV9uWnI4VmVFdEdwWmR2TExBUFpoV2hzSklfdTVtMVdweXBUU21NRFg4TGxORVltMnFtaVFIc1FiczNwV0pPd3RPWTRTUDN3LXU5MElvUlI1c0tKWWRRaC1peVBUemRRVVBNZGhBM2NxSTJFX0hOWHRfRkt4M2ppcWxiUE9iVUN6ZXJtQVlLYzZtNHJiVjVuX3lucHZFcExfR3NYeGRFM3Btc0Vma0FodGt6eFRmbkozRE9yeElneXJtT1ZNZzE0SHNLVmNpVXhMbFhweEhIV3pZWTEzcXlyekxYTFRRLTFEbDl5b0NmbWdZbjdlS3Fuanh6dUtDVzlUXzlIR2E3MlZCWTg0bGc0WnVaUHdldlhDNHd1UkVsSXdiTGNqYjVybE5TcVpnN2UxQkw4SWJYdTJzazBFa29EeXcya2FoNkVkblBPTzFHLW1JZEZHblVqamdTQWtfanM1R3VRNXFLV3RydnFRSVI3ZUFFTUF6eWZSdUM4WGJ2b0EtWF8xXzNkV3RlLXltMXF1OEMtZlV0RjFYWnR3MkJZVHZ3QnplUzh3VVRzYzN4Q0h3X3NDcHU2c0hZSnZOX3dNdldaRlAyY2I2S0NQOUdKdHlOeHRwM0lGc2tiUDNZUHFOY2xvWmFqdTdEck9GRXVRelRVSjhvSHRScWxrNE9HMUluOHhmbm5UX3NzaEM2Znl5M0dBbGNvQkpnTERaYTNJeE1odU50ZWpwaF9pejRZZnZ1UnRyME1PaklOWGMtaWdVandlMHc2NDN5MmJRZnNWNEtTLTlXbFZST2FMNFpmQzU5Ty0tT2lvcUtzcVcyQlhOMWxVTFpVakc1YXlHa1R2TDhzeldJUE84UVlTS3c1LUl4OEk3SHZjRGJpZUxoMUNCM19WaU92Y3RwbWp4NVZyWnByVVZKcnRzWm1hTkJ0NmdFZ2pfRDJTYUxVbzhsTi1UbjhJSmlqUUhJa2U0ZmsyVjUzQU9kcDBfcE5SMU54TXlDMnptUWpuUWpRbG9aSVVVTTNoc3dnVWtwbzRBTFltbllvc1hERFVXR0htT19Fck5yUWswb0RFNEMyZEhqV1RiaW9aVTIwRGRzMV9RS2FZQ2xYdDE5VFhjWS1EbnQ2b2dKVGNuMERsMTJ0dl9MeDYtVUIyMk1QWjNEY0p5WW1OU3lNNEtVRURycGRZUy1LWl8tRFdGdFNLSGhtNFRkWlFLQ3dJTkkzaUJMdVozTjFyUlZPUmVRQWNzbXB3VWZPcGQzUUdHRjJHMjFUcF9KN0p5WnA1VzNCV0hLdTBlUW9xdnZyNUxyX0Q4czVSbVgyaS00QW9EUEVmQ0FERE1MWTdIOEdSdmJyTWtERGk1V3pVdEhMd092bmJvcnB6am5pQ1ZacjBWNmU1TlZRejJSX25lbWVNcGFDTUlreXV2U24zVjhxMXUyRTB6ZXBTcUY1Tm5CR2VnTE8tcDg4anI2bUpjNF9hRmthZmFiRWpfMXJhOHRsaHdFN3ZKSF9ZdmpJWmctOHktUk5WT0NJSzljX2pHT0tRR3lLcTVpOUxkbExNcnhDSlE5clRGZGExUzlCX0RHRExVNW95cDZRenBUNy02M3hCdmc2b1M0bGVzWDZKNTJod3A1b1hVMDZPS05CT0lra0pPUXRTdmo0MDBjLVJjSkxWNDVJWWdQcXczMzRkdWJUWVpGNkk4ZHYwSnJDdFpyQ1ZhX2ZiSE5sQ0RpUHNHVTB6YTlWOF9sWUlHY1VDRDd1N0pTdV9TdTNJS3lpXzhKMTEyQjJyUWRtME5uME0wYXJDNlJqMHNCNklsNksxSmpJQmFEaWl4R1NzWFY3MGFsd3Q1M2JKRmlJdVlBaTJUOUZoMm4wZlBKR0VyOC1PTWExWVlQS1RvcU83dnJkRWU5dHVVS3c0TWJXeTM5OUNOenRFckhsUVgxZG1BUmNyR1lzVmU3ampTdmNJSEJ0bXhZLXoxcjJLaURrR1pSNzBDSk40cVpzTGJFVjNTNmVKODNzMW9qOTJmZS1nZ3NBLUdYalJhek8wSDk3VlNhOFlMWmYzb0QwNlpaUjQ1azRfNUZadnFaV09vSkNwWlVQZ0lHRFNDOHIybWpWeGp6QTJuVFQ5MXlWZVdOcEYzUk9SWEplYXppTXVVUHZWazZIODQtSGw1a1I4N1FKTG5vQmY2OVRIWDE2MEQtVjdiRFc0emVVMUt3UXBTMm83NGJ4d29JbXlqa25OODc4U29SV3pzYXVVdlNtNVVXT1k0VDBaWDFRN2JHeWNmNXBZMER1dU43U3o5aGRoRjZvQVI2U1RTa2tIakFCeURlNWU1VkJGV19xUkxFOUdUMkVEcFVrTlJ0bXJ4ZHlXbFNRdmNKX0tOOWplUzU0bTYzblpqNzREOGhIc3NPR0RjRnBWNV9xSjFtQUx2NWdKYWFyZ0lFYkZ5UzFPZUVCcFltbGFtNmZXZ2RqTmVLbXJJMjh4QlVUcExRc095QVVFQy0xN2kxN1ZhRTA5NmcyQmdHUTZSZlVqQlR1U0tCUHlxZFpWMlRDQ3ZRR1RudHdBOUctMk1NOHVFRXJlMmJaOWdXaVE1MlZxdlNBcWNlV25tTHpVbkwtMFpwX1dUMDNNak1yZTF5YWFGU0hLVHNHRHJ4U1NsU0Y0M1RjQ0xKWThBWm5ZaTFDbUxjTlU5c0w2dEJKMjU1bkJHcHRteUJyUWJHdkZtQ3lGVXJnWXV3cGFCLUFQY3V1VTdIYWNha0tEcWYwaUV3UFBvY0NsZXlMZmVrdjRZVk9RWGpHQzNONmNZV0ZlM08xS0htSG9nTTNta3VTYmUycjBvVlVfeTVSbWlITmJqU3NmM25ScDNLUE1ZcG8zQVNUZzlwMkFxdGFjN3IwVkZWZ3BTQUlGUXhIOVlILWZRMk1MVTZmUUxNRHNfRDUzQ2tlV2wtdWs2Yzl2aFJlY3dSMk1oT0JKRGFSVmNkVndBYk5rS04wSzJDc2dIQktUcHdPN185OVNrdV9USFhlUTlqd2hWNHlmNXF3Q3NDYlBYT3F2bVowODBrdmNyVTFZaE53dWtuejJuSDBYOHFVTFdsN3V6RnpwNzVFdHhpZzdrVmMxdWZmVUlJZm1rR2k2a0VydERLTjZjcmtTU1E1eU41TjZPNmFEQUd4anItZThxZkFrNW5mLVdBLWNSc3ZqaGJfZ1JwR0g1Vk1PeURmOXpHcFVFRk5abGFPQW15Q05OY2dqb3M2MlA1SnNzbFJhMjBIQ2pybF9JalljLWdqSXRWbGRpNi1BSE1rT2dVNnhsckhyNE5DRFdFMjVjb3pFcEpQcDNkV1JrUXliNElqaUFvQ1BLdnNYU0IyUUVhLTkxc0Q4QW1ZRUJQd3hWeU8xLTVQRlBVTUVJT0ZDQzVtMFFJNzNmaVFQTUlGeThEakVYZGdfa1kwdmxPeXlIbzc0c0NIbUE2Vnl1OGp1NFEyNWRWWHpvRkllVmE0R2JfdFA0bjJrYTJxUV9LMlVzUEk3VE1qeVN1SEVFX2k1ZHlTYUU1UG41enVNNFBzNU5ldmZjVDNDdlBPNjRROGYzNzhzY3NLemM5WE5iT0l0NkxZZktpWTFXY0k5RnhhNXI3LTFHMDB4MFZZNEh6VUhMa29OTXY3VGwtVTdKY0JIV3FHYXlOaENhX0lfN0hhUk1qMHFYU2t2Uk9uVTVIdGtNd3pHWkNEaE9Qbzh1UTlxcGRXQVl2NXNaRmhTbFpHeEZHMFJPUkpzRFhENU56b2JHM0RBbjBBYUZwZXpZVDQwd1oyR2RKZGZVOUU0cE9mRG1WRXpoQU05enB2cHFCekhEeE5jbmk4d3RHeG1XczVZYlZvUFB0eUFxRHpudEpKOU1ZQ3htZnlITjFVc3RHeWJ2ZzVjWC03d1hQMEFlcFRTTkxuVVQxNHBQSnA2UXZTbFlJNi14UHpGUjg3bmpmSnhmd1YwYmxoSXhmWHBrTklmRUlQeFV4SE1iWFlnNXF4cE9NdDJBd0hNSVZxd1c4WjBid2xRaHZfUnN6djQtTUN4dzN1M0tHM3RhdzdhTlplS1paRnRQNV8zbnU4bXdsUEtreHdIUjhQMTFEcWNzTmIyMlk1UjdtakdBRVZMZ0MxZGx6aGdYUGVOUV9zZkJZQ3F4NEpRaEx0RlJqeEliRlZGZlNSTzBsQ3VYVzg2Y0NkcmU3cV9jY3Vfc1lJU08wLWxSdU5mbUU2UlZQM2JPVGpHcmxHUEtFTFZnNGxqbEdJXy0wNm5UOEFydHBGMnQ4YVRhc1ZzeUt1STBNX1hMMl9fRnB5ZHJwcFpINWJPQUZXbnRvOGItbzRCeXMtOHpXWWdRNmF5RmdGek9jZDVsWE51bXM3dVp4aFo4RDhURzBYMjA3NlJkak04dGY4enBfSklfTzdXVmk4dENCWllvQ3ZleEEtTWpBb0liZGt3TF9YbkRpSllidnFKS3FHc25MQnNyY3R6azFiaDBZR1NVdld2NXNUV0NFMGtWSWNNcjdDekF1a1JfMzViRm54WVZlaDRMRWJEUGV3aV9mZjJGYXdZRHBTSDlBMlNsYWh5am5uejZodWxDNUNGbVBlOU95UFZOMWVrSXdBMmU2b0xKZ1BFU0M0LWxoa1NDN3FyR2NmdWxoTDNJVmNsYW1mZDFYRmlFMFlUSlJaS014aTdjVEJDeWN1ZmowTXBFVndHV19UaU1MRnRQY3YtZXROb3MtVnhWdk55X1BIRnBYVXhNd2lLT0tDSHFLQWMxazJicWFaTEpWSXQ2Wkw5YXFJN0todWNhV3FMUl9Mb2pGRk5sNnllOS1SVWJWcTdaTXZERU4xT25QQW5Ud1d2bU5qX01zNnlyU3FGWFY3a3FkTXdWQXliQUJIV1BfLWNsc0JUUmxRMVJrckFBRDFLR2lkYS1MOHNScmJPSWUtNHVFUHhNcWhFREhMUlhEUnJDVVV4ZWVkX1F4UmczVXRtaUNVVUNWYUlRZGhwSXhKZHhBNm1kTlA5S0otVUc1UVdveDhPYWVBUlNuXzVRQ0FUWkVlcEZIOHBDQTM4OG54YXBhN3VmeFAzdVZ1VElOVTA2ZDh6eGhRWkNONkhsZklLejQtU2VSX3BtOC1SSXIyX1lfdjdfUy1lVVh4RGhKZDZGVENJbzVxQVEyQWNqT3R3cC1wQ01ia2RneVlBUWhraHVob2VVcGM5X0UzZnBQT01PYnFJU3dQSVZLc0JvamIwZUhUMXM3a2szRHR4RHN5TU5XOFhnMVlTOU1BNnBCQThMdG9DLTZoV2ZXckVmamRnOHR4bkZ0UlhJbENBXzVoT2p1bU5yRG9Cc1pQMGxDVVJVU2hJVXFfSjlBNERmZlktb25tejVfZkpWbEgtTE1IUWI4MkVFNVE2R01HZmdVZ2UxbFhaaFo0UHBWRHdOLVN2M0dxZTFqa1BwTHFwTlRWR3o5R1VHYThLRDBjYXFPWWdJa00xNjhzSHhya0oyZTdBZS1Cc3dWN1RNRGcxcmt4SUQ4aXNMbFU5cWg2S1dQZEZTVFR5TUpmTTdxckF3SjhPMWZCVi1XRkRodF85STl2TGJ6SWJTVWpva19WeFl2a09GUnU2YVAwWmI0UFJnZnJLWVRBNlFQLXU3RzY5UFhmYnFtbTlqNWFrVFkzQVU4UkdTSmR0VDlGVkZzLUlESmp0UC1tSVY3R2VoZVQ4bUN4bHVLT2owNXpjTWhGQzU0RldiaW5hU04tb2lxOHVqNGxneVpmMmJkZzhxdFIyUVktb3dwRzk4UTl6NlM4b2pKYnNvOGtJdEVMd01KNXlJUTFlQ2NTV2VTalZ5emUyUkpQblJvV3lCc01vZ0s4dUNUZzdYcmNvMzljUkNkNTNFRGgteEtnYUNjMTNiZEhaWW5nMUI3b1dtQ3ZzLXNYVllXUTFQUTdCV3Q4RmVMM1I5NXNNaTVZYkdhWUI5clREd1ZubFBrbjlGR1VrT3c0VlVqQUQ0VE1qZzBKZEQ0YWlqYjNpOU9LV2dLQUxwN0U2NlMxNW8xM3AzeG1idzcyNzFXUTFmbmN1aTd4VmRfYmpFRXJrNk9yTkMzU2tfZ0Z2eDFVM0ZMVTU3bGpwZlpIZ0JidlV0aEVfWnBhVkdfTE9WZW5sbDh5TlZHcE5NdFAwemg4UmNRMVBTTEd4YzdxUTdlY3h2aDVqaTdGTWMta2E0MVdmUXpGV2laM29pUDJudmhrX2o5M1ZKTU5xVy1nVFdEaUF0VEZmWXg4NHJYUmhkYmRQM25aRzc3WEZxeDQtRjZpb0gyTmpoUm00UmJleFhibEY4NE9XaG1lc0liaTgwYVpyUi13UngtZTA4THdFWU9Vb2RlUTh6dW9VbG9BZnBlWHJBb0VVRHg1dmVFTmZzOXZZWF81TTItYzVYY29XTjF0Mi1BbzUxOC1pbkxEcDA3Z29RT3F4WGkzN05iOTliU0NfdGJENl9mQ0ZUUVNTM1pfYlpEMEpFN2xNbnBXT2hVcXg3WjRhZHRFSnpVa00xbWpEblBabWl5SWUtNE5DOUhqV2lVcEZTSFdJNFoxNm5Yd0MtOGhFZTJSQzlqV3B0VWxILXBVRjFXQWJLYTJyZ0wzb2hfRkhqaGFGZF9GdEprX3hQaWluWlBQQmQtdFNZdXlYTU5pYzFyOEdtRXRBM0NpdEl4eHZ2X0hiU1pwbkdaTm04YkNEQk9JRlNYQVV6WWszU0lIdFZGNzd2bzBnaXNDWWs0LTZ6TDFpZ2hiRDhYZFhLMVlHRDdXWU5rNE9qM1RGTy1CbGZKeGpmdkhKYmtjWTlFYUVnbUR0UzlOejE5a1dwRlpYaENoTWxVT1ZXVDdFSVVXWGRkOWhGREtxdmR1MUZLNE1pMXIzLUtHMzlITWlRNGprUURUY3BNamJ6TzFPMUZCVkVoYTI4RVhpRzk0bUQwTFI5Q29RNnpDdThwM2RJNFQwbWxGNHFVWkRkX0MyV2RreExYcEc5ZUN0YjJjUUF1WHY2WkdtR2JUV050QTBCTlBEcjdBMjJ4Y1dMZlRkZU5TTXNCQzVDVU9pYUc1SFdFbnc2NmwtbjB4Q2N3dlFJYWxHTWRKUndFSzlQUVh0emhtdTJQRGF1eDUtMjRxODFXSjU4ekhwbS1kQ1ljUkk0T2tkSXdtbzFpMTZnUG03RHNOSDJ3NmJHRVE0SkozbThBSS03NnR4czdrZHpCUVhsemhuQW9KdkNwZmRER0pZeHNTZ2JCTDR3R0M2dnk1NmtDZHlCVXpud0NCS1RHRjVtZ3hQWnBrcmhCRS1RWlM5c281Yl9YdmU0MEV1YzBEcFlzLXd2V1VwQ0VnZ3I2ZzAxRTJpLVMyRW16NDhXYm1EYjlmVFdJcjh4aHhqN1YxOXRoenRpT3lIMEJJeWJEMFNpSmZXRm1TRmN3NGxqcl9ReU5XaWVCel9IeUM3Z09mNXNtaU9WY3Q1clh3Vm8zZ1hkblY4bkFaWVdsa0dmbE9faFkxWnlWLU93alpCNjdybGNGa3RISU9MZENyTlBuZFMwQTNBSHcwOURsbzFzVXFCSXJZOGNZMTBrYkNHNGtjdUdMVkV5UXREbjlPZmY4VHUyZnRNbFlDVGhXY0hvQmZmRnpRMWh1ZmNPZUtqZ25pMzZ1VkxuVWkzYndlcVdSNDE4elo5bEwycnZuMFRZbndiV3lUZk54bDhhR0RRb2hQdEdXcl8yWDhnN0czRzlZTlk5ZG1vbUJ5SVZzZHNfeHVEYTdqN3RWeTFrMkNRWkc1cmhKSWFQZThfeG44NjhCbmdqUXhGUmJaQ3RlbkF4V1ktc0loaWNxUTVablpvYzJyZGxjWUEtOUhwNEhTZXBJMkd6MEZHWklLR3BqVEtWUVhPY3I0TG55cEtUX0lLVUxJSmJyZVYyN3VjclRwOFdlc1FzbWJyc2pRQ1AxNC1kc0RrcnhsOWdDajdXU1pHbHRWYk1GMlZzVm1OTG03VE1PTEUtcDVzYnd2V3JWdlZWeFp2OU95Tjl5c1FYRkV5MEJvRXhJeWljNHZ3dkE4RnhpaXJfLWcwenhtbjI2ZlVoTVlkSDUzazBOWFBqdXNleG13QjJsNG5LT1dsSnVHMUwwZEhQbXpDLWYxaF9raDJlX0hrT0tZcDc0bmNIem55WUNsVEZTZXJRT1lkdE0tLVh3R1JNaFJRQUZIYVhiNDRYZHBNeVdZczhNSmowYXBCXzV0NkpJT2J2M292UTN1cjRWME1FbkFlTXpxdTE2X1hlajg0bWRTSFd1b0ZvRFNvazVHQ2JfTThuX3Z0UC1kY3VSbUlySHhFeURlNTI1WlZGYjBxS0RNWFY4R3NlUXZTejhUa3drcC1yRGs2VHdudTdnY2REdy1zTDZ2MzNtQnhTNFEzcFdsTmZnTV9QbDdNNWg0Z0ZPVGd4RFplWjVhZ2x5YWxFS2tfNzRIdUFIS0tkdGQtUzFRU1Z1SS1QdHRMQkg1T293bnNCcHh0OWh4MVVRd2h5b18tQUxiUTNuYzgycmZVU1ZzcHhISExXMHR4bzVjNUNJRjVwQXkyT1BkalJwVUJNUHMtMkwyYjhrTk9Odm9JdkJDN3BLOEo4QlYwbzFGNlJudXJqZlR3aGFKMUtWNF9IS2NLSFRYRzE4QnE3a2lQNmU1b1hXQi1BQ3R6UzBNSVo1UmVhOVVoRnN1S0NmWGEtRUdOajZDQThKNEljLktHU3ZieFZzbEZvdmx5MlFqR2xoZURpdTYweER4Z1E0OHZYWUtnLURzaVE" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "682", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "7a7293fe-4805-4a7d-a048-ea688a2bc7c2", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/backup-key564789157/3b75c1fae8c74941b5bbe2d5311dd9b1", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "u8mAj63FUACHLK4SMlqpoaHdl11N2S_tP2Q-7VY7zuyyNRhyt07k68RIx-WYGSGfT7snVf2AC607tdj-MB-XWXY1qS7Un7fVBLotfLfPIPVi1e7KVnH1B6z08kYM4QQ_9iLM-u5IQKN9QLtYS8mN1s-plMesEpI7xNfaB1AqfkuwYqRy1DLq0zjZgZ6a_wq6F69ay5ELJmll82NJK4ufCsR3GHcxWyxFNfeXX9X2ymD1UJvz4yg4p4ByhBadDVrjqa1mClHaODfHiayuKK1CGc3JqGKLUHHm5VQarwvwO_HucppEoPVIRQgFaum52hqpmZQrQ9NwjRjHSQz0-3MzFQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176614, + "updated": 1635176614, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/backup-key564789157/?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/keys/backup-key564789157/?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:46 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "682", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "02107200-cc2a-4455-8d27-807e45be0555", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/backup-key564789157/3b75c1fae8c74941b5bbe2d5311dd9b1", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "u8mAj63FUACHLK4SMlqpoaHdl11N2S_tP2Q-7VY7zuyyNRhyt07k68RIx-WYGSGfT7snVf2AC607tdj-MB-XWXY1qS7Un7fVBLotfLfPIPVi1e7KVnH1B6z08kYM4QQ_9iLM-u5IQKN9QLtYS8mN1s-plMesEpI7xNfaB1AqfkuwYqRy1DLq0zjZgZ6a_wq6F69ay5ELJmll82NJK4ufCsR3GHcxWyxFNfeXX9X2ymD1UJvz4yg4p4ByhBadDVrjqa1mClHaODfHiayuKK1CGc3JqGKLUHHm5VQarwvwO_HucppEoPVIRQgFaum52hqpmZQrQ9NwjRjHSQz0-3MzFQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176614, + "updated": 1635176614, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:46 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "818", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4883d3fa-4bf9-4441-a3ef-3f30b32cc889", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/backup-key564789157", + "deletedDate": 1635176625, + "scheduledPurgeDate": 1642952625, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/backup-key564789157/3b75c1fae8c74941b5bbe2d5311dd9b1", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "u8mAj63FUACHLK4SMlqpoaHdl11N2S_tP2Q-7VY7zuyyNRhyt07k68RIx-WYGSGfT7snVf2AC607tdj-MB-XWXY1qS7Un7fVBLotfLfPIPVi1e7KVnH1B6z08kYM4QQ_9iLM-u5IQKN9QLtYS8mN1s-plMesEpI7xNfaB1AqfkuwYqRy1DLq0zjZgZ6a_wq6F69ay5ELJmll82NJK4ufCsR3GHcxWyxFNfeXX9X2ymD1UJvz4yg4p4ByhBadDVrjqa1mClHaODfHiayuKK1CGc3JqGKLUHHm5VQarwvwO_HucppEoPVIRQgFaum52hqpmZQrQ9NwjRjHSQz0-3MzFQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176614, + "updated": 1635176614, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:46 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4804a8f1-1f4d-4c92-ae7f-0d4268793924", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:46 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "65549947-3fef-4a64-8354-904b6c20a5cb", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:46 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f883ea50-fada-44c2-9f00-7f6c2a7dbd17", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:47 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c27ad053-783b-4491-96ea-1f329e76d628", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:47 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "87", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "46f33ea9-62a5-4f32-a3bd-582fa70d3253", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: backup-key564789157" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:47 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "818", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4f59badf-6562-4102-8417-08b376638ce6", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/backup-key564789157", + "deletedDate": 1635176625, + "scheduledPurgeDate": 1642952625, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/backup-key564789157/3b75c1fae8c74941b5bbe2d5311dd9b1", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "u8mAj63FUACHLK4SMlqpoaHdl11N2S_tP2Q-7VY7zuyyNRhyt07k68RIx-WYGSGfT7snVf2AC607tdj-MB-XWXY1qS7Un7fVBLotfLfPIPVi1e7KVnH1B6z08kYM4QQ_9iLM-u5IQKN9QLtYS8mN1s-plMesEpI7xNfaB1AqfkuwYqRy1DLq0zjZgZ6a_wq6F69ay5ELJmll82NJK4ufCsR3GHcxWyxFNfeXX9X2ymD1UJvz4yg4p4ByhBadDVrjqa1mClHaODfHiayuKK1CGc3JqGKLUHHm5VQarwvwO_HucppEoPVIRQgFaum52hqpmZQrQ9NwjRjHSQz0-3MzFQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176614, + "updated": 1635176614, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/backup-key564789157?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/backup-key564789157?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:48 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 15:43:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "90d2e18c-192c-4118-b7ce-8788ec347a92", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestCreateECKey/TestCreateECKey_HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestCreateECKey/TestCreateECKey_HSM.json new file mode 100644 index 000000000000..a70029f62a5c --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestCreateECKey/TestCreateECKey_HSM.json @@ -0,0 +1,44 @@ +{ + "Entries": [ + { + "RequestUri": "https://rosebudhsm.managedhsm.azure.net/keys/key1053998307/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key1053998307/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "12", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:44 GMT" + }, + "RequestBody": { + "kty": "EC" + }, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "189", + "Content-Security-Policy": "default-src \u0027self\u0027", + "Content-Type": "application/json; charset=utf-8", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "x-ms-request-id": "5ac61918-35bc-11ec-b248-000d3a706e2f", + "x-ms-server-latency": "1" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "Found token with aud=https://vault.azure.net, but expected aud=https://managedhsm.azure.net (Activity ID: 5ac61918-35bc-11ec-b248-000d3a706e2f)" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestCreateECKey/TestCreateECKey_NON-HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestCreateECKey/TestCreateECKey_NON-HSM.json new file mode 100644 index 000000000000..fcbed949cdc0 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestCreateECKey/TestCreateECKey_NON-HSM.json @@ -0,0 +1,392 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3984012801/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key3984012801/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "12", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:41 GMT" + }, + "RequestBody": { + "kty": "EC" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "396", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b435d053-2087-4a80-8ac5-b9ec7308403b", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3984012801/7dd4a1e3b980428b98fb3b4b9786d159", + "kty": "EC", + "key_ops": [ + "sign", + "verify" + ], + "crv": "P-256", + "x": "kXSDIJCd7XELm5qkfiEsAQBKk9HgT552b1EeByKQM10", + "y": "z-rTRyN-oAPhBFzuB-tyzy4dJLq0NpqBhCCVk16ruwk" + }, + "attributes": { + "enabled": true, + "created": 1635184361, + "updated": 1635184361, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3984012801?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key3984012801?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:42 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "526", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4afb43fc-e96d-431f-be0a-6051d6cc5b6e", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3984012801", + "deletedDate": 1635184361, + "scheduledPurgeDate": 1635789161, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3984012801/7dd4a1e3b980428b98fb3b4b9786d159", + "kty": "EC", + "key_ops": [ + "sign", + "verify" + ], + "crv": "P-256", + "x": "kXSDIJCd7XELm5qkfiEsAQBKk9HgT552b1EeByKQM10", + "y": "z-rTRyN-oAPhBFzuB-tyzy4dJLq0NpqBhCCVk16ruwk" + }, + "attributes": { + "enabled": true, + "created": 1635184361, + "updated": 1635184361, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3984012801?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3984012801?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:42 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "9e63dd22-6735-4875-a872-4a874d8c36f2", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3984012801" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3984012801?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3984012801?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:42 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "5f375015-103c-4b62-88f3-5b0a15db48d9", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3984012801" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3984012801?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3984012801?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:42 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "16ce4692-2da3-4d1b-a0b6-3d48966f4225", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3984012801" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3984012801?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3984012801?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:42 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:42 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "134d58a7-b47f-4128-b066-ee3136d80791", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3984012801" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3984012801?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3984012801?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:43 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:42 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "cf1f2d0b-2a59-4d82-ba57-f92831bbc257", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3984012801" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3984012801?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3984012801?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:43 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "526", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:42 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "92011c53-3eda-4948-9cfd-b4630694438a", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3984012801", + "deletedDate": 1635184361, + "scheduledPurgeDate": 1635789161, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3984012801/7dd4a1e3b980428b98fb3b4b9786d159", + "kty": "EC", + "key_ops": [ + "sign", + "verify" + ], + "crv": "P-256", + "x": "kXSDIJCd7XELm5qkfiEsAQBKk9HgT552b1EeByKQM10", + "y": "z-rTRyN-oAPhBFzuB-tyzy4dJLq0NpqBhCCVk16ruwk" + }, + "attributes": { + "enabled": true, + "created": 1635184361, + "updated": 1635184361, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3984012801?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key3984012801?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:43 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 17:52:42 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "30865cfc-5f2b-4abc-ab0d-7d52c60d3479", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestCreateKeyRSA/TestCreateKeyRSA_HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestCreateKeyRSA/TestCreateKeyRSA_HSM.json new file mode 100644 index 000000000000..ae2f2955806b --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestCreateKeyRSA/TestCreateKeyRSA_HSM.json @@ -0,0 +1,44 @@ +{ + "Entries": [ + { + "RequestUri": "https://rosebudhsm.managedhsm.azure.net/keys/key2103710935/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key2103710935/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:41 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "189", + "Content-Security-Policy": "default-src \u0027self\u0027", + "Content-Type": "application/json; charset=utf-8", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "x-ms-request-id": "594cd086-35bc-11ec-b248-000d3a706e2f", + "x-ms-server-latency": "1" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "Found token with aud=https://vault.azure.net, but expected aud=https://managedhsm.azure.net (Activity ID: 594cd086-35bc-11ec-b248-000d3a706e2f)" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/recordings/TestCreateKeyRSA.json b/sdk/keyvault/azkeys/testdata/recordings/TestCreateKeyRSA/TestCreateKeyRSA_NON-HSM.json similarity index 60% rename from sdk/keyvault/azkeys/recordings/TestCreateKeyRSA.json rename to sdk/keyvault/azkeys/testdata/recordings/TestCreateKeyRSA/TestCreateKeyRSA_NON-HSM.json index 9fa7c05c7f7b..f62159ce32e4 100644 --- a/sdk/keyvault/azkeys/recordings/TestCreateKeyRSA.json +++ b/sdk/keyvault/azkeys/testdata/recordings/TestCreateKeyRSA/TestCreateKeyRSA_NON-HSM.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1947311862/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3359961573/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key1947311862/create?api-version=7.2", + ":path": "/keys/key3359961573/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "13", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:55 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:36 GMT" }, "RequestBody": { "kty": "RSA" @@ -22,22 +22,22 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "686", + "Content-Length": "685", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:53 GMT", + "Date": "Mon, 25 Oct 2021 17:52:35 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9332d8bf-1e4c-487b-8f45-d419b59697f3", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "310e7ea8-1f8a-4003-9c54-dbdd6079b938", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://seankane.vault.azure.net/keys/key1947311862/8e8a3d9225124c85b380caa0fe13a8ae", + "kid": "https://rosebud.vault.azure.net/keys/key3359961573/49841afc58ef40808cef7b651bbe6032", "kty": "RSA", "key_ops": [ "encrypt", @@ -47,25 +47,25 @@ "wrapKey", "unwrapKey" ], - "n": "u3B8vJwz-kdMpHSkauV18eU_WPQ4Pkj0UEdVEbF5CIv6H7OtfKLEw6SYHDTpZcSrPhVXaxYbk5eSkWWYoObWlJjw0eZmVjaUGzgm2UP0NBnRg_A0FMvvhdwR8nJhNVaSUHaYnTOtJcMz9eyvr1tUIDajrqWX--iWQE0iT0o9I3Tb3_tJkXUoTVd-UGad1d7KINS5RJvVJ5PgEKVhPDQG1lsSEI7ODR--jDcUpom2tWztrlq65GpfPeXXOskbgCPPAkC4yFOXHPt8uBagAGn-La5hdt2C-Rcp3opqCaEjCeOFNm6NnwP5wvgZCde_vK1lWg9Eq9TFrxqGWjZKp4Z1EQ", + "n": "xq-ydmSq6BQ1a_fXhk_w4xx0EJ0kH_mfmbyGgEyT_dL-FdYrAGTrc3mkx7ncksg4P7UTqAV5CcixNg8SWNbv2tlIiDOAvL62ijfAk6ypNJLUu1lXYqdaSFQAhxt8JJ9LziR9osrRbunXfKjhcH1U6zwfFNT0vDlQCn6bnbIe3lJnZeWbBOfwRET-TR6VGNPNOQJH2BqkOctQTS4UVXvH4w2XJZ6-Eo1qjt0ArIPXWQQVcWRv2ggM-aVzytUsRgpfuufmZOwhAFZMC3-yxDKpL-CbgAkL9pCYdSunorV_q2CHt0VfisdwxpTnJhY8Xj16sHfkc1Tyavt5zXMMrg6gMQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227253, - "updated": 1634227253, + "created": 1635184356, + "updated": 1635184356, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1947311862hsm/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3359961573hsm/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key1947311862hsm/create?api-version=7.2", + ":path": "/keys/key3359961573hsm/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -73,7 +73,7 @@ "Content-Length": "17", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:56 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:36 GMT" }, "RequestBody": { "kty": "RSA-HSM" @@ -81,22 +81,22 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "695", + "Content-Length": "694", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:53 GMT", + "Date": "Mon, 25 Oct 2021 17:52:35 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "47504126-5d73-4f24-a9ab-33045eb6eedd", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a9c1a235-e860-4a6a-b99e-20821a557372", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://seankane.vault.azure.net/keys/key1947311862hsm/24fc502b1bdb4bb799765e6a94220134", + "kid": "https://rosebud.vault.azure.net/keys/key3359961573hsm/33f21197a52e474a9e0a28b1504dde2c", "kty": "RSA-HSM", "key_ops": [ "encrypt", @@ -106,55 +106,55 @@ "wrapKey", "unwrapKey" ], - "n": "y3zFD3Mavnf5iYmNuFAaNwzPMCwXCpNGzFe4SADsf4qRYuKEhXt0slqc_ELWKG9aCRfnCLZlodZSdrcve2SrpkayXKxbuFWIb2Fe4v3jxBgNh84GfQNwT-HoOS2FF4ftN4yrj3hpcqBuZGSlKSJVHmLAYerDAAJG5cd0uxDQx4iP65I2A0LuwewJLtCogdFqpuoiJA45dxNBv-_kzc4vDp0yhV2Gigi0zct4FlOcVsmnSl0qw84igXKOLmpsB_1RjCbbJ1H7oQ3Mzngal8GJ7XuvIkcYwQ_OhNyrF8TSwReLskAeHOzD3WsY9Hyun5uxNiARV1rmi6De5ZHryCv5UQ", + "n": "jExYLlRKRSm-Ui8WJCb5ARdalFCt1_uuzUo9ljL07Ve6jHSYyX2KNBmG0FCVhh4adA6oL2LkVKnKLByNfRPJ99zo-LdrNZGXe01bnPiL0dmb83A0eiZkaMGP4QWKJyd5CKPo7ZHO69nhsac8c9AyIh85z-6wdQ_S3NzH2C6g1Lw9216aakb19KpaPv5pBKgf99qRE62UIZiDNiO6G41OG2_YensMVkjD7p9ulr1pFQMaUcGzBZKuk-jHsvv16o7Fw9wAU45LpOf9oOffDz1QMWd5LKmGlBbJcnQPiFYOdNdWF2usEDYC95t1ZrjMd2TNJlM0vN4ZVyJAfNDOThzQNw", "e": "AAEAAQ" }, "attributes": { "enabled": true, - "created": 1634227254, - "updated": 1634227254, + "created": 1635184356, + "updated": 1635184356, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1947311862?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3359961573?api-version=7.3-preview", "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", ":method": "DELETE", - ":path": "/keys/key1947311862?api-version=7.2", + ":path": "/keys/key3359961573?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:56 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:37 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "817", + "Content-Length": "815", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:54 GMT", + "Date": "Mon, 25 Oct 2021 17:52:36 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "75030ca0-baa1-4c96-9496-45d1f3e550ca", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "36a86128-3fc3-4cfe-88d8-5382ef9ae415", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key1947311862", - "deletedDate": 1634227254, - "scheduledPurgeDate": 1634832054, + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3359961573", + "deletedDate": 1635184356, + "scheduledPurgeDate": 1635789156, "key": { - "kid": "https://seankane.vault.azure.net/keys/key1947311862/8e8a3d9225124c85b380caa0fe13a8ae", + "kid": "https://rosebud.vault.azure.net/keys/key3359961573/49841afc58ef40808cef7b651bbe6032", "kty": "RSA", "key_ops": [ "encrypt", @@ -164,31 +164,31 @@ "wrapKey", "unwrapKey" ], - "n": "u3B8vJwz-kdMpHSkauV18eU_WPQ4Pkj0UEdVEbF5CIv6H7OtfKLEw6SYHDTpZcSrPhVXaxYbk5eSkWWYoObWlJjw0eZmVjaUGzgm2UP0NBnRg_A0FMvvhdwR8nJhNVaSUHaYnTOtJcMz9eyvr1tUIDajrqWX--iWQE0iT0o9I3Tb3_tJkXUoTVd-UGad1d7KINS5RJvVJ5PgEKVhPDQG1lsSEI7ODR--jDcUpom2tWztrlq65GpfPeXXOskbgCPPAkC4yFOXHPt8uBagAGn-La5hdt2C-Rcp3opqCaEjCeOFNm6NnwP5wvgZCde_vK1lWg9Eq9TFrxqGWjZKp4Z1EQ", + "n": "xq-ydmSq6BQ1a_fXhk_w4xx0EJ0kH_mfmbyGgEyT_dL-FdYrAGTrc3mkx7ncksg4P7UTqAV5CcixNg8SWNbv2tlIiDOAvL62ijfAk6ypNJLUu1lXYqdaSFQAhxt8JJ9LziR9osrRbunXfKjhcH1U6zwfFNT0vDlQCn6bnbIe3lJnZeWbBOfwRET-TR6VGNPNOQJH2BqkOctQTS4UVXvH4w2XJZ6-Eo1qjt0ArIPXWQQVcWRv2ggM-aVzytUsRgpfuufmZOwhAFZMC3-yxDKpL-CbgAkL9pCYdSunorV_q2CHt0VfisdwxpTnJhY8Xj16sHfkc1Tyavt5zXMMrg6gMQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227253, - "updated": 1634227253, + "created": 1635184356, + "updated": 1635184356, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862?api-version=7.2", + ":path": "/deletedkeys/key3359961573?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:57 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:37 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -196,37 +196,37 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:54 GMT", + "Date": "Mon, 25 Oct 2021 17:52:36 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "234abd09-8dab-48b7-ba8a-ccc4cd6a60d8", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f52cf9d0-ed1f-4c56-8255-9e6c5efba0d5", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862" + "message": "Deleted Key not found: key3359961573" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862?api-version=7.2", + ":path": "/deletedkeys/key3359961573?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:57 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:37 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -234,37 +234,37 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:54 GMT", + "Date": "Mon, 25 Oct 2021 17:52:36 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "326e51f7-bfac-4a0e-a21e-abd936bac8c3", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "27e5ab74-9efd-410a-bc6c-97542072569f", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862" + "message": "Deleted Key not found: key3359961573" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862?api-version=7.2", + ":path": "/deletedkeys/key3359961573?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:57 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:38 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -272,99 +272,61 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:54 GMT", + "Date": "Mon, 25 Oct 2021 17:52:36 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "80629606-49f7-454f-b3e6-9181d1fb9637", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "e6a3620f-3083-4d00-a7ff-9ec951629498", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862" + "message": "Deleted Key not found: key3359961573" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862?api-version=7.2", + ":path": "/deletedkeys/key3359961573?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:57 GMT" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "81", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "12d88aca-b2a3-4ad5-a9ec-1c5f3ee816a1", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862?api-version=7.2", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key1947311862?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:58 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:38 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "817", + "Content-Length": "815", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:56 GMT", + "Date": "Mon, 25 Oct 2021 17:52:37 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d65b6da2-a6c2-4f4d-a722-09781ddb020a", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8a6eec45-f48e-4fae-91d4-8fce475a1991", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key1947311862", - "deletedDate": 1634227254, - "scheduledPurgeDate": 1634832054, + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3359961573", + "deletedDate": 1635184356, + "scheduledPurgeDate": 1635789156, "key": { - "kid": "https://seankane.vault.azure.net/keys/key1947311862/8e8a3d9225124c85b380caa0fe13a8ae", + "kid": "https://rosebud.vault.azure.net/keys/key3359961573/49841afc58ef40808cef7b651bbe6032", "kty": "RSA", "key_ops": [ "encrypt", @@ -374,86 +336,86 @@ "wrapKey", "unwrapKey" ], - "n": "u3B8vJwz-kdMpHSkauV18eU_WPQ4Pkj0UEdVEbF5CIv6H7OtfKLEw6SYHDTpZcSrPhVXaxYbk5eSkWWYoObWlJjw0eZmVjaUGzgm2UP0NBnRg_A0FMvvhdwR8nJhNVaSUHaYnTOtJcMz9eyvr1tUIDajrqWX--iWQE0iT0o9I3Tb3_tJkXUoTVd-UGad1d7KINS5RJvVJ5PgEKVhPDQG1lsSEI7ODR--jDcUpom2tWztrlq65GpfPeXXOskbgCPPAkC4yFOXHPt8uBagAGn-La5hdt2C-Rcp3opqCaEjCeOFNm6NnwP5wvgZCde_vK1lWg9Eq9TFrxqGWjZKp4Z1EQ", + "n": "xq-ydmSq6BQ1a_fXhk_w4xx0EJ0kH_mfmbyGgEyT_dL-FdYrAGTrc3mkx7ncksg4P7UTqAV5CcixNg8SWNbv2tlIiDOAvL62ijfAk6ypNJLUu1lXYqdaSFQAhxt8JJ9LziR9osrRbunXfKjhcH1U6zwfFNT0vDlQCn6bnbIe3lJnZeWbBOfwRET-TR6VGNPNOQJH2BqkOctQTS4UVXvH4w2XJZ6-Eo1qjt0ArIPXWQQVcWRv2ggM-aVzytUsRgpfuufmZOwhAFZMC3-yxDKpL-CbgAkL9pCYdSunorV_q2CHt0VfisdwxpTnJhY8Xj16sHfkc1Tyavt5zXMMrg6gMQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227253, - "updated": 1634227253, + "created": 1635184356, + "updated": 1635184356, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573?api-version=7.3-preview", "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", ":method": "DELETE", - ":path": "/deletedkeys/key1947311862?api-version=7.2", + ":path": "/deletedkeys/key3359961573?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:58 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:38 GMT" }, "RequestBody": null, "StatusCode": 204, "ResponseHeaders": { "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:00:56 GMT", + "Date": "Mon, 25 Oct 2021 17:52:37 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f6bf9f65-df3f-4d3b-afd3-cde4bc281745", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c69a5785-73d1-4c92-b2bf-585ebf2eafba", "X-Powered-By": "ASP.NET" }, "ResponseBody": null }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1947311862hsm?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3359961573hsm?api-version=7.3-preview", "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", ":method": "DELETE", - ":path": "/keys/key1947311862hsm?api-version=7.2", + ":path": "/keys/key3359961573hsm?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:58 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:38 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "829", + "Content-Length": "827", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:56 GMT", + "Date": "Mon, 25 Oct 2021 17:52:37 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "55414e8e-4fca-45df-bcdf-6446bc2cce6f", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "57761954-0e7d-4f89-828a-5e99c7e8b0b7", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key1947311862hsm", - "deletedDate": 1634227256, - "scheduledPurgeDate": 1634832056, + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3359961573hsm", + "deletedDate": 1635184358, + "scheduledPurgeDate": 1635789158, "key": { - "kid": "https://seankane.vault.azure.net/keys/key1947311862hsm/24fc502b1bdb4bb799765e6a94220134", + "kid": "https://rosebud.vault.azure.net/keys/key3359961573hsm/33f21197a52e474a9e0a28b1504dde2c", "kty": "RSA-HSM", "key_ops": [ "encrypt", @@ -463,31 +425,31 @@ "wrapKey", "unwrapKey" ], - "n": "y3zFD3Mavnf5iYmNuFAaNwzPMCwXCpNGzFe4SADsf4qRYuKEhXt0slqc_ELWKG9aCRfnCLZlodZSdrcve2SrpkayXKxbuFWIb2Fe4v3jxBgNh84GfQNwT-HoOS2FF4ftN4yrj3hpcqBuZGSlKSJVHmLAYerDAAJG5cd0uxDQx4iP65I2A0LuwewJLtCogdFqpuoiJA45dxNBv-_kzc4vDp0yhV2Gigi0zct4FlOcVsmnSl0qw84igXKOLmpsB_1RjCbbJ1H7oQ3Mzngal8GJ7XuvIkcYwQ_OhNyrF8TSwReLskAeHOzD3WsY9Hyun5uxNiARV1rmi6De5ZHryCv5UQ", + "n": "jExYLlRKRSm-Ui8WJCb5ARdalFCt1_uuzUo9ljL07Ve6jHSYyX2KNBmG0FCVhh4adA6oL2LkVKnKLByNfRPJ99zo-LdrNZGXe01bnPiL0dmb83A0eiZkaMGP4QWKJyd5CKPo7ZHO69nhsac8c9AyIh85z-6wdQ_S3NzH2C6g1Lw9216aakb19KpaPv5pBKgf99qRE62UIZiDNiO6G41OG2_YensMVkjD7p9ulr1pFQMaUcGzBZKuk-jHsvv16o7Fw9wAU45LpOf9oOffDz1QMWd5LKmGlBbJcnQPiFYOdNdWF2usEDYC95t1ZrjMd2TNJlM0vN4ZVyJAfNDOThzQNw", "e": "AAEAAQ" }, "attributes": { "enabled": true, - "created": 1634227254, - "updated": 1634227254, + "created": 1635184356, + "updated": 1635184356, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862hsm?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573hsm?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862hsm?api-version=7.2", + ":path": "/deletedkeys/key3359961573hsm?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:58 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:39 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -495,37 +457,37 @@ "Cache-Control": "no-cache", "Content-Length": "84", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:56 GMT", + "Date": "Mon, 25 Oct 2021 17:52:37 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c5c9075b-0b4e-454d-85fd-a086ac40c96b", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "93857379-60c3-4952-9a55-5a68ea4c729e", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862hsm" + "message": "Deleted Key not found: key3359961573hsm" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862hsm?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573hsm?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862hsm?api-version=7.2", + ":path": "/deletedkeys/key3359961573hsm?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:58 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:39 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -533,37 +495,37 @@ "Cache-Control": "no-cache", "Content-Length": "84", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:56 GMT", + "Date": "Mon, 25 Oct 2021 17:52:37 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8ab6aedf-bf1f-4d96-8741-9555cbfb070f", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "ff2ff840-622d-471e-b98d-8d6681cf3eba", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862hsm" + "message": "Deleted Key not found: key3359961573hsm" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862hsm?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573hsm?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862hsm?api-version=7.2", + ":path": "/deletedkeys/key3359961573hsm?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:59 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:39 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -571,37 +533,37 @@ "Cache-Control": "no-cache", "Content-Length": "84", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:57 GMT", + "Date": "Mon, 25 Oct 2021 17:52:39 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c1f5d5dc-c3ad-41da-9e90-6b4fdcc5d031", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "9cb492b5-827e-4e8b-971b-6f5f78fc7e98", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862hsm" + "message": "Deleted Key not found: key3359961573hsm" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862hsm?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573hsm?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862hsm?api-version=7.2", + ":path": "/deletedkeys/key3359961573hsm?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:59 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:39 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -609,37 +571,37 @@ "Cache-Control": "no-cache", "Content-Length": "84", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:57 GMT", + "Date": "Mon, 25 Oct 2021 17:52:39 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2a0f04df-8ec0-467b-815a-ac9fb32ecc9b", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "be8f1371-ebb8-483f-96fc-0eca809cb0e6", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862hsm" + "message": "Deleted Key not found: key3359961573hsm" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862hsm?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573hsm?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862hsm?api-version=7.2", + ":path": "/deletedkeys/key3359961573hsm?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:00:59 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:40 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -647,61 +609,61 @@ "Cache-Control": "no-cache", "Content-Length": "84", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:57 GMT", + "Date": "Mon, 25 Oct 2021 17:52:39 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b0332d19-c9cb-41fa-b105-1e714b5de667", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "656861bd-3657-402d-b150-2b92fc61f323", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1947311862hsm" + "message": "Deleted Key not found: key3359961573hsm" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862hsm?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573hsm?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1947311862hsm?api-version=7.2", + ":path": "/deletedkeys/key3359961573hsm?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:00 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:40 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "829", + "Content-Length": "827", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:58 GMT", + "Date": "Mon, 25 Oct 2021 17:52:40 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "31178aaf-e0ff-4082-808f-2f43560b958e", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "15919913-a06d-4666-a67a-845d70851185", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key1947311862hsm", - "deletedDate": 1634227256, - "scheduledPurgeDate": 1634832056, + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3359961573hsm", + "deletedDate": 1635184358, + "scheduledPurgeDate": 1635789158, "key": { - "kid": "https://seankane.vault.azure.net/keys/key1947311862hsm/24fc502b1bdb4bb799765e6a94220134", + "kid": "https://rosebud.vault.azure.net/keys/key3359961573hsm/33f21197a52e474a9e0a28b1504dde2c", "kty": "RSA-HSM", "key_ops": [ "encrypt", @@ -711,45 +673,45 @@ "wrapKey", "unwrapKey" ], - "n": "y3zFD3Mavnf5iYmNuFAaNwzPMCwXCpNGzFe4SADsf4qRYuKEhXt0slqc_ELWKG9aCRfnCLZlodZSdrcve2SrpkayXKxbuFWIb2Fe4v3jxBgNh84GfQNwT-HoOS2FF4ftN4yrj3hpcqBuZGSlKSJVHmLAYerDAAJG5cd0uxDQx4iP65I2A0LuwewJLtCogdFqpuoiJA45dxNBv-_kzc4vDp0yhV2Gigi0zct4FlOcVsmnSl0qw84igXKOLmpsB_1RjCbbJ1H7oQ3Mzngal8GJ7XuvIkcYwQ_OhNyrF8TSwReLskAeHOzD3WsY9Hyun5uxNiARV1rmi6De5ZHryCv5UQ", + "n": "jExYLlRKRSm-Ui8WJCb5ARdalFCt1_uuzUo9ljL07Ve6jHSYyX2KNBmG0FCVhh4adA6oL2LkVKnKLByNfRPJ99zo-LdrNZGXe01bnPiL0dmb83A0eiZkaMGP4QWKJyd5CKPo7ZHO69nhsac8c9AyIh85z-6wdQ_S3NzH2C6g1Lw9216aakb19KpaPv5pBKgf99qRE62UIZiDNiO6G41OG2_YensMVkjD7p9ulr1pFQMaUcGzBZKuk-jHsvv16o7Fw9wAU45LpOf9oOffDz1QMWd5LKmGlBbJcnQPiFYOdNdWF2usEDYC95t1ZrjMd2TNJlM0vN4ZVyJAfNDOThzQNw", "e": "AAEAAQ" }, "attributes": { "enabled": true, - "created": 1634227254, - "updated": 1634227254, + "created": 1635184356, + "updated": 1635184356, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1947311862hsm?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3359961573hsm?api-version=7.3-preview", "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", ":method": "DELETE", - ":path": "/deletedkeys/key1947311862hsm?api-version=7.2", + ":path": "/deletedkeys/key3359961573hsm?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:00 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:40 GMT" }, "RequestBody": null, "StatusCode": 204, "ResponseHeaders": { "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:00:58 GMT", + "Date": "Mon, 25 Oct 2021 17:52:40 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "13dc63e8-9e22-4276-a0d7-d29628c173c2", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "de62dc7a-11d8-416b-9062-f143c812e513", "X-Powered-By": "ASP.NET" }, "ResponseBody": null diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestCreateOCTKey/TestCreateOCTKey_HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestCreateOCTKey/TestCreateOCTKey_HSM.json new file mode 100644 index 000000000000..2698fabda6cf --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestCreateOCTKey/TestCreateOCTKey_HSM.json @@ -0,0 +1,45 @@ +{ + "Entries": [ + { + "RequestUri": "https://rosebudhsm.managedhsm.azure.net/keys/key900305795/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key900305795/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "32", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:44 GMT" + }, + "RequestBody": { + "key_size": 256, + "kty": "oct-HSM" + }, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "189", + "Content-Security-Policy": "default-src \u0027self\u0027", + "Content-Type": "application/json; charset=utf-8", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "x-ms-request-id": "5af41c3c-35bc-11ec-b248-000d3a706e2f", + "x-ms-server-latency": "0" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "Found token with aud=https://vault.azure.net, but expected aud=https://managedhsm.azure.net (Activity ID: 5af41c3c-35bc-11ec-b248-000d3a706e2f)" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestDeleteKey/TestDeleteKey_HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestDeleteKey/TestDeleteKey_HSM.json new file mode 100644 index 000000000000..6f3456555b76 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestDeleteKey/TestDeleteKey_HSM.json @@ -0,0 +1,80 @@ +{ + "Entries": [ + { + "RequestUri": "https://rosebudhsm.managedhsm.azure.net/keys/key1365154215/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key1365154215/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "26", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:54 GMT" + }, + "RequestBody": { + "key_ops": [], + "kty": "RSA" + }, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "189", + "Content-Security-Policy": "default-src \u0027self\u0027", + "Content-Type": "application/json; charset=utf-8", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "x-ms-request-id": "61273d5a-35bc-11ec-b248-000d3a706e2f", + "x-ms-server-latency": "1" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "Found token with aud=https://vault.azure.net, but expected aud=https://managedhsm.azure.net (Activity ID: 61273d5a-35bc-11ec-b248-000d3a706e2f)" + } + } + }, + { + "RequestUri": "https://rosebudhsm.managedhsm.azure.net/keys/key1365154215?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key1365154215?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:54 GMT" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "189", + "Content-Security-Policy": "default-src \u0027self\u0027", + "Content-Type": "application/json; charset=utf-8", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "x-ms-request-id": "61318788-35bc-11ec-b248-000d3a706e2f", + "x-ms-server-latency": "0" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "Found token with aud=https://vault.azure.net, but expected aud=https://managedhsm.azure.net (Activity ID: 61318788-35bc-11ec-b248-000d3a706e2f)" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestDeleteKey/TestDeleteKey_NON-HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestDeleteKey/TestDeleteKey_NON-HSM.json new file mode 100644 index 000000000000..f4484323d206 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestDeleteKey/TestDeleteKey_NON-HSM.json @@ -0,0 +1,478 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2367977013/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key2367977013/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "26", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:52 GMT" + }, + "RequestBody": { + "key_ops": [], + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "685", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:51 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "fca0fb30-d397-46e0-8d8b-fdf9b930efb7", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key2367977013/ecfe31d53e814889991e18c77f019b12", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "6r8m6jPEaDYOeA7r2Z467g-mf5gW8GUhtHr1LwSGTIbtTIIkzuCdFYDJKYgWjKJaalS7qxtnWnko6zcLmk8VUeY2TA6DdvrG7q30z3tOZncWUGRalzKUFd6KdswJobJPU0F_EtZx8lno5wKCCkwPhLdUxC36msdyyfEpK6AZvRE6wjOf5X-jbHmkG11-1Z2UR25D64cLD3udPq40webOjEHES6SCVsgMFUcIHUPr9FZ1mDJ7Rcyqsa9Kb7ZYhK68tOBCj8u_9Q5j656CwgmLl-oWLetPO8lFywbQkbsvJMa0XQcYNQ7CHgVGNrnsTuVM2Qy73pVtG1renZmuz5YhuQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184372, + "updated": 1635184372, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2367977013?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:53 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "815", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:51 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "0818a121-feab-4db1-aa92-e06766eb37a0", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key2367977013", + "deletedDate": 1635184372, + "scheduledPurgeDate": 1635789172, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key2367977013/ecfe31d53e814889991e18c77f019b12", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "6r8m6jPEaDYOeA7r2Z467g-mf5gW8GUhtHr1LwSGTIbtTIIkzuCdFYDJKYgWjKJaalS7qxtnWnko6zcLmk8VUeY2TA6DdvrG7q30z3tOZncWUGRalzKUFd6KdswJobJPU0F_EtZx8lno5wKCCkwPhLdUxC36msdyyfEpK6AZvRE6wjOf5X-jbHmkG11-1Z2UR25D64cLD3udPq40webOjEHES6SCVsgMFUcIHUPr9FZ1mDJ7Rcyqsa9Kb7ZYhK68tOBCj8u_9Q5j656CwgmLl-oWLetPO8lFywbQkbsvJMa0XQcYNQ7CHgVGNrnsTuVM2Qy73pVtG1renZmuz5YhuQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184372, + "updated": 1635184372, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key2367977013?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:53 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:51 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "19e9bd4e-736c-40f3-a0e1-af50a0695d60", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key2367977013" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key2367977013?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:53 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "abec72d7-7ea0-44ec-85e4-360d04ceadb5", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key2367977013" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key2367977013?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:53 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "bd967da6-a6ec-427f-8e81-3a37f3c8b344", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key2367977013" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key2367977013?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:53 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "815", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "325a9163-3689-49c6-9297-1979fbd857c8", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key2367977013", + "deletedDate": 1635184372, + "scheduledPurgeDate": 1635789172, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key2367977013/ecfe31d53e814889991e18c77f019b12", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "6r8m6jPEaDYOeA7r2Z467g-mf5gW8GUhtHr1LwSGTIbtTIIkzuCdFYDJKYgWjKJaalS7qxtnWnko6zcLmk8VUeY2TA6DdvrG7q30z3tOZncWUGRalzKUFd6KdswJobJPU0F_EtZx8lno5wKCCkwPhLdUxC36msdyyfEpK6AZvRE6wjOf5X-jbHmkG11-1Z2UR25D64cLD3udPq40webOjEHES6SCVsgMFUcIHUPr9FZ1mDJ7Rcyqsa9Kb7ZYhK68tOBCj8u_9Q5j656CwgmLl-oWLetPO8lFywbQkbsvJMa0XQcYNQ7CHgVGNrnsTuVM2Qy73pVtG1renZmuz5YhuQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184372, + "updated": 1635184372, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2367977013/?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/keys/key2367977013/?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:53 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "301", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b8ea20b6-1288-4fc4-a90e-53ddde536643", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "A key with (name/id) key2367977013 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key2367977013?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:54 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 17:52:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "393de44c-a0b0-4c97-a9d9-6a835e2d50b3", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key2367977013?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:54 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:53 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "47398581-87a9-4bb7-93ed-7691477e1959", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key2367977013" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key2367977013?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:54 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:53 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "cdad99b9-b48f-4140-a93d-97aeb296cce9", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key2367977013" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key2367977013?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key2367977013?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:54 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "301", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:53 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f705fac4-8202-455f-9921-ef583d7fd720", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "A key with (name/id) key2367977013 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestGetKey/TestGetKey_HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestGetKey/TestGetKey_HSM.json new file mode 100644 index 000000000000..add292fcf0a4 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestGetKey/TestGetKey_HSM.json @@ -0,0 +1,45 @@ +{ + "Entries": [ + { + "RequestUri": "https://rosebudhsm.managedhsm.azure.net/keys/key1478960915/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key1478960915/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "26", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:52 GMT" + }, + "RequestBody": { + "key_ops": [], + "kty": "RSA" + }, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "189", + "Content-Security-Policy": "default-src \u0027self\u0027", + "Content-Type": "application/json; charset=utf-8", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "x-ms-request-id": "5fcf8818-35bc-11ec-b248-000d3a706e2f", + "x-ms-server-latency": "0" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "Found token with aud=https://vault.azure.net, but expected aud=https://managedhsm.azure.net (Activity ID: 5fcf8818-35bc-11ec-b248-000d3a706e2f)" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/recordings/TestGetKey.json b/sdk/keyvault/azkeys/testdata/recordings/TestGetKey/TestGetKey_NON-HSM.json similarity index 58% rename from sdk/keyvault/azkeys/recordings/TestGetKey.json rename to sdk/keyvault/azkeys/testdata/recordings/TestGetKey/TestGetKey_NON-HSM.json index 0a1c1a646f2c..0ef76b9dfa50 100644 --- a/sdk/keyvault/azkeys/recordings/TestGetKey.json +++ b/sdk/keyvault/azkeys/testdata/recordings/TestGetKey/TestGetKey_NON-HSM.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1452004750/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key398251057/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key1452004750/create?api-version=7.2", + ":path": "/keys/key398251057/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "26", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:19 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:51 GMT" }, "RequestBody": { "key_ops": [], @@ -23,22 +23,22 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "686", + "Content-Length": "684", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:16 GMT", + "Date": "Mon, 25 Oct 2021 17:52:50 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "06facf14-b80d-4432-ba39-6ec668c0dfec", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a7e5f550-c5b9-4af6-8705-9ee8be5f76b7", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://seankane.vault.azure.net/keys/key1452004750/001d91b0ad024cd6a9e0e9c2f011f4ad", + "kid": "https://rosebud.vault.azure.net/keys/key398251057/6dd7f663539945df87ad1055da2a93c7", "kty": "RSA", "key_ops": [ "encrypt", @@ -48,52 +48,52 @@ "wrapKey", "unwrapKey" ], - "n": "-CORkYnm0OMVjapWmXh7eEJ4Ul4OYYQQyq6EcNOdAM93ndRJWCLUKajjo_Pwf0Kuwm6nppj-I4cJLkOm3lFBUH_mq6cW15s7nJjlQzEBT4ftKK_dNOEBM_i2Lhz1VYm-uOhqwiDKpef6-p0fO8j5kg1lUduKEcnjoZP_b4H3dZcMIfPc1GxJmcJ0XiUptJZPiAlHoxbelboUsV6UOTdUAQhAcE0S0nm5W8pMh7WyiF_burfAoArXowtUcOucipm3Vl2iMXUMzt9dtViZpLUp0n-Y-o5A6P8OdaXhHPWI9mAacxF7d_DDSTST59dNo8v8KSPOwQfH36kqvY2VTIhInQ", + "n": "2suT-86awJwd7IhAPqBfJC6LcgKQpuodLrtoR00yEsiEuFFzP48sHhlz5f_06XrDGeIjS2Q-9t1HbfdAx4JEliSo4rTDK4LBsIgdkklsbT3CS48qIstzd3MZrSMMhGOREEVv8eYPzCJo4ggxwFXPeJDskSzwbn_meaWOMnTr7acAW5tOpP-VDaqtadmOBH_YvRl9MWYnQefrjVD_IzjRY_fMd-AdzSaXd6FoUCAwxOmi0ZXY7FiD6rGBPqBaKCKI2cqu9BN97c2EcO1xbb3kGHAFQFHk3NS2P62lmaRdhGlfIAXUl9fK9Dki_BcMkisdYrhoQAC6Yyonuii2oxKdXQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227277, - "updated": 1634227277, + "created": 1635184371, + "updated": 1635184371, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1452004750/?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key398251057/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/keys/key1452004750/?api-version=7.2", + ":path": "/keys/key398251057/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:19 GMT" + "x-ms-date": "Mon, 25 Oct 2021 17:52:52 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "686", + "Content-Length": "684", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:16 GMT", + "Date": "Mon, 25 Oct 2021 17:52:51 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "03bd2da7-c44d-4f3f-afe5-b64393ed0153", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8f2d8a65-1a96-444d-90fd-0104daa49104", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://seankane.vault.azure.net/keys/key1452004750/001d91b0ad024cd6a9e0e9c2f011f4ad", + "kid": "https://rosebud.vault.azure.net/keys/key398251057/6dd7f663539945df87ad1055da2a93c7", "kty": "RSA", "key_ops": [ "encrypt", @@ -103,13 +103,13 @@ "wrapKey", "unwrapKey" ], - "n": "-CORkYnm0OMVjapWmXh7eEJ4Ul4OYYQQyq6EcNOdAM93ndRJWCLUKajjo_Pwf0Kuwm6nppj-I4cJLkOm3lFBUH_mq6cW15s7nJjlQzEBT4ftKK_dNOEBM_i2Lhz1VYm-uOhqwiDKpef6-p0fO8j5kg1lUduKEcnjoZP_b4H3dZcMIfPc1GxJmcJ0XiUptJZPiAlHoxbelboUsV6UOTdUAQhAcE0S0nm5W8pMh7WyiF_burfAoArXowtUcOucipm3Vl2iMXUMzt9dtViZpLUp0n-Y-o5A6P8OdaXhHPWI9mAacxF7d_DDSTST59dNo8v8KSPOwQfH36kqvY2VTIhInQ", + "n": "2suT-86awJwd7IhAPqBfJC6LcgKQpuodLrtoR00yEsiEuFFzP48sHhlz5f_06XrDGeIjS2Q-9t1HbfdAx4JEliSo4rTDK4LBsIgdkklsbT3CS48qIstzd3MZrSMMhGOREEVv8eYPzCJo4ggxwFXPeJDskSzwbn_meaWOMnTr7acAW5tOpP-VDaqtadmOBH_YvRl9MWYnQefrjVD_IzjRY_fMd-AdzSaXd6FoUCAwxOmi0ZXY7FiD6rGBPqBaKCKI2cqu9BN97c2EcO1xbb3kGHAFQFHk3NS2P62lmaRdhGlfIAXUl9fK9Dki_BcMkisdYrhoQAC6Yyonuii2oxKdXQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227277, - "updated": 1634227277, + "created": 1635184371, + "updated": 1635184371, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 } diff --git a/sdk/keyvault/azkeys/recordings/TestCreateECKey.json b/sdk/keyvault/azkeys/testdata/recordings/TestGetKeyRotationPolicy/TestGetKeyRotationPolicy_NON-HSM.json similarity index 62% rename from sdk/keyvault/azkeys/recordings/TestCreateECKey.json rename to sdk/keyvault/azkeys/testdata/recordings/TestGetKeyRotationPolicy/TestGetKeyRotationPolicy_NON-HSM.json index 718c7c46a968..57833ebb2b6c 100644 --- a/sdk/keyvault/azkeys/recordings/TestCreateECKey.json +++ b/sdk/keyvault/azkeys/testdata/recordings/TestGetKeyRotationPolicy/TestGetKeyRotationPolicy_NON-HSM.json @@ -1,167 +1,180 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1379313432/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1507363465/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key1379313432/create?api-version=7.2", + ":path": "/keys/key1507363465/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", - "Content-Length": "12", + "Content-Length": "13", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:00 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:18 GMT" }, "RequestBody": { - "kty": "EC" + "kty": "RSA" }, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "397", + "Content-Length": "676", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:58 GMT", + "Date": "Mon, 25 Oct 2021 15:44:18 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c51b5074-6c3a-4429-bf99-6ce456d024de", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "dd2fef2b-3e50-4117-a13c-5acf5a6e8de7", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://seankane.vault.azure.net/keys/key1379313432/b48ecbd3ba4348d6a8df1ed722101d34", - "kty": "EC", + "kid": "https://rosebud.vault.azure.net/keys/key1507363465/62483ad3c4164057900cd63ca52895e5", + "kty": "RSA", "key_ops": [ + "encrypt", + "decrypt", "sign", - "verify" + "verify", + "wrapKey", + "unwrapKey" ], - "crv": "P-256", - "x": "Zl65SFVK-5MhzjhS-fLAIaQZIJJ8O2AT4vsGkT6aOqU", - "y": "PjDLZpWc2GWg_Eqt9U26GKqD2723HL2X_UhoU8kSmuA" + "n": "2S9pAZdwDllBpITJv3nVU6pacBjZx9WXRnW958D_Oez9J67vAGQB98ukgGAzYl8Qmp81Xtw0slyOe3vQhr8qNG0KL2EYYpPKsXr5n_KrXJyv-3T5_1vnCnWY4yk4MGtvFXe7KofIoxcdjRKlbd8zsKb2XqiCeXgfs4BeE_R48nkGCiAwbNppAsE9xIX-JpikqWx8AJpVS5H5e57C1JBflSWE--ItsUBe-s2IjGMBOrkHSN2EXQbBtVMUUIQo2cQfgaYXokyHmLC9LEardlnKgjAkcYFPwDhmCNce0kCO08THRZ825ImfP_eifqX4SVFVe0K1hSL882sLle0ZfUuSdQ", + "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227258, - "updated": 1634227258, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "created": 1635176658, + "updated": 1635176658, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1379313432?api-version=7.2", - "RequestMethod": "DELETE", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1507363465/rotationpolicy?api-version=7.3-preview", + "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key1379313432?api-version=7.2", + ":method": "GET", + ":path": "/keys/key1507363465/rotationpolicy?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:00 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:19 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "528", + "Content-Length": "106", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:58 GMT", + "Date": "Mon, 25 Oct 2021 15:44:18 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "bd956ad5-3215-43ff-b545-9aefdac9f186", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c99da261-fab4-4ce1-8192-33eaac7fc1e7", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key1379313432", - "deletedDate": 1634227258, - "scheduledPurgeDate": 1634832058, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key1379313432/b48ecbd3ba4348d6a8df1ed722101d34", - "kty": "EC", - "key_ops": [ - "sign", - "verify" - ], - "crv": "P-256", - "x": "Zl65SFVK-5MhzjhS-fLAIaQZIJJ8O2AT4vsGkT6aOqU", - "y": "PjDLZpWc2GWg_Eqt9U26GKqD2723HL2X_UhoU8kSmuA" - }, - "attributes": { - "enabled": true, - "created": 1634227258, - "updated": 1634227258, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } + "lifetimeActions": [ + { + "trigger": { + "timeBeforeExpiry": "P30D" + }, + "action": { + "type": "Notify" + } + } + ], + "attributes": null } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1507363465?api-version=7.3-preview", + "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":method": "DELETE", + ":path": "/keys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:00 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:19 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "806", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:59 GMT", + "Date": "Mon, 25 Oct 2021 15:44:18 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b30e011d-b7a2-4710-9cb7-36cb14addd03", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a683f144-c057-4b80-9e7e-d39c341470fe", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1379313432" + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key1507363465", + "deletedDate": 1635176658, + "scheduledPurgeDate": 1642952658, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key1507363465/62483ad3c4164057900cd63ca52895e5", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "2S9pAZdwDllBpITJv3nVU6pacBjZx9WXRnW958D_Oez9J67vAGQB98ukgGAzYl8Qmp81Xtw0slyOe3vQhr8qNG0KL2EYYpPKsXr5n_KrXJyv-3T5_1vnCnWY4yk4MGtvFXe7KofIoxcdjRKlbd8zsKb2XqiCeXgfs4BeE_R48nkGCiAwbNppAsE9xIX-JpikqWx8AJpVS5H5e57C1JBflSWE--ItsUBe-s2IjGMBOrkHSN2EXQbBtVMUUIQo2cQfgaYXokyHmLC9LEardlnKgjAkcYFPwDhmCNce0kCO08THRZ825ImfP_eifqX4SVFVe0K1hSL882sLle0ZfUuSdQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176658, + "updated": 1635176658, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1507363465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":path": "/deletedkeys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:01 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:19 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -169,37 +182,37 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:59 GMT", + "Date": "Mon, 25 Oct 2021 15:44:18 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2a129e87-9d23-414b-a357-5d63b6792ec4", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "39b9b58c-a371-4c27-a34e-0c50b632b793", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1379313432" + "message": "Deleted Key not found: key1507363465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1507363465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":path": "/deletedkeys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:01 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:19 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -207,37 +220,37 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:59 GMT", + "Date": "Mon, 25 Oct 2021 15:44:18 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d216fd92-5ee2-439b-8074-b91c4ccd44a0", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "d8958cce-0ca1-4206-8691-870a27f2033c", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1379313432" + "message": "Deleted Key not found: key1507363465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1507363465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":path": "/deletedkeys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:01 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:20 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -245,37 +258,37 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:00:59 GMT", + "Date": "Mon, 25 Oct 2021 15:44:19 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8214a86f-365a-4094-b327-17ff05835484", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c17a1a82-79f5-4e30-8edc-0f336de61d88", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1379313432" + "message": "Deleted Key not found: key1507363465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1507363465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":path": "/deletedkeys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:02 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:20 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -283,37 +296,37 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:00 GMT", + "Date": "Mon, 25 Oct 2021 15:44:19 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "6122b908-5acc-44e6-aae6-ca60d877799d", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f3ba6932-19c8-4d1f-af16-b38d63aff565", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1379313432" + "message": "Deleted Key not found: key1507363465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1507363465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":path": "/deletedkeys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:02 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:20 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -321,37 +334,37 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:00 GMT", + "Date": "Mon, 25 Oct 2021 15:44:20 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5b251a88-29e2-4c76-bb49-58a11a2f630c", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b4372bfe-9998-4a55-ab30-df8b3857b577", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1379313432" + "message": "Deleted Key not found: key1507363465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1507363465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":path": "/deletedkeys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:02 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:21 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -359,106 +372,109 @@ "Cache-Control": "no-cache", "Content-Length": "81", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:00 GMT", + "Date": "Mon, 25 Oct 2021 15:44:20 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9d294dc7-e51b-489f-8d9f-b4cef9fb7127", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "ff245fb9-dccc-4a61-9688-b0fe0bfcc5c5", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1379313432" + "message": "Deleted Key not found: key1507363465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1507363465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":path": "/deletedkeys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:03 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:21 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "528", + "Content-Length": "806", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:01:01 GMT", + "Date": "Mon, 25 Oct 2021 15:44:20 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "1a2cdb5c-964c-4579-8e37-c5e63f75a3c0", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "5393cec3-249b-4aca-a714-8c5f5eb63eee", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key1379313432", - "deletedDate": 1634227258, - "scheduledPurgeDate": 1634832058, + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key1507363465", + "deletedDate": 1635176658, + "scheduledPurgeDate": 1642952658, "key": { - "kid": "https://seankane.vault.azure.net/keys/key1379313432/b48ecbd3ba4348d6a8df1ed722101d34", - "kty": "EC", + "kid": "https://rosebud.vault.azure.net/keys/key1507363465/62483ad3c4164057900cd63ca52895e5", + "kty": "RSA", "key_ops": [ + "encrypt", + "decrypt", "sign", - "verify" + "verify", + "wrapKey", + "unwrapKey" ], - "crv": "P-256", - "x": "Zl65SFVK-5MhzjhS-fLAIaQZIJJ8O2AT4vsGkT6aOqU", - "y": "PjDLZpWc2GWg_Eqt9U26GKqD2723HL2X_UhoU8kSmuA" + "n": "2S9pAZdwDllBpITJv3nVU6pacBjZx9WXRnW958D_Oez9J67vAGQB98ukgGAzYl8Qmp81Xtw0slyOe3vQhr8qNG0KL2EYYpPKsXr5n_KrXJyv-3T5_1vnCnWY4yk4MGtvFXe7KofIoxcdjRKlbd8zsKb2XqiCeXgfs4BeE_R48nkGCiAwbNppAsE9xIX-JpikqWx8AJpVS5H5e57C1JBflSWE--ItsUBe-s2IjGMBOrkHSN2EXQbBtVMUUIQo2cQfgaYXokyHmLC9LEardlnKgjAkcYFPwDhmCNce0kCO08THRZ825ImfP_eifqX4SVFVe0K1hSL882sLle0ZfUuSdQ", + "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227258, - "updated": 1634227258, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "created": 1635176658, + "updated": 1635176658, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1379313432?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1507363465?api-version=7.3-preview", "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", ":method": "DELETE", - ":path": "/deletedkeys/key1379313432?api-version=7.2", + ":path": "/deletedkeys/key1507363465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:01:03 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:21 GMT" }, "RequestBody": null, "StatusCode": 204, "ResponseHeaders": { "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:01:01 GMT", + "Date": "Mon, 25 Oct 2021 15:44:20 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3321ae6e-2a31-4d86-9ef1-c31671ea4c72", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "95772e89-39c4-445a-9807-39982f315826", "X-Powered-By": "ASP.NET" }, "ResponseBody": null diff --git a/sdk/keyvault/azkeys/recordings/TestImportKey.json b/sdk/keyvault/azkeys/testdata/recordings/TestImportKey/TestImportKey_NON-HSM.json similarity index 86% rename from sdk/keyvault/azkeys/recordings/TestImportKey.json rename to sdk/keyvault/azkeys/testdata/recordings/TestImportKey/TestImportKey_NON-HSM.json index 40398b9137b1..f81eb6c04f62 100644 --- a/sdk/keyvault/azkeys/recordings/TestImportKey.json +++ b/sdk/keyvault/azkeys/testdata/recordings/TestImportKey/TestImportKey_NON-HSM.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/importedKey?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/importedKey?api-version=7.3-preview", "RequestMethod": "PUT", "RequestHeaders": { ":authority": "localhost:5001", ":method": "PUT", - ":path": "/keys/importedKey?api-version=7.2", + ":path": "/keys/importedKey?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "1699", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:53 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:13 GMT" }, "RequestBody": { "key": { @@ -40,22 +40,22 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "684", + "Content-Length": "674", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:51 GMT", + "Date": "Mon, 25 Oct 2021 15:44:12 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ddc28c56-2b30-4ef4-8640-5546b3d27eef", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "5137113c-0d26-40a0-a062-57bdd755f084", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://seankane.vault.azure.net/keys/importedKey/e06cd5785cfe42ad8a269e3bade6a275", + "kid": "https://rosebud.vault.azure.net/keys/importedKey/1cdb8b1e26394eb78dcaf505468622a4", "kty": "RSA", "key_ops": [ "encrypt", @@ -70,10 +70,10 @@ }, "attributes": { "enabled": true, - "created": 1634227371, - "updated": 1634227371, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "created": 1635176653, + "updated": 1635176653, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } } diff --git a/sdk/keyvault/azkeys/recordings/TestListKeyVersions.json b/sdk/keyvault/azkeys/testdata/recordings/TestListDeletedKeys/TestListDeletedKeys_NON-HSM.json similarity index 60% rename from sdk/keyvault/azkeys/recordings/TestListKeyVersions.json rename to sdk/keyvault/azkeys/testdata/recordings/TestListDeletedKeys/TestListDeletedKeys_NON-HSM.json index 4db053eb47d6..612d9f75188c 100644 --- a/sdk/keyvault/azkeys/recordings/TestListKeyVersions.json +++ b/sdk/keyvault/azkeys/testdata/recordings/TestListDeletedKeys/TestListDeletedKeys_NON-HSM.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1634077861/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key0762797297/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key1634077861/create?api-version=7.2", + ":path": "/keys/list-key0762797297/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "13", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:42 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:00 GMT" }, "RequestBody": { "kty": "RSA" @@ -22,22 +22,22 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "686", + "Content-Length": "681", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:39 GMT", + "Date": "Mon, 25 Oct 2021 15:43:59 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d0c856a7-bb12-4fa1-912a-ae295cb1782f", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "126d25b4-7a31-43e6-8bcb-f045029aa413", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/f54fc994a6a64c9ea9b285d2b95925b3", + "kid": "https://rosebud.vault.azure.net/keys/list-key0762797297/3282f5ba4fd049599813077e729a23fa", "kty": "RSA", "key_ops": [ "encrypt", @@ -47,174 +47,55 @@ "wrapKey", "unwrapKey" ], - "n": "5E1zXLDjc0g_Y8lBVYmfdzwrRbBt3MNvh9ft8uYqBGkU46VzBM0YWWo-Tm7csyRl80ePr842OF2JA3QVxX-sjT6NqTQDXXmsMSzUwilcXFjWvcIiiWzdBHcG1zVUlspTRnfQ6pNOU8gfHKLnL68aGE0dwSfClL9hBliFE-6H8yq0HGtXIf_P1ITKEqANuN1oun-afhWaJmnwcs1ghRKpTe0iZb4foEmnbVwlUGcLBQTIT3-QCwik1oN7Q92f3GtcOFA2w9W-EamRjKWfpXvnRmb2lW1Tdxj8fXYdWna8ihOqtqLWOC5WluWP71pPPXp0j7IREqQprrN_IlFdFaxCGQ", + "n": "zXuG6Eu-CYIzvoam5sV6d3zNs5whU8PRhnqu1Mfxja_MMEyd4knv2r1c9r7_qX6EghN4dV0F33zIR6tM-tZAHpXPxvj5T2nZqVy2N0ivJZxEmgKjUFG0on71VWesbh7CVSEibkPXl3eRNhiI2yvGfcXvAZQG-V3VuG4mFW9w1rQLuSFuprPxMIFeeYZ2EDfO5Sh048oPBBm9-Y_BApXrjra0mSBvu_K9cxOM9BHw02YI6OoMnUdH6Ga8-Od9Orhm21bK2ok8vxUOcH1RT_zE4J9w0_KZiSwOsAkb-kWDv8OmoMuTJTKUMnic3EulacAM5gNZb5nTKhK6KyfhofaQqQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227360, - "updated": 1634227360, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "created": 1635176640, + "updated": 1635176640, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1634077861/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key1634077861/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:42 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "686", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "84065cfa-9688-4cb9-a634-995e5c249a33", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/84cc48848975497581c58a09bf733129", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "n6BWLKLpcfoDPHx5x1yCsc5_MuKfbWy_EwWJXTd-3kJUhobJA9G_PT3mc1suLQftln_P-Pis9rg5BYEV6KxlWVhFpI5QzeCsIqcPhH4Lw_4FZvqt0dkrjdbiAs55YFAJ7u0z5NzEFru7no6kbjh9Eql6ieJTMsxAKLgsWe7m8_-bY4MotuVsmuzOhlYaEXRh9Vykh08FYh8zie1x2ebdakHffZ7r2QW4_Vv9q7ns0vWK7dI2HojnBnHasukjSNexI3GQ66xCfFqGf4uPJk_NfvKypJA3DimXYD296BnpGcxihEfuPNEYB0VYOrm624wr_mSuYMdi17Mg5ZH9Fp9DkQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227360, - "updated": 1634227360, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1634077861/create?api-version=7.2", - "RequestMethod": "POST", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key1634077861/create?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:42 GMT" - }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "686", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "730de5a6-90cf-4d41-a998-89d06c572dcd", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/3aa94a6e54e64d82b10e78a3b44cb4bf", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "tO_bm45Ryeo2FRoAY4F9U6RkhQGLO0EE1aR8l-wW09RE7lfxjAYShW7XrykBh82cCc2fB9BwFs5h_EUkDz62nsCQyKcerD7pvFOmcbcl3Beq9ZjbMQumTBTA53XuFqHPSPHoYfvpLyPCrhWnBPestCsRLziklpWtuaOemDtjraXbUUMn6bMBf2X317CMgsQYb_RiZNdYVEo7CSmFCcEup-oIFJNYH67FBiZ3Wc9ywvKCdfqwBK55Wu7aKIDu1ggsrOCo8PnC016vR0Nc6GpJ81oyyWIRW7s0XmPaGuctrXEPrI-ub4yRjtI1DHzUwfsvdtgN5H0_EUbs_40tGWJENQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227361, - "updated": 1634227361, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1634077861/create?api-version=7.2", - "RequestMethod": "POST", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key0762797297?api-version=7.3-preview", + "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key1634077861/create?api-version=7.2", + ":method": "DELETE", + ":path": "/keys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:43 GMT" - }, - "RequestBody": { - "kty": "RSA" + "x-ms-date": "Mon, 25 Oct 2021 15:44:00 GMT" }, + "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "686", + "Content-Length": "816", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:40 GMT", + "Date": "Mon, 25 Oct 2021 15:43:59 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d6bf3ac3-1a7a-42d1-9ffc-53f1ab6ba67e", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c95d8b03-539a-449c-83eb-e0bed44f3a46", "X-Powered-By": "ASP.NET" }, "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key0762797297", + "deletedDate": 1635176640, + "scheduledPurgeDate": 1642952640, "key": { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/305b8552c17346bd94d73b460c61ac55", + "kid": "https://rosebud.vault.azure.net/keys/list-key0762797297/3282f5ba4fd049599813077e729a23fa", "kty": "RSA", "key_ops": [ "encrypt", @@ -224,1291 +105,1337 @@ "wrapKey", "unwrapKey" ], - "n": "wNBpPHBlZBd8QXUamofYf6mPxBJplTzjybN1Wq1WWh8ynB2GWrh1bcqrnuJx-E5UZKM9dm-M0GsaMd9gT-XfBQmQQQZxoX9fAFV5L8iZKBfiC0fuKKvnougp7JCWWKkLd9TH4RsEaZwfqwD16EzOr1iZMcAavMuuIp_9pMQvSlbYKjzXsumtXHm81-tTGU-UUXtLYSqzSZL4hINJpOca68x6p8517JdhDIwGMCbPMbs5XQQ93sZPPr8yzmEziR4Xtr6GeGobL_EeU5oe1KEl9mx0-byjhJrqkKCAtqSHxFu3GNd8GWyQCM7H5nRZ3gxRMkCzSQt8oWi25UDn32FPRQ", + "n": "zXuG6Eu-CYIzvoam5sV6d3zNs5whU8PRhnqu1Mfxja_MMEyd4knv2r1c9r7_qX6EghN4dV0F33zIR6tM-tZAHpXPxvj5T2nZqVy2N0ivJZxEmgKjUFG0on71VWesbh7CVSEibkPXl3eRNhiI2yvGfcXvAZQG-V3VuG4mFW9w1rQLuSFuprPxMIFeeYZ2EDfO5Sh048oPBBm9-Y_BApXrjra0mSBvu_K9cxOM9BHw02YI6OoMnUdH6Ga8-Od9Orhm21bK2ok8vxUOcH1RT_zE4J9w0_KZiSwOsAkb-kWDv8OmoMuTJTKUMnic3EulacAM5gNZb5nTKhK6KyfhofaQqQ", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227361, - "updated": 1634227361, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "created": 1635176640, + "updated": 1635176640, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1634077861/create?api-version=7.2", - "RequestMethod": "POST", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", + "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key1634077861/create?api-version=7.2", + ":method": "GET", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:43 GMT" - }, - "RequestBody": { - "kty": "RSA" + "x-ms-date": "Mon, 25 Oct 2021 15:44:01 GMT" }, - "StatusCode": 200, + "RequestBody": null, + "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "686", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:40 GMT", + "Date": "Mon, 25 Oct 2021 15:44:00 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d7b7a3e5-ac7b-4ef4-ae01-5d4d55fdc43c", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "6f88a925-3468-45bb-99af-ca8878694e4a", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/9e8190fceb324639b78dd8bb764c0b7e", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "osOh5dnXjH4NX2ZS0gqqxX7Zfw_qNbsxZ1pOGR51oIxozZYtZKiHN2CqJGKpLgV9BDkkcyY0F5hJobwWy3bGay4TMnmuKH2x6ApFM37qnHgegCEAnLrgEBWHsQkreX-TnddbKCwwRaiVP05bVt-xHFJRVTcAIzlsYSWaVHxs-sWhoiPJRJX57Om7JnfoYyWyNGNsmatvgOKJdQY-QJ56vXBE3dOCQuvTQdSswBldHFEJ2ts3sfXN-GMO-8_StgIDyWLzvAkuty0CIK_3Kk5zpdu8D483hwivEnbcH9m5CHo5SditqkQWUjTK9UApwP3CywR4QQoCX6n4g3gnUTWuqQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227361, - "updated": 1634227361, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: list-key0762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1634077861/create?api-version=7.2", - "RequestMethod": "POST", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", + "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "POST", - ":path": "/keys/key1634077861/create?api-version=7.2", + ":method": "GET", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", - "Content-Length": "13", - "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:43 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:01 GMT" }, - "RequestBody": { - "kty": "RSA" - }, - "StatusCode": 200, + "RequestBody": null, + "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "686", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:41 GMT", + "Date": "Mon, 25 Oct 2021 15:44:00 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "207e5548-9f19-4b6d-b9f5-fd89c307448e", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "66168a0d-9dbd-4c29-ab2e-38cecf03c468", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/e9b1e737917a4ec2b0efd22a7f072f76", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "1no4AnRSVGfdk9yXTPp-kJ1LxDIkVC0TIm9PEpkAHnHpAjbm8k3KQK-rUBkaSoZOKhK4qEJnq8Jmll-cgWW6HaT1ZOpX3iRG30HKT5bApuZ4GgbbFbLVSNV3JR7MxgY2xUJ0NtJdFTsFpj-uyJ08w4qOjVbH0KUbtzj8mjEFjv7DfiMcCIhXyXneFVEvwgK-byHejh6I6MTlhQ_gpzmBFp6fy0wT_Qh-J57IvzvYC66AJ-uATO4vpxI1Uj7WTA5quSizA9nEWG7RYIYhgO719OmST6Knca8BE_zsph6c1HmdQohL066nwnvGhT06c2A3YIZrohEfWv6vdWr61u7VpQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227362, - "updated": 1634227362, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: list-key0762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1634077861/versions?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/keys/key1634077861/versions?api-version=7.2", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:44 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:01 GMT" }, "RequestBody": null, - "StatusCode": 200, + "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "1449", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:41 GMT", + "Date": "Mon, 25 Oct 2021 15:44:00 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "85657b7a-7a26-4aed-851b-921029af9c6b", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "41c6b35b-5f94-4f66-b4d5-600c578b8b92", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "value": [ - { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/305b8552c17346bd94d73b460c61ac55", - "attributes": { - "enabled": true, - "created": 1634227361, - "updated": 1634227361, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/3aa94a6e54e64d82b10e78a3b44cb4bf", - "attributes": { - "enabled": true, - "created": 1634227361, - "updated": 1634227361, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/84cc48848975497581c58a09bf733129", - "attributes": { - "enabled": true, - "created": 1634227360, - "updated": 1634227360, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/9e8190fceb324639b78dd8bb764c0b7e", - "attributes": { - "enabled": true, - "created": 1634227361, - "updated": 1634227361, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/e9b1e737917a4ec2b0efd22a7f072f76", - "attributes": { - "enabled": true, - "created": 1634227362, - "updated": 1634227362, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/f54fc994a6a64c9ea9b285d2b95925b3", - "attributes": { - "enabled": true, - "created": 1634227360, - "updated": 1634227360, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - ], - "nextLink": null + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: list-key0762797297" + } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1634077861?api-version=7.2", - "RequestMethod": "DELETE", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", + "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/keys/key1634077861?api-version=7.2", + ":method": "GET", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:44 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:01 GMT" }, "RequestBody": null, - "StatusCode": 200, + "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "817", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:41 GMT", + "Date": "Mon, 25 Oct 2021 15:44:00 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "35e0db09-4573-4e0d-b544-bc95355dc56b", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "57630df3-d0ce-43da-8af9-3b291d28f28f", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key1634077861", - "deletedDate": 1634227362, - "scheduledPurgeDate": 1634832162, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/e9b1e737917a4ec2b0efd22a7f072f76", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "1no4AnRSVGfdk9yXTPp-kJ1LxDIkVC0TIm9PEpkAHnHpAjbm8k3KQK-rUBkaSoZOKhK4qEJnq8Jmll-cgWW6HaT1ZOpX3iRG30HKT5bApuZ4GgbbFbLVSNV3JR7MxgY2xUJ0NtJdFTsFpj-uyJ08w4qOjVbH0KUbtzj8mjEFjv7DfiMcCIhXyXneFVEvwgK-byHejh6I6MTlhQ_gpzmBFp6fy0wT_Qh-J57IvzvYC66AJ-uATO4vpxI1Uj7WTA5quSizA9nEWG7RYIYhgO719OmST6Knca8BE_zsph6c1HmdQohL066nwnvGhT06c2A3YIZrohEfWv6vdWr61u7VpQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227362, - "updated": 1634227362, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: list-key0762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:44 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:02 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:41 GMT", + "Date": "Mon, 25 Oct 2021 15:44:01 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "87353b2b-8edf-449e-9a6e-e230e0af48c4", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c96bf273-f7f2-46a5-b4ca-320f0dfaeff6", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key0762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:44 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:02 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:41 GMT", + "Date": "Mon, 25 Oct 2021 15:44:01 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "053c07cb-4832-425a-884f-bd60fc301131", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a4e0375d-31c2-44a1-95fd-f16f53fe0b8a", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key0762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:45 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:03 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:42 GMT", + "Date": "Mon, 25 Oct 2021 15:44:01 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ad948cbf-a7c0-4c76-92a7-d5da2babd14c", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "128d3f0a-4eca-427d-b4fd-a424a02898b5", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key0762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:45 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:03 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:42 GMT", + "Date": "Mon, 25 Oct 2021 15:44:02 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "40bc7e39-4635-4aaa-bb71-359bab620a7e", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "3d4ec142-4db3-4ecb-91d8-68efe4e2bc08", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key0762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:45 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:03 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:42 GMT", + "Date": "Mon, 25 Oct 2021 15:44:02 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "26063ff8-7594-4ac7-aa0c-17526db32b39", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "1ea67258-9327-4dbe-bcfa-5d974a1d121d", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key0762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key0762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:46 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:04 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "816", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:44 GMT", + "Date": "Mon, 25 Oct 2021 15:44:03 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "55f0d7b7-cb38-4d58-944c-a88b445695dc", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f1a9f221-dc8c-424e-9e94-bd4b2aa6a141", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key0762797297", + "deletedDate": 1635176640, + "scheduledPurgeDate": 1642952640, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/list-key0762797297/3282f5ba4fd049599813077e729a23fa", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "zXuG6Eu-CYIzvoam5sV6d3zNs5whU8PRhnqu1Mfxja_MMEyd4knv2r1c9r7_qX6EghN4dV0F33zIR6tM-tZAHpXPxvj5T2nZqVy2N0ivJZxEmgKjUFG0on71VWesbh7CVSEibkPXl3eRNhiI2yvGfcXvAZQG-V3VuG4mFW9w1rQLuSFuprPxMIFeeYZ2EDfO5Sh048oPBBm9-Y_BApXrjra0mSBvu_K9cxOM9BHw02YI6OoMnUdH6Ga8-Od9Orhm21bK2ok8vxUOcH1RT_zE4J9w0_KZiSwOsAkb-kWDv8OmoMuTJTKUMnic3EulacAM5gNZb5nTKhK6KyfhofaQqQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176640, + "updated": 1635176640, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key1762797297/create?api-version=7.3-preview", + "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":method": "POST", + ":path": "/keys/list-key1762797297/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:46 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:04 GMT" }, - "RequestBody": null, - "StatusCode": 404, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "681", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:44 GMT", + "Date": "Mon, 25 Oct 2021 15:44:03 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "129832fc-ce9b-4b72-b991-1b63518e79cc", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "62119113-e636-4077-b424-f6ff298fba3a", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "key": { + "kid": "https://rosebud.vault.azure.net/keys/list-key1762797297/e83ad434d7d741959cf2163e7e55bf2b", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "zxk4P1TBxWPdcNxWa0G-2-fkOjhYwRnpnYJfq5YVqo_8L7CE-DpTvwei-CLlSpdmlJQQBQPWfEKw3tiPSzRDuo16vXOpzluMTIQDyEUpl1UosmIOhNVfvkG6IsV_8FIJjImpMPg3JZ2l1E1jatsU7WYvOqo1lkQ4jtGQ89wmjeE3yJH4-JUNiyi5u8e716ueVhUFoMhlbbg5USu2t32QHcUXQjw8ZsYlKP31d7qSmkAPp0SvqnwYARHGuimTh0wIFsSx5iOB_efNF0W5jYTLHEwSNyjcne5Rh9K2V5G92cbGJ-HjJ6VyvPnwun8ivTCOGldiN5rDrQzlEagzoGdm4Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176643, + "updated": 1635176643, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key1762797297?api-version=7.3-preview", + "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":method": "DELETE", + ":path": "/keys/list-key1762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:46 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:04 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "816", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:44 GMT", + "Date": "Mon, 25 Oct 2021 15:44:03 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5f176313-c81c-4046-9df2-165188375f5b", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "baa3e19a-78ca-4985-9b6c-88f227e758c7", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key1762797297", + "deletedDate": 1635176643, + "scheduledPurgeDate": 1642952643, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/list-key1762797297/e83ad434d7d741959cf2163e7e55bf2b", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "zxk4P1TBxWPdcNxWa0G-2-fkOjhYwRnpnYJfq5YVqo_8L7CE-DpTvwei-CLlSpdmlJQQBQPWfEKw3tiPSzRDuo16vXOpzluMTIQDyEUpl1UosmIOhNVfvkG6IsV_8FIJjImpMPg3JZ2l1E1jatsU7WYvOqo1lkQ4jtGQ89wmjeE3yJH4-JUNiyi5u8e716ueVhUFoMhlbbg5USu2t32QHcUXQjw8ZsYlKP31d7qSmkAPp0SvqnwYARHGuimTh0wIFsSx5iOB_efNF0W5jYTLHEwSNyjcne5Rh9K2V5G92cbGJ-HjJ6VyvPnwun8ivTCOGldiN5rDrQzlEagzoGdm4Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176643, + "updated": 1635176643, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key1762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key1762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:47 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:04 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:45 GMT", + "Date": "Mon, 25 Oct 2021 15:44:03 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "48af6ac3-c7f3-4924-a2d4-ea34893e5c48", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b483222d-dd78-4f0a-b900-d13e6d3edda4", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key1762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key1762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key1762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:47 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:04 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:45 GMT", + "Date": "Mon, 25 Oct 2021 15:44:03 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d6a30728-d1dd-4f19-8eb9-f5938eef0a42", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "fedd63e6-b919-4cb2-87a3-9fba411ce648", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key1762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key1762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key1762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:47 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:05 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:45 GMT", + "Date": "Mon, 25 Oct 2021 15:44:04 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5a2135eb-7bf3-4d8b-b51b-8171b5db26da", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8cce2299-3f28-42d3-9a32-7d1524f16b43", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key1762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key1762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key1762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:48 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:05 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:46 GMT", + "Date": "Mon, 25 Oct 2021 15:44:04 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8905681c-4070-4511-975d-46f31bd8bc32", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "52c8d46d-76f6-427e-a713-be9db397d237", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key1762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key1762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key1762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:48 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:05 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:46 GMT", + "Date": "Mon, 25 Oct 2021 15:44:04 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "edbd711d-daad-4dd6-965c-cba11f8181ab", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f8e895f8-70de-4bbf-9be6-cf1cadf34115", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key1762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key1762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key1762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:49 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:06 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "816", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:47 GMT", + "Date": "Mon, 25 Oct 2021 15:44:05 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f3ed08be-55d5-464a-97c4-a80c08a5b44c", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b947ce4a-4aa0-4e28-8691-704c2d2e1874", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key1762797297", + "deletedDate": 1635176643, + "scheduledPurgeDate": 1642952643, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/list-key1762797297/e83ad434d7d741959cf2163e7e55bf2b", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "zxk4P1TBxWPdcNxWa0G-2-fkOjhYwRnpnYJfq5YVqo_8L7CE-DpTvwei-CLlSpdmlJQQBQPWfEKw3tiPSzRDuo16vXOpzluMTIQDyEUpl1UosmIOhNVfvkG6IsV_8FIJjImpMPg3JZ2l1E1jatsU7WYvOqo1lkQ4jtGQ89wmjeE3yJH4-JUNiyi5u8e716ueVhUFoMhlbbg5USu2t32QHcUXQjw8ZsYlKP31d7qSmkAPp0SvqnwYARHGuimTh0wIFsSx5iOB_efNF0W5jYTLHEwSNyjcne5Rh9K2V5G92cbGJ-HjJ6VyvPnwun8ivTCOGldiN5rDrQzlEagzoGdm4Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176643, + "updated": 1635176643, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key2762797297/create?api-version=7.3-preview", + "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":method": "POST", + ":path": "/keys/list-key2762797297/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:49 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:06 GMT" }, - "RequestBody": null, - "StatusCode": 404, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "681", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:47 GMT", + "Date": "Mon, 25 Oct 2021 15:44:05 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5a17bfc3-9678-4404-9dcd-097e5e50cb3d", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "dcd5647f-f54b-422d-9b92-a05c646b238b", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "key": { + "kid": "https://rosebud.vault.azure.net/keys/list-key2762797297/2f1ca3fa6b3045298c7cac738d042cdd", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "0BrPqIcNH-OHvCLRBFgyhIFzAeml-J1ffdy07DP9a5dqtUnuEnJBLxy0zR8p6FmVvuiJ4da1dDinhK3dOL-lpLEuHJ7DJj7CFmcCDbKXq9cb5K9YGTvgtXdaPQYM9p11FjbX4bkHxRMqQyWBqd14PsjYqFNoFFht__q7Ov_kPG3KRXvgPft3N6gZLs3FOmgafEx4eSRfD5Dx-E7BwwQroSOwxedbNkrG5jUAaNmnsgKTOi0dBkGefJ2I6tpL7NrA6iDY7dRugHjEHo_LKgJZxtcnlvqmsEnvdiMm3_JIKK1yW-T1dO3pmooBfWeqYhbgmaw8oENXVtaHhBeNLSchGQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176645, + "updated": 1635176645, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key2762797297?api-version=7.3-preview", + "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":method": "DELETE", + ":path": "/keys/list-key2762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:49 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:06 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "816", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:47 GMT", + "Date": "Mon, 25 Oct 2021 15:44:05 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c4572549-1ea6-4776-99b0-62e4e2f3b62a", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "82ce30a0-ba5f-4e45-8aa0-9e6a8fba1158", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key2762797297", + "deletedDate": 1635176646, + "scheduledPurgeDate": 1642952646, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/list-key2762797297/2f1ca3fa6b3045298c7cac738d042cdd", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "0BrPqIcNH-OHvCLRBFgyhIFzAeml-J1ffdy07DP9a5dqtUnuEnJBLxy0zR8p6FmVvuiJ4da1dDinhK3dOL-lpLEuHJ7DJj7CFmcCDbKXq9cb5K9YGTvgtXdaPQYM9p11FjbX4bkHxRMqQyWBqd14PsjYqFNoFFht__q7Ov_kPG3KRXvgPft3N6gZLs3FOmgafEx4eSRfD5Dx-E7BwwQroSOwxedbNkrG5jUAaNmnsgKTOi0dBkGefJ2I6tpL7NrA6iDY7dRugHjEHo_LKgJZxtcnlvqmsEnvdiMm3_JIKK1yW-T1dO3pmooBfWeqYhbgmaw8oENXVtaHhBeNLSchGQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176645, + "updated": 1635176645, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key2762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key2762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:50 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:06 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:48 GMT", + "Date": "Mon, 25 Oct 2021 15:44:05 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "d20d13b7-71da-4eab-a9b2-f3da77c06973", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b899d671-48d0-4d64-b9cd-b39322091add", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key2762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key2762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key2762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:50 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:06 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:48 GMT", + "Date": "Mon, 25 Oct 2021 15:44:05 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5bd94870-04cb-494b-bdbd-c7ef0f85a38d", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "ea19c441-7138-4347-bb84-1d2aeea70432", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key2762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key2762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key2762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:50 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:07 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:48 GMT", + "Date": "Mon, 25 Oct 2021 15:44:05 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "291a3c85-c0c2-4ada-bb44-0e0a628f5879", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "e5808206-117d-463e-8bf2-eb7aaffb5e83", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key2762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key2762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key2762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:51 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:07 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:49 GMT", + "Date": "Mon, 25 Oct 2021 15:44:06 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f115d105-0871-412b-83a7-1d0c9e2421ed", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f7ece68e-cc88-4097-91e6-4f26046964d0", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key2762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key2762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key2762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:51 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:07 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "86", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:49 GMT", + "Date": "Mon, 25 Oct 2021 15:44:06 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "7011a834-5371-4cee-aa9b-e6a8690003eb", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a615e7e5-d54b-4990-bdb5-b1cfc4cf5947", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "Deleted Key not found: list-key2762797297" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/list-key2762797297?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys/list-key2762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:52 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:08 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "816", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:49 GMT", + "Date": "Mon, 25 Oct 2021 15:44:07 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "a505ab1f-6461-428e-ba09-1e50bdddab33", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "36abc3c1-a814-43af-bd5a-b659c3a7ea22", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key2762797297", + "deletedDate": 1635176646, + "scheduledPurgeDate": 1642952646, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/list-key2762797297/2f1ca3fa6b3045298c7cac738d042cdd", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "0BrPqIcNH-OHvCLRBFgyhIFzAeml-J1ffdy07DP9a5dqtUnuEnJBLxy0zR8p6FmVvuiJ4da1dDinhK3dOL-lpLEuHJ7DJj7CFmcCDbKXq9cb5K9YGTvgtXdaPQYM9p11FjbX4bkHxRMqQyWBqd14PsjYqFNoFFht__q7Ov_kPG3KRXvgPft3N6gZLs3FOmgafEx4eSRfD5Dx-E7BwwQroSOwxedbNkrG5jUAaNmnsgKTOi0dBkGefJ2I6tpL7NrA6iDY7dRugHjEHo_LKgJZxtcnlvqmsEnvdiMm3_JIKK1yW-T1dO3pmooBfWeqYhbgmaw8oENXVtaHhBeNLSchGQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176645, + "updated": 1635176645, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/deletedkeys?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:52 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:08 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "1029", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:50 GMT", + "Date": "Mon, 25 Oct 2021 15:44:07 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "87e954d3-4a01-4459-b3c9-a292dcd6eeff", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "cfe72d51-faa7-4c9f-886d-aa9bcbf4ba13", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" - } + "value": [ + { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key0762797297", + "deletedDate": 1635176640, + "scheduledPurgeDate": 1642952640, + "kid": "https://rosebud.vault.azure.net/keys/list-key0762797297", + "attributes": { + "enabled": true, + "created": 1635176640, + "updated": 1635176640, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + }, + { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key1762797297", + "deletedDate": 1635176643, + "scheduledPurgeDate": 1642952643, + "kid": "https://rosebud.vault.azure.net/keys/list-key1762797297", + "attributes": { + "enabled": true, + "created": 1635176643, + "updated": 1635176643, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + }, + { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/list-key2762797297", + "deletedDate": 1635176646, + "scheduledPurgeDate": 1642952646, + "kid": "https://rosebud.vault.azure.net/keys/list-key2762797297", + "attributes": { + "enabled": true, + "created": 1635176645, + "updated": 1635176645, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + ], + "nextLink": null } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key2762797297?api-version=7.3-preview", + "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":method": "DELETE", + ":path": "/keys/list-key2762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:52 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:08 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "81", + "Content-Length": "306", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:50 GMT", + "Date": "Mon, 25 Oct 2021 15:44:07 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "ea3b392e-6205-49b8-8187-9ba6afe2453e", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "df91292a-c952-4219-a74d-d9020bc4adaa", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key1634077861" + "message": "A key with (name/id) list-key2762797297 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key1762797297?api-version=7.3-preview", + "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":method": "DELETE", + ":path": "/keys/list-key1762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:53 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:08 GMT" }, "RequestBody": null, - "StatusCode": 200, + "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "817", + "Content-Length": "306", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:51 GMT", + "Date": "Mon, 25 Oct 2021 15:44:07 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "43dd9f8d-a023-40a1-a3d0-38605d98b259", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "bf083bc6-b492-4574-9dc7-ed4f0b64784c", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key1634077861", - "deletedDate": 1634227362, - "scheduledPurgeDate": 1634832162, - "key": { - "kid": "https://seankane.vault.azure.net/keys/key1634077861/e9b1e737917a4ec2b0efd22a7f072f76", - "kty": "RSA", - "key_ops": [ - "encrypt", - "decrypt", - "sign", - "verify", - "wrapKey", - "unwrapKey" - ], - "n": "1no4AnRSVGfdk9yXTPp-kJ1LxDIkVC0TIm9PEpkAHnHpAjbm8k3KQK-rUBkaSoZOKhK4qEJnq8Jmll-cgWW6HaT1ZOpX3iRG30HKT5bApuZ4GgbbFbLVSNV3JR7MxgY2xUJ0NtJdFTsFpj-uyJ08w4qOjVbH0KUbtzj8mjEFjv7DfiMcCIhXyXneFVEvwgK-byHejh6I6MTlhQ_gpzmBFp6fy0wT_Qh-J57IvzvYC66AJ-uATO4vpxI1Uj7WTA5quSizA9nEWG7RYIYhgO719OmST6Knca8BE_zsph6c1HmdQohL066nwnvGhT06c2A3YIZrohEfWv6vdWr61u7VpQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227362, - "updated": 1634227362, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "error": { + "code": "KeyNotFound", + "message": "A key with (name/id) list-key1762797297 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1634077861?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/list-key0762797297?api-version=7.3-preview", "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", ":method": "DELETE", - ":path": "/deletedkeys/key1634077861?api-version=7.2", + ":path": "/keys/list-key0762797297?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:53 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:44:08 GMT" }, "RequestBody": null, - "StatusCode": 204, + "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:02:51 GMT", + "Content-Length": "306", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:07 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5a570d98-7348-4c94-954a-5013a79598bb", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "275eaca1-3d8f-4696-8757-f59035d3f5db", "X-Powered-By": "ASP.NET" }, - "ResponseBody": null + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "A key with (name/id) list-key0762797297 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } } ], "Variables": {} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestListKeyVersions/TestListKeyVersions_NON-HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestListKeyVersions/TestListKeyVersions_NON-HSM.json new file mode 100644 index 000000000000..2c15e5b17b99 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestListKeyVersions/TestListKeyVersions_NON-HSM.json @@ -0,0 +1,831 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key231821625/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key231821625/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:09 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "675", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "460e543a-2dc6-4b0f-9558-76cede2492c7", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/ec4aba3fbced421f95e28bf248ac05e2", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "tXNBAVqwuxi4X5vTh5RkfPnULPlInXBg5f8vhgUGFZzkOaPSYqyAVtOemR_5kHHXvgZvew3cukQ0Ari0HXmfpo30Vm34akGLdIE0cFp_7VjhjYxvKtcyvorhhqdmIGpIL39OykAlP8Ntos5QlyKykcQNCR25YuESyh5s3htFaQvHtXU2Tcp4r5QwzIBNNIUB7AhYwrAGtjUDBGDTuPLPFHDjOFSvJsn-sYOlRPuCsDUPWowDELpjkmzXF5aY7VK_UCnTiIZK6j6cX6JW7VhTfj8ZZMWRnYsPefp5mCNgTGDuCV2n5YThzSX9SnzHeldXDhIVjthvv-_DsfyCrL_7GQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176648, + "updated": 1635176648, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key231821625/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key231821625/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:09 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "675", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "5b779763-6818-4951-90cf-34305e17b63d", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/382ba3c704fe43658ae49939a43c53da", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "tYV-mhnsGtW_e4yzcwBPWXeJiNOgMThMt62brz94KpF9ZBXpJFM-RzwYVS36FKV9Vgl5K7VHZ1_oQKxQlilUlOSSWbuF8g9GP6aYGy3gBA7tl3Hqzqc4o2B9WhDj1JqL8dJqjdV8u5RSsQvRYSEjD9zJwErpD-ZMD2Ftcsj2IwvKnqaDyQ3UHR9nvC_Wnk3pLUWQdnj8C9XN0Rux7fPQiU3VbVGz6rYaoWHivyskCvVu1PCxiv2TbJhAgs0bDvKZjpgOKrKZTJCz5xciL8G9PsT-XlXX4drm3QvOfm09N6F2zvFFSClF1OCvE7q7FBWD3UltZPvYN3lmeWDfc8BVJQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176649, + "updated": 1635176649, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key231821625/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key231821625/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:10 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "675", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8a206e79-f4b4-44bf-b599-7879f960b9e0", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/64e6c40cf85a4090ae253938d7e533cf", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "6Tuj5cyOx0Uv_8JfW-RkyckD35Oh_gC9iuBYnjNWJOvDnrn51naI6fezgVBSGIWuTwLRaHiCfwVQHYlPY0NXeZfLSdj02-2gI3yRMnW5wpvmBm6212aCZmJO25f7CovtSHUO2Dsz4Mh4y36jX88hZLaDvHIzeUlqKBldlJ1Jq9Kx7zHb9zZVUm6QUm3cgbeQB5iq6BvRaqIaHsjLXcOM8pGoIKQYls1xWLDfk1iPanWwIo5IqC2EhXunpIIN5wNKmvjxgJrFysMaMtiU4AdmKalKj5UcRtv7MZUxCtZr4rIpMZfxUQBexKXEbOJEb4ZQmXpGMw5pEccoLVNdjTNnNQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176649, + "updated": 1635176649, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key231821625/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key231821625/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:10 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "675", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a59e8827-4b0c-4876-9802-9517d29a488e", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/995dccb390e54079b57dc6ccb79c2b61", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "wSm2ceIf_CKtF_I1x3kb1CdE1COcOWGGta6IQtTdjX-WQyPHM-F6g6HtEnLRntA2HPBFIwGukjoTAPsabdRD7DU9eXrP7WW-LTtVKklznwHM9K1Kk8wPzLBoutANF-bCNZQYLREYBYp2MSkeGBOnyw8XPAct16AoPOGXr0ApO8gy94SdBTYLSl3i0B8qB7E5sc47RDkfQwmj3Fm6CbBKSRcqSvPDuYAsfA9-4ElnnUyWK9vWypgWz0ovK-efl6CanEW8MhJeNUmgzbGCM7jIpe34gU64bQijd9GYEdvSQNYUfAjZ63w04_LO3c7bsosuyX9JcK6Mu89zMpfr2Dg0EQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176649, + "updated": 1635176649, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key231821625/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key231821625/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:10 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "675", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "007e21ee-1dd3-46c9-af49-607382b6bc44", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/fdb5c92c78ea4483ad59bb351be3640d", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "zJkIVOwCWrYITvVQY2htk635hJCah2MrmsN77IN507yhHax0tuK114axbFMpQAgcB4YJ7zH_RdvkR8mNct6SiFBSW6q8SCPjmEzssF7UE3TclIJYzD_vPPu8NmiAP0fGhMlVSpU_FQ-4y2GA5ZOCO-07tbMqfae7UvourDCKVWw0GUcF-olar8SM6pmVtaTDR2jTORlRBH8wxMSVcXrgJGYxGS3bs_KhArnsvnKqB2zFjiLNVa7LDdjbf7lylIbS2mmVufSyGiupeLpuIZXF2j15aX6Dm1spl8fta8tXZ1q5llfdm4nGKP1NBJ1TdcmzbrKKz8-hAAOmXmWaHSLN0Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176649, + "updated": 1635176649, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key231821625/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key231821625/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:10 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "675", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "7d248a6a-c7ee-4f12-a73a-dde674f2ed77", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/831ae32de6cf433ea6e5c2389fdd3ce7", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "uHPgqjln3O5Qy7STpb41u-gtKHyhqb1bAoXlBqkU6flxVT_PQkGxUae8Z2OIZDoPmfyJjcl72wUS7ObbUFSstyiQGuUxPDebTGEEVOGCseV3NzJp8cF-RhQXL0bw99rJK_0BNCL0dIYRAHEv_8EOZzd_g2z04AkJB0Ga2_ehxMdqlAfETMzqk-HXtAGuoqCPM4tXlCT4Y5Y5IW67kkakmAX8-XnqiDuksHLFg3GomrIPOtJH0HOPlCTaU0wPb44xoXKHPQus_YvzwqoJkcty3USf5C-1pkolevDNIRKULOuOuo99tuGW5Qc2hKD0tzgnXEWeRz1HXjIiVabjETJw8Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176650, + "updated": 1635176650, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key231821625/versions?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/keys/key231821625/versions?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:11 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1383", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "64f492e9-829c-4160-9dc4-65b00b198ddb", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "value": [ + { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/382ba3c704fe43658ae49939a43c53da", + "attributes": { + "enabled": true, + "created": 1635176649, + "updated": 1635176649, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + }, + { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/64e6c40cf85a4090ae253938d7e533cf", + "attributes": { + "enabled": true, + "created": 1635176649, + "updated": 1635176649, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + }, + { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/831ae32de6cf433ea6e5c2389fdd3ce7", + "attributes": { + "enabled": true, + "created": 1635176650, + "updated": 1635176650, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + }, + { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/995dccb390e54079b57dc6ccb79c2b61", + "attributes": { + "enabled": true, + "created": 1635176649, + "updated": 1635176649, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + }, + { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/ec4aba3fbced421f95e28bf248ac05e2", + "attributes": { + "enabled": true, + "created": 1635176648, + "updated": 1635176648, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + }, + { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/fdb5c92c78ea4483ad59bb351be3640d", + "attributes": { + "enabled": true, + "created": 1635176649, + "updated": 1635176649, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + ], + "nextLink": null + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key231821625?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:11 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "804", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "7d471634-9b1c-4004-a6b9-78e6692ddc2d", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key231821625", + "deletedDate": 1635176650, + "scheduledPurgeDate": 1642952650, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/831ae32de6cf433ea6e5c2389fdd3ce7", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "uHPgqjln3O5Qy7STpb41u-gtKHyhqb1bAoXlBqkU6flxVT_PQkGxUae8Z2OIZDoPmfyJjcl72wUS7ObbUFSstyiQGuUxPDebTGEEVOGCseV3NzJp8cF-RhQXL0bw99rJK_0BNCL0dIYRAHEv_8EOZzd_g2z04AkJB0Ga2_ehxMdqlAfETMzqk-HXtAGuoqCPM4tXlCT4Y5Y5IW67kkakmAX8-XnqiDuksHLFg3GomrIPOtJH0HOPlCTaU0wPb44xoXKHPQus_YvzwqoJkcty3USf5C-1pkolevDNIRKULOuOuo99tuGW5Qc2hKD0tzgnXEWeRz1HXjIiVabjETJw8Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176650, + "updated": 1635176650, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key231821625?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:11 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "80", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f516bd18-140d-4952-a946-5df82d2247d3", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key231821625" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key231821625?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:11 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "80", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8edda118-153d-4490-87ec-8d5d8b6e5883", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key231821625" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key231821625?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:11 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "80", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4e83eaa1-44e2-4e16-a664-0ce4f9986c2e", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key231821625" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key231821625?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:12 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "80", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "86a0dea5-3136-40c4-ae17-d6d437c76362", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key231821625" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key231821625?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:12 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "80", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:11 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "64b4f153-4b5d-48d6-b9e5-b9c90640d5da", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key231821625" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key231821625?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:13 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "80", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:11 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "2e33faa7-0f64-4035-911e-1ac72a0747f5", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key231821625" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key231821625?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:13 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "804", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:11 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "7e64d91a-7f59-4b11-b79a-3deb43e8793c", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key231821625", + "deletedDate": 1635176650, + "scheduledPurgeDate": 1642952650, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key231821625/831ae32de6cf433ea6e5c2389fdd3ce7", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "uHPgqjln3O5Qy7STpb41u-gtKHyhqb1bAoXlBqkU6flxVT_PQkGxUae8Z2OIZDoPmfyJjcl72wUS7ObbUFSstyiQGuUxPDebTGEEVOGCseV3NzJp8cF-RhQXL0bw99rJK_0BNCL0dIYRAHEv_8EOZzd_g2z04AkJB0Ga2_ehxMdqlAfETMzqk-HXtAGuoqCPM4tXlCT4Y5Y5IW67kkakmAX8-XnqiDuksHLFg3GomrIPOtJH0HOPlCTaU0wPb44xoXKHPQus_YvzwqoJkcty3USf5C-1pkolevDNIRKULOuOuo99tuGW5Qc2hKD0tzgnXEWeRz1HXjIiVabjETJw8Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176650, + "updated": 1635176650, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key231821625?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key231821625?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:13 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 15:44:12 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f751ab35-3245-4772-b9ba-b75bb13401f5", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestListKeys/TestListKeys_HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestListKeys/TestListKeys_HSM.json new file mode 100644 index 000000000000..1fae80840969 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestListKeys/TestListKeys_HSM.json @@ -0,0 +1,45 @@ +{ + "Entries": [ + { + "RequestUri": "https://rosebudhsm.managedhsm.azure.net/keys/key-02357843325/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key-02357843325/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "26", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:51 GMT" + }, + "RequestBody": { + "key_ops": [], + "kty": "RSA" + }, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "189", + "Content-Security-Policy": "default-src \u0027self\u0027", + "Content-Type": "application/json; charset=utf-8", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "x-ms-request-id": "5f4e1a12-35bc-11ec-b248-000d3a706e2f", + "x-ms-server-latency": "0" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "Found token with aud=https://vault.azure.net, but expected aud=https://managedhsm.azure.net (Activity ID: 5f4e1a12-35bc-11ec-b248-000d3a706e2f)" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestListKeys/TestListKeys_NON-HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestListKeys/TestListKeys_NON-HSM.json new file mode 100644 index 000000000000..60a0b7af8020 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestListKeys/TestListKeys_NON-HSM.json @@ -0,0 +1,1366 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-0173508775/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key-0173508775/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "26", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:44 GMT" + }, + "RequestBody": { + "key_ops": [], + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "686", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:43 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f9f51630-f400-4ff1-8d28-de41cfabf076", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-0173508775/e6014eb27275495ba7f66ab5a72c63c0", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "0EvGUSgI2vc4vnS7d3BNeaUtQNHXol990Dx3MUzLhGZnoV00Cm48_jQAAgbp-AUHqC-oy3TjkBKhO1JRuJ1b-K7oYiJeOJDq0p9Fq8wzI0FhTmCiEX8H9aaOdzFoQ3mxAIpgjjqQgFhqadal8DdSjyRBaRDO4Th4nBWdbJRwuYWZnVw984R1PFMRzOsDbUkjK4CMEfjHAmnHupTHB-dZBAHDhcFvPHe_yjJbTurq7Pm8BIdStOiXniRJyx3V_NIrewtXPfJNUeGOK4XWmyv9cTKj-mJUat-il8-kMKsDxuulRgEKaVgdFoj4lzVvOh50veOs9CMJk2kguft2-5vxuQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-1173508775/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key-1173508775/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "26", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:44 GMT" + }, + "RequestBody": { + "key_ops": [], + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "686", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "5a0d1772-1dde-47f1-b985-f5aaddc7fb38", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-1173508775/2959d820ebd6467a8d0563f050701c10", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "sYUsudbT-BrMiWfK9B2Od52KDB5gwWfk39Mkwn_nRqyXVsrg95jv8-c5WnxWyrguqQRkmX6fsKmur_wSP6NdcsUQtsazJApHrscFQe7ptemb7SWYrQqvMFAP53zTymssBnV8fud88kHtuJ9tpARZf0VGaXKky4G2Nr34stlTNrqvbXO3I3QY-hBaq_oCHo2XfNUj4F_TI4HkGzk-SGD694jLaMWpjbiTXJqIp5Oik-EbDCFMO9aJacK7XJOI3il75exy2PJ-w13hOGEt3h58CNP1qiRpqY5s6eXTu6Puvmjr9jSwUQOWlrqKTSf7HkGSUD930MirXnAU0tJBP_bVNQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-2173508775/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key-2173508775/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "26", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:45 GMT" + }, + "RequestBody": { + "key_ops": [], + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "686", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "3abe91fb-17f0-466e-8ed7-92bd4ef304a2", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-2173508775/2a712a09a8b24c999b1f642834344bb3", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "r1IKWD47O7qbQ4x0LYTFVAzK7qAeiZ3VLxflIZw9VWuOlFUHXTBBmHMoc-Zzb4yy9-nFoC8kSg-LT-vfZw2UBSilLGU4d8ZGeoYKDUKQXrIeNsllq1hx1GYUy7JeCRNcRUz9kU8Y5cqvtaxgMems1Kv71wE7Al1sZpOX7O2-HuhsX-MP7v6s2iwvDmGTp0eUbRfeQyKqHTXggrI3bmvuO8sQEEBQ99zsxqclTc9Wf3qf_y5RnAwG0rpLT8zilgNA26TdSQIvLsNCMqq1bRzSylSvDE5196bgSFg2AatrgM7rSv6BRNtEaH3HJUlJpTtoQO5ac0GfPI-Wdux2YpyLcQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-3173508775/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key-3173508775/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "26", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:45 GMT" + }, + "RequestBody": { + "key_ops": [], + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "686", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "16b3edd0-688e-4f73-a801-4c0f6c3df347", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-3173508775/1d723f46861140c1ae52df608c1055af", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "yFhBUcpBL00OkN3u8gjXLK5TqGUTq_FWcZWhXXnb3lO2U3-d9QfjLYU2o6D9lVL3-8DXtuSId3Djjx7nLjdwRi870fuVBlHp3dFvULNg9_yuc1C9TqBW26RPHQ9s_D0YPBGMKJCs7J_uYGUhdzS_5FTPF8NHCo8pqiClIn4q36uyEbb8AbxWBjPvcEwUTgj59hAUqm9j2_JmI_LHo1BRw-xMdqmyp0iIGdDeHrXP41oYBmUllCemUGNgg4pYX6IatUEvAsnr11kuMCFJOjGGJ1FNj_yjsmVOwfE5zmrZwSPAk-3-uvRdaWLAbi6aOEr687sG3Om90kRUK1wV286xTQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/keys?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:45 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "843", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "94346a41-ffd6-4e0c-9d28-2a703fd62c03", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "value": [ + { + "kid": "https://rosebud.vault.azure.net/keys/key-0173508775", + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + }, + { + "kid": "https://rosebud.vault.azure.net/keys/key-1173508775", + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + }, + { + "kid": "https://rosebud.vault.azure.net/keys/key-2173508775", + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + }, + { + "kid": "https://rosebud.vault.azure.net/keys/key-3173508775", + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + ], + "nextLink": null + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-0173508775?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key-0173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:46 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "817", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "ad89be02-1a0d-4284-a299-cdfbc8a1aefe", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key-0173508775", + "deletedDate": 1635184365, + "scheduledPurgeDate": 1635789165, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-0173508775/e6014eb27275495ba7f66ab5a72c63c0", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "0EvGUSgI2vc4vnS7d3BNeaUtQNHXol990Dx3MUzLhGZnoV00Cm48_jQAAgbp-AUHqC-oy3TjkBKhO1JRuJ1b-K7oYiJeOJDq0p9Fq8wzI0FhTmCiEX8H9aaOdzFoQ3mxAIpgjjqQgFhqadal8DdSjyRBaRDO4Th4nBWdbJRwuYWZnVw984R1PFMRzOsDbUkjK4CMEfjHAmnHupTHB-dZBAHDhcFvPHe_yjJbTurq7Pm8BIdStOiXniRJyx3V_NIrewtXPfJNUeGOK4XWmyv9cTKj-mJUat-il8-kMKsDxuulRgEKaVgdFoj4lzVvOh50veOs9CMJk2kguft2-5vxuQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-0173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:46 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "1b04858b-25a2-4c9d-830d-1a835e29854a", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-0173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-0173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:46 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "ff879d91-796d-44ef-a706-8fdaf9f4bec5", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-0173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-0173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:46 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "817", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "5d746d93-d13a-4fe8-b75a-d6993dfe97b5", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key-0173508775", + "deletedDate": 1635184365, + "scheduledPurgeDate": 1635789165, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-0173508775/e6014eb27275495ba7f66ab5a72c63c0", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "0EvGUSgI2vc4vnS7d3BNeaUtQNHXol990Dx3MUzLhGZnoV00Cm48_jQAAgbp-AUHqC-oy3TjkBKhO1JRuJ1b-K7oYiJeOJDq0p9Fq8wzI0FhTmCiEX8H9aaOdzFoQ3mxAIpgjjqQgFhqadal8DdSjyRBaRDO4Th4nBWdbJRwuYWZnVw984R1PFMRzOsDbUkjK4CMEfjHAmnHupTHB-dZBAHDhcFvPHe_yjJbTurq7Pm8BIdStOiXniRJyx3V_NIrewtXPfJNUeGOK4XWmyv9cTKj-mJUat-il8-kMKsDxuulRgEKaVgdFoj4lzVvOh50veOs9CMJk2kguft2-5vxuQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-0173508775?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key-0173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:46 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 17:52:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8506ffe9-901a-484f-a9fd-7550477911f6", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-1173508775?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key-1173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:46 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "817", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "afa744a1-5eaf-44db-b064-3c17b44de94b", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key-1173508775", + "deletedDate": 1635184366, + "scheduledPurgeDate": 1635789166, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-1173508775/2959d820ebd6467a8d0563f050701c10", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "sYUsudbT-BrMiWfK9B2Od52KDB5gwWfk39Mkwn_nRqyXVsrg95jv8-c5WnxWyrguqQRkmX6fsKmur_wSP6NdcsUQtsazJApHrscFQe7ptemb7SWYrQqvMFAP53zTymssBnV8fud88kHtuJ9tpARZf0VGaXKky4G2Nr34stlTNrqvbXO3I3QY-hBaq_oCHo2XfNUj4F_TI4HkGzk-SGD694jLaMWpjbiTXJqIp5Oik-EbDCFMO9aJacK7XJOI3il75exy2PJ-w13hOGEt3h58CNP1qiRpqY5s6eXTu6Puvmjr9jSwUQOWlrqKTSf7HkGSUD930MirXnAU0tJBP_bVNQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-1173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:47 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "54f1b374-d4fc-404a-a758-448d1c9b9e66", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-1173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-1173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:47 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "7912700f-fb01-4fd0-94ec-2fe967e9deae", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-1173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-1173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:47 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "3793784f-aa8c-4b56-8c0a-9be41a830b79", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-1173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-1173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:47 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "817", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "447173e6-30f0-40f6-99e1-0c79cfa6ddf7", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key-1173508775", + "deletedDate": 1635184366, + "scheduledPurgeDate": 1635789166, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-1173508775/2959d820ebd6467a8d0563f050701c10", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "sYUsudbT-BrMiWfK9B2Od52KDB5gwWfk39Mkwn_nRqyXVsrg95jv8-c5WnxWyrguqQRkmX6fsKmur_wSP6NdcsUQtsazJApHrscFQe7ptemb7SWYrQqvMFAP53zTymssBnV8fud88kHtuJ9tpARZf0VGaXKky4G2Nr34stlTNrqvbXO3I3QY-hBaq_oCHo2XfNUj4F_TI4HkGzk-SGD694jLaMWpjbiTXJqIp5Oik-EbDCFMO9aJacK7XJOI3il75exy2PJ-w13hOGEt3h58CNP1qiRpqY5s6eXTu6Puvmjr9jSwUQOWlrqKTSf7HkGSUD930MirXnAU0tJBP_bVNQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-1173508775?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key-1173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:48 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 17:52:47 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b14de947-0cf7-4c52-993d-0066638864be", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-2173508775?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key-2173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:48 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "817", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "858ae118-077c-4375-bcf8-e008aa7d0f50", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key-2173508775", + "deletedDate": 1635184368, + "scheduledPurgeDate": 1635789168, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-2173508775/2a712a09a8b24c999b1f642834344bb3", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "r1IKWD47O7qbQ4x0LYTFVAzK7qAeiZ3VLxflIZw9VWuOlFUHXTBBmHMoc-Zzb4yy9-nFoC8kSg-LT-vfZw2UBSilLGU4d8ZGeoYKDUKQXrIeNsllq1hx1GYUy7JeCRNcRUz9kU8Y5cqvtaxgMems1Kv71wE7Al1sZpOX7O2-HuhsX-MP7v6s2iwvDmGTp0eUbRfeQyKqHTXggrI3bmvuO8sQEEBQ99zsxqclTc9Wf3qf_y5RnAwG0rpLT8zilgNA26TdSQIvLsNCMqq1bRzSylSvDE5196bgSFg2AatrgM7rSv6BRNtEaH3HJUlJpTtoQO5ac0GfPI-Wdux2YpyLcQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-2173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:48 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "3e08fae3-34f8-415c-bb9d-d6fc517e6574", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-2173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-2173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:49 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "3dd7cb09-1ee0-498f-9fb8-0e689ea7cf19", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-2173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-2173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:49 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "817", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c60c2ccf-f9d7-40cd-9578-159286b815f6", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key-2173508775", + "deletedDate": 1635184368, + "scheduledPurgeDate": 1635789168, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-2173508775/2a712a09a8b24c999b1f642834344bb3", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "r1IKWD47O7qbQ4x0LYTFVAzK7qAeiZ3VLxflIZw9VWuOlFUHXTBBmHMoc-Zzb4yy9-nFoC8kSg-LT-vfZw2UBSilLGU4d8ZGeoYKDUKQXrIeNsllq1hx1GYUy7JeCRNcRUz9kU8Y5cqvtaxgMems1Kv71wE7Al1sZpOX7O2-HuhsX-MP7v6s2iwvDmGTp0eUbRfeQyKqHTXggrI3bmvuO8sQEEBQ99zsxqclTc9Wf3qf_y5RnAwG0rpLT8zilgNA26TdSQIvLsNCMqq1bRzSylSvDE5196bgSFg2AatrgM7rSv6BRNtEaH3HJUlJpTtoQO5ac0GfPI-Wdux2YpyLcQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-2173508775?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key-2173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:49 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 17:52:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "b3314e17-4ecb-4ccb-a13a-ff40eed44dcf", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key-3173508775?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key-3173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:49 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "817", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "351be17e-ea50-4ace-b963-bdac5e070c23", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key-3173508775", + "deletedDate": 1635184369, + "scheduledPurgeDate": 1635789169, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-3173508775/1d723f46861140c1ae52df608c1055af", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "yFhBUcpBL00OkN3u8gjXLK5TqGUTq_FWcZWhXXnb3lO2U3-d9QfjLYU2o6D9lVL3-8DXtuSId3Djjx7nLjdwRi870fuVBlHp3dFvULNg9_yuc1C9TqBW26RPHQ9s_D0YPBGMKJCs7J_uYGUhdzS_5FTPF8NHCo8pqiClIn4q36uyEbb8AbxWBjPvcEwUTgj59hAUqm9j2_JmI_LHo1BRw-xMdqmyp0iIGdDeHrXP41oYBmUllCemUGNgg4pYX6IatUEvAsnr11kuMCFJOjGGJ1FNj_yjsmVOwfE5zmrZwSPAk-3-uvRdaWLAbi6aOEr687sG3Om90kRUK1wV286xTQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-3173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:49 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "65447c75-8649-4442-a8f6-72e9d36448e9", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-3173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-3173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:49 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4138eefb-ba3d-4c1d-8ff3-f80962b505c7", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-3173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-3173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:50 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:49 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "439748b1-cf23-4f9f-b456-a488fef47510", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-3173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-3173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:50 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:49 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "52aa7902-e0a6-4d7c-a015-df5e20304be0", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-3173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-3173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:50 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "82", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:49 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f9041974-2c68-4662-822d-313cf948376c", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key-3173508775" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3173508775?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key-3173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:51 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "817", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 17:52:50 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "39dbaf1f-0861-47d8-a9e2-1b9df503d988", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key-3173508775", + "deletedDate": 1635184369, + "scheduledPurgeDate": 1635789169, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key-3173508775/1d723f46861140c1ae52df608c1055af", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "yFhBUcpBL00OkN3u8gjXLK5TqGUTq_FWcZWhXXnb3lO2U3-d9QfjLYU2o6D9lVL3-8DXtuSId3Djjx7nLjdwRi870fuVBlHp3dFvULNg9_yuc1C9TqBW26RPHQ9s_D0YPBGMKJCs7J_uYGUhdzS_5FTPF8NHCo8pqiClIn4q36uyEbb8AbxWBjPvcEwUTgj59hAUqm9j2_JmI_LHo1BRw-xMdqmyp0iIGdDeHrXP41oYBmUllCemUGNgg4pYX6IatUEvAsnr11kuMCFJOjGGJ1FNj_yjsmVOwfE5zmrZwSPAk-3-uvRdaWLAbi6aOEr687sG3Om90kRUK1wV286xTQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635184364, + "updated": 1635184364, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key-3173508775?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key-3173508775?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 17:52:51 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 17:52:50 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "2647d99d-2404-4914-aba4-b8a0b2620463", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/recordings/TestUpdateKeyProperties.json b/sdk/keyvault/azkeys/testdata/recordings/TestRecoverDeletedKey/TestRecoverDeletedKey_NON-HSM.json similarity index 58% rename from sdk/keyvault/azkeys/recordings/TestUpdateKeyProperties.json rename to sdk/keyvault/azkeys/testdata/recordings/TestRecoverDeletedKey/TestRecoverDeletedKey_NON-HSM.json index 1dfa950cd1de..185ce377eeb3 100644 --- a/sdk/keyvault/azkeys/recordings/TestUpdateKeyProperties.json +++ b/sdk/keyvault/azkeys/testdata/recordings/TestRecoverDeletedKey/TestRecoverDeletedKey_NON-HSM.json @@ -1,12 +1,12 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key325792650/create?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/create?api-version=7.3-preview", "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", ":method": "POST", - ":path": "/keys/key325792650/create?api-version=7.2", + ":path": "/keys/key108732465/create?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", @@ -14,7 +14,7 @@ "Content-Length": "13", "Content-Type": "application/json", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:32 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:48 GMT" }, "RequestBody": { "kty": "RSA" @@ -22,22 +22,22 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "685", + "Content-Length": "675", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:30 GMT", + "Date": "Mon, 25 Oct 2021 15:43:47 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "242768e5-65f1-4a54-939d-fcdf0fca8c75", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "2424944b-3f99-4a09-a025-6aeb5b9d1080", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "key": { - "kid": "https://seankane.vault.azure.net/keys/key325792650/60611fc8b4214ac0b09d0ce89d190242", + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", "kty": "RSA", "key_ops": [ "encrypt", @@ -47,143 +47,89 @@ "wrapKey", "unwrapKey" ], - "n": "zszwiNqeuCyn6a4MsnEc6BwOg8VVTqGK-xVjgX5FdHBD3FmKR3gkgQhMzYr93etYhb2LtpMhHzsl9Qvq3Hiyjv8D9Ecu-ORngtW29XMkVkHzOgxkrj83mgFVyu9DxIoHjgdm4RS6kB4_InI5UTT9neeGB2SyxIRH56kjjTDF0SyNESJrFT74jXSkJeOtSg_ZFNLNlXvcvx5SatpDoBHBUr1q5-AN9E2SpoyYEZkLwFEknfBHy9sCKUowHID4kcZG3sCBajlXJZcZNec2sR9mCGDybpkstwNG7He0LpV3IFnraM55DwZvWoZZak0W6xr1qQT21BgY831cM2Kzy1FsQQ", + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227350, - "updated": 1634227350, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key325792650/?api-version=7.2", - "RequestMethod": "PATCH", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "PATCH", - ":path": "/keys/key325792650/?api-version=7.2", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "37", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:32 GMT" - }, - "RequestBody": { - "key_ops": [], - "tags": { - "Tag1": "Val1" - } - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "651", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "e5fffeaa-d1c0-49da-9c9d-e2c9ae7d1f09", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "key": { - "kid": "https://seankane.vault.azure.net/keys/key325792650/60611fc8b4214ac0b09d0ce89d190242", - "kty": "RSA", - "key_ops": [], - "n": "zszwiNqeuCyn6a4MsnEc6BwOg8VVTqGK-xVjgX5FdHBD3FmKR3gkgQhMzYr93etYhb2LtpMhHzsl9Qvq3Hiyjv8D9Ecu-ORngtW29XMkVkHzOgxkrj83mgFVyu9DxIoHjgdm4RS6kB4_InI5UTT9neeGB2SyxIRH56kjjTDF0SyNESJrFT74jXSkJeOtSg_ZFNLNlXvcvx5SatpDoBHBUr1q5-AN9E2SpoyYEZkLwFEknfBHy9sCKUowHID4kcZG3sCBajlXJZcZNec2sR9mCGDybpkstwNG7He0LpV3IFnraM55DwZvWoZZak0W6xr1qQT21BgY831cM2Kzy1FsQQ", - "e": "AQAB" - }, - "attributes": { - "enabled": true, - "created": 1634227350, - "updated": 1634227350, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "tags": { - "Tag1": "Val1" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/keys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465?api-version=7.3-preview", "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", ":method": "DELETE", - ":path": "/keys/key325792650?api-version=7.2", + ":path": "/keys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:32 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:48 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "781", + "Content-Length": "804", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:30 GMT", + "Date": "Mon, 25 Oct 2021 15:43:47 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "76f2fd69-aae7-477c-b3a8-86cd6d39edef", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "23974ca0-d2de-4414-8486-c989e5205493", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key325792650", - "deletedDate": 1634227351, - "scheduledPurgeDate": 1634832151, + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key108732465", + "deletedDate": 1635176628, + "scheduledPurgeDate": 1642952628, "key": { - "kid": "https://seankane.vault.azure.net/keys/key325792650/60611fc8b4214ac0b09d0ce89d190242", + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", "kty": "RSA", - "key_ops": [], - "n": "zszwiNqeuCyn6a4MsnEc6BwOg8VVTqGK-xVjgX5FdHBD3FmKR3gkgQhMzYr93etYhb2LtpMhHzsl9Qvq3Hiyjv8D9Ecu-ORngtW29XMkVkHzOgxkrj83mgFVyu9DxIoHjgdm4RS6kB4_InI5UTT9neeGB2SyxIRH56kjjTDF0SyNESJrFT74jXSkJeOtSg_ZFNLNlXvcvx5SatpDoBHBUr1q5-AN9E2SpoyYEZkLwFEknfBHy9sCKUowHID4kcZG3sCBajlXJZcZNec2sR9mCGDybpkstwNG7He0LpV3IFnraM55DwZvWoZZak0W6xr1qQT21BgY831cM2Kzy1FsQQ", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227350, - "updated": 1634227350, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "tags": { - "Tag1": "Val1" + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:33 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:48 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -191,37 +137,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:31 GMT", + "Date": "Mon, 25 Oct 2021 15:43:47 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "77e64376-f199-443e-a535-252529ab8a8b", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "d3fb3b14-caf7-4511-8b53-eef29979dd42", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:33 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:49 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -229,37 +175,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:31 GMT", + "Date": "Mon, 25 Oct 2021 15:43:47 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "dfb12bcf-2349-40bc-967f-4aa2e3282903", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a5523cfb-a890-4ac2-bf99-d0bc64cd6d4f", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:33 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:49 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -267,37 +213,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:31 GMT", + "Date": "Mon, 25 Oct 2021 15:43:47 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "4bb3f551-2133-4889-ab9e-4730f7d40d74", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "6367446d-dcbc-4dd9-8cb8-182c2b9cd3d4", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:33 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:49 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -305,37 +251,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:31 GMT", + "Date": "Mon, 25 Oct 2021 15:43:48 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "fdb4af3a-a06d-494c-a3d0-488c40af6087", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "e92f0c9a-8b0a-4681-9674-962352fda909", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:34 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:50 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -343,455 +289,564 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:32 GMT", + "Date": "Mon, 25 Oct 2021 15:43:48 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "8287474f-4ae6-4706-9fe2-3b339307fe4b", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "ad5d1f38-ba15-4dc9-abee-a97aeb01b69e", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:34 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:50 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "804", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:32 GMT", + "Date": "Mon, 25 Oct 2021 15:43:48 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "08ffcb8c-56b3-4d3c-ba13-279cb618752f", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4c55ed3b-2e1e-4e20-816c-5ce50b30560e", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key108732465", + "deletedDate": 1635176628, + "scheduledPurgeDate": 1642952628, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465/recover?api-version=7.3-preview", + "RequestMethod": "POST", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":method": "POST", + ":path": "/deletedkeys/key108732465/recover?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", + "Content-Length": "0", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:34 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:50 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "675", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:32 GMT", + "Date": "Mon, 25 Oct 2021 15:43:50 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "27fdb7f2-7a77-4ab4-aede-635aee68862a", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "de99c817-52a3-47df-8219-4b5872099de7", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/keys/key108732465/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:35 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:50 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "300", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:33 GMT", + "Date": "Mon, 25 Oct 2021 15:43:50 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "56115a96-78e3-40b1-82df-716e2f0fd0a9", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "9366a5cc-425f-4a4c-a7d3-1fa5e876780b", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "A key with (name/id) key108732465 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/keys/key108732465/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:35 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:50 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "300", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:33 GMT", + "Date": "Mon, 25 Oct 2021 15:43:50 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3380ac36-d7e5-4228-a89a-956956d6011f", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "6a41f296-d7c2-40a5-ae0f-08ecf7bca74e", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "A key with (name/id) key108732465 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/keys/key108732465/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:36 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:51 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "300", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:33 GMT", + "Date": "Mon, 25 Oct 2021 15:43:50 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "3268c63e-9589-496b-8f95-1da3d81c5cf8", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c2b054e7-afd1-4518-8b54-fbd1e7c3bf08", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "A key with (name/id) key108732465 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/keys/key108732465/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:36 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:51 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "300", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:34 GMT", + "Date": "Mon, 25 Oct 2021 15:43:51 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "b25d75b4-f029-4550-8a2e-eff866a689cd", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "6da368b6-7651-42fe-89fe-16be83e472c2", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "A key with (name/id) key108732465 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/keys/key108732465/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:36 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:52 GMT" }, "RequestBody": null, "StatusCode": 404, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "300", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:34 GMT", + "Date": "Mon, 25 Oct 2021 15:43:51 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "5a644134-88a5-4091-8448-285646d769b6", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "6b8818dc-328b-4d23-9880-f3edfba04c28", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "A key with (name/id) key108732465 was not found in this key vault. If you recently deleted this key you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/keys/key108732465/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:37 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:52 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "675", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:34 GMT", + "Date": "Mon, 25 Oct 2021 15:43:51 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "bdd4d299-48ee-46b7-b505-ae0251b2ca2b", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "2a900dbd-f06e-4b08-a7b5-84b99cd9b0de", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/keys/key108732465/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:37 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:52 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "675", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:35 GMT", + "Date": "Mon, 25 Oct 2021 15:43:52 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "92e85e78-214b-4e32-96b5-085b3e138a19", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c1f9423f-6e1c-480e-8253-85f2f1aa1940", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465/?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/keys/key108732465/?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:37 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:52 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "675", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:35 GMT", + "Date": "Mon, 25 Oct 2021 15:43:52 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "94580ad2-7603-4640-93ea-5904bf4702b8", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a156fd8d-11bd-4b78-ac85-3efd439ad221", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", - "RequestMethod": "GET", + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key108732465?api-version=7.3-preview", + "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":method": "DELETE", + ":path": "/keys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:38 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:53 GMT" }, "RequestBody": null, - "StatusCode": 404, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "80", + "Content-Length": "804", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:35 GMT", + "Date": "Mon, 25 Oct 2021 15:43:52 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "75848c83-dcd0-4dbb-80bd-5bd3d907adf8", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "bc21d4fb-8af0-4b26-83ba-9cc56945365b", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "error": { - "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key108732465", + "deletedDate": 1635176632, + "scheduledPurgeDate": 1642952632, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:38 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:53 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -799,37 +854,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:36 GMT", + "Date": "Mon, 25 Oct 2021 15:43:52 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "9d8986f9-d7d5-4821-9810-fd64ccee40fd", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "43420e5b-d705-4e82-9daf-b9252d1dd852", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:39 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:53 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -837,37 +892,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:36 GMT", + "Date": "Mon, 25 Oct 2021 15:43:52 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "64b66653-6c3c-4f61-9ebf-a571792e9fe9", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "dd9895ea-68bc-4488-a7c5-db460a14c829", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:39 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:53 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -875,37 +930,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:36 GMT", + "Date": "Mon, 25 Oct 2021 15:43:53 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "02a768e4-8fdb-4f5c-a562-59400b93c8b1", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "e591467f-9f96-4d2b-a6c4-cb6703b7a366", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:39 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:54 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -913,37 +968,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:37 GMT", + "Date": "Mon, 25 Oct 2021 15:43:53 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "daab37f3-fad4-4de2-8dff-fc77e6cfaf12", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "9392c936-d17e-43f5-a29f-bddcae4d3988", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:40 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:54 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -951,37 +1006,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:37 GMT", + "Date": "Mon, 25 Oct 2021 15:43:53 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "46d1c6c0-c56b-44cc-b224-1b3c25c149a2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f69b7bc2-0fd5-4eec-895a-9672743140fb", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:40 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:54 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -989,37 +1044,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:37 GMT", + "Date": "Mon, 25 Oct 2021 15:43:54 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2edcdc20-7c4e-4ed1-bff6-f4da64c647bd", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "97575b9f-cf64-4301-b421-2c38d45e3a73", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:40 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:55 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -1027,37 +1082,37 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:38 GMT", + "Date": "Mon, 25 Oct 2021 15:43:54 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "2d612c42-69fd-48d5-b960-15e30267323f", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "43f422c9-17e6-4d36-960d-bda6795da67e", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:41 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:55 GMT" }, "RequestBody": null, "StatusCode": 404, @@ -1065,105 +1120,109 @@ "Cache-Control": "no-cache", "Content-Length": "80", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:38 GMT", + "Date": "Mon, 25 Oct 2021 15:43:54 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "f98ce4bc-9531-4393-9e7e-6815a98f5f8c", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "6ff711f7-c6e8-4ab0-8fa2-11603724752a", "X-Powered-By": "ASP.NET" }, "ResponseBody": { "error": { "code": "KeyNotFound", - "message": "Deleted Key not found: key325792650" + "message": "Deleted Key not found: key108732465" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "GET", "RequestHeaders": { ":authority": "localhost:5001", ":method": "GET", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:41 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:55 GMT" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "781", + "Content-Length": "804", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 14 Oct 2021 16:02:38 GMT", + "Date": "Mon, 25 Oct 2021 15:43:55 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "c83f9f3f-1022-4961-9607-c6ce65e98dd7", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8f4ad398-40ed-486b-9fcc-d10688bf469a", "X-Powered-By": "ASP.NET" }, "ResponseBody": { - "recoveryId": "https://seankane.vault.azure.net/deletedkeys/key325792650", - "deletedDate": 1634227351, - "scheduledPurgeDate": 1634832151, + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key108732465", + "deletedDate": 1635176632, + "scheduledPurgeDate": 1642952632, "key": { - "kid": "https://seankane.vault.azure.net/keys/key325792650/60611fc8b4214ac0b09d0ce89d190242", + "kid": "https://rosebud.vault.azure.net/keys/key108732465/1c6129ddb84a431faf32eb94939ac468", "kty": "RSA", - "key_ops": [], - "n": "zszwiNqeuCyn6a4MsnEc6BwOg8VVTqGK-xVjgX5FdHBD3FmKR3gkgQhMzYr93etYhb2LtpMhHzsl9Qvq3Hiyjv8D9Ecu-ORngtW29XMkVkHzOgxkrj83mgFVyu9DxIoHjgdm4RS6kB4_InI5UTT9neeGB2SyxIRH56kjjTDF0SyNESJrFT74jXSkJeOtSg_ZFNLNlXvcvx5SatpDoBHBUr1q5-AN9E2SpoyYEZkLwFEknfBHy9sCKUowHID4kcZG3sCBajlXJZcZNec2sR9mCGDybpkstwNG7He0LpV3IFnraM55DwZvWoZZak0W6xr1qQT21BgY831cM2Kzy1FsQQ", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ycVFwrHcGADV8kBmmUqGTus5CXSeAWoYVzl7J0yUQ_MjLp7pkcl0lA8Ou6YRyxVt9-tLiTfqcBIgWbv3Rix3h7ly6KI8I8COegUFbHg3uvpX0TmZzPdqnl_tme9hpQCIPcLVH-OP-c3Ufiv3WrKdYwxAw3tlbklVx3i-5HfmBTKnMJRFhmj1QOarp43R7GtzU_0uROYlXchiXvqCcPejSaFwdXsleZvVwIYzKKaQMY-OYMGr13iwplibjJpOme_VfRUe3mfoloCRZqNY2JaiaBdopOTF5niInoBjBhhA6CRor-dWnMOxxvhSOd_nFEckQeWN-fknuvWqTsjQEJ_F-Q", "e": "AQAB" }, "attributes": { "enabled": true, - "created": 1634227350, - "updated": 1634227350, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "tags": { - "Tag1": "Val1" + "created": 1635176627, + "updated": 1635176627, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key325792650?api-version=7.2", + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key108732465?api-version=7.3-preview", "RequestMethod": "DELETE", "RequestHeaders": { ":authority": "localhost:5001", ":method": "DELETE", - ":path": "/deletedkeys/key325792650?api-version=7.2", + ":path": "/deletedkeys/key108732465?api-version=7.3-preview", ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", - "x-ms-date": "Thu, 14 Oct 2021 16:02:41 GMT" + "x-ms-date": "Mon, 25 Oct 2021 15:43:55 GMT" }, "RequestBody": null, "StatusCode": 204, "ResponseHeaders": { "Cache-Control": "no-cache", - "Date": "Thu, 14 Oct 2021 16:02:39 GMT", + "Date": "Mon, 25 Oct 2021 15:43:55 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.132.3", - "x-ms-request-id": "05043bd9-caed-4235-a2b7-27e63dd739ef", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "77e020e2-4858-4a4b-8463-3717733a19eb", "X-Powered-By": "ASP.NET" }, "ResponseBody": null diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestRotateKey/TestRotateKey_NON-HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestRotateKey/TestRotateKey_NON-HSM.json new file mode 100644 index 000000000000..b4a7450137b4 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestRotateKey/TestRotateKey_NON-HSM.json @@ -0,0 +1,647 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3297178601/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key3297178601/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:14 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "676", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:12 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8cd8a0fe-1a87-4c7b-b3eb-d398bcc01fe6", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3297178601/ed99ad227ec64afd928a0d3be93aa78b", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "_RrnP3E0liZriJtK2KUnGHVolpa-zCBToMZqG9BcJGSCm8weiHV7Bht5JVi7Xs3F8hKRLWaOargvbtSlhar_pvpuKr3OAY5qOa5K-QpznfYNZfYZBx_tVvHa6XXV1JGOn7usdOURtTIdK5YzJnC1TS41rrXizeMzAAuXIMhDjoYsyxZ-cpYkziiSNCQt962Jym0vfnpmwTakc5NHhCcaPOT1TlAB7DFIVcyEuWjmWAmHgbcJ6mS4fFsfyUYcIle5hjPgP03YqzS0KOvFoWsV8lmPH5eszl5efWV99UlP-OMWYFf63QgY6LJbsf2y327sGj2KqNiS-S7G9GfFSuLm5Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176653, + "updated": 1635176653, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3297178601/rotate?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key3297178601/rotate?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "0", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:14 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "676", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "617ab955-a2dc-4eed-8a65-fa49d40aae2b", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3297178601/9b0d78a7dad94e5d987a476139622928", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "xwRw3WwrK2ooE8NI3Evwyx5cPf4VIQMzb-cF6CYl1JwpAdGL_dum0p-hK3zZYWpHZXQlrD080ZJahV18l4xocZZLGYBSxUQXvOUXlL6sQzEgMwf4VlsdZeV6OOr_HvSAGhZmQU4NsfvntxPPR5OQixNYZEBjf1K5hEODsotF4UAProWiSMukQ_QcRHd8sRlcNvXJUv3a8cbmyhGzKwfTDfOMOJ-M2Wz0afEk0_CovA7ppMH9lm9DSsWsHxyIroXxD2H_N11dr4WKuB4klEEJP3EiW1KmbX4kR51zZDPTw15rwYiWDM4JsezwQxv_SM8e_-Yq2iD-0hxKOeHKMvSu9Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176654, + "updated": 1635176654, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3297178601?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:14 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "806", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "08b3d88f-c8e0-464b-b7e5-4a434e340fd5", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3297178601", + "deletedDate": 1635176654, + "scheduledPurgeDate": 1642952654, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3297178601/9b0d78a7dad94e5d987a476139622928", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "xwRw3WwrK2ooE8NI3Evwyx5cPf4VIQMzb-cF6CYl1JwpAdGL_dum0p-hK3zZYWpHZXQlrD080ZJahV18l4xocZZLGYBSxUQXvOUXlL6sQzEgMwf4VlsdZeV6OOr_HvSAGhZmQU4NsfvntxPPR5OQixNYZEBjf1K5hEODsotF4UAProWiSMukQ_QcRHd8sRlcNvXJUv3a8cbmyhGzKwfTDfOMOJ-M2Wz0afEk0_CovA7ppMH9lm9DSsWsHxyIroXxD2H_N11dr4WKuB4klEEJP3EiW1KmbX4kR51zZDPTw15rwYiWDM4JsezwQxv_SM8e_-Yq2iD-0hxKOeHKMvSu9Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176654, + "updated": 1635176654, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:15 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "7f442635-961f-455a-aba5-3310facd382b", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:15 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "0589891f-8925-4213-a508-285dbe0bb34d", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:15 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "21a8e5d4-4ece-4ad4-9445-bd226cedbb43", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:15 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:14 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "7b0b89c8-f7b8-4cd0-b8b1-c0939be49ffe", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:16 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:14 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "995129d3-5855-4fd4-8a77-9d8b6f8fd3aa", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:16 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "dcda4c05-63b3-4438-95f4-358461a4487a", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:17 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "cc860ec4-53bd-4f1d-925c-1de3e0f989af", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:17 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "4d9b96e2-2923-4a25-ac39-e9b8451ef4f2", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:17 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:17 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "64c2468d-9f10-40dd-b673-dcff6fffebaf", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:18 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:17 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "95751814-b75e-4c37-85e9-d24ce4889058", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3297178601" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:18 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "806", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:17 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "624447d7-5e91-4223-8b63-d84c382599b1", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3297178601", + "deletedDate": 1635176654, + "scheduledPurgeDate": 1642952654, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3297178601/9b0d78a7dad94e5d987a476139622928", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "xwRw3WwrK2ooE8NI3Evwyx5cPf4VIQMzb-cF6CYl1JwpAdGL_dum0p-hK3zZYWpHZXQlrD080ZJahV18l4xocZZLGYBSxUQXvOUXlL6sQzEgMwf4VlsdZeV6OOr_HvSAGhZmQU4NsfvntxPPR5OQixNYZEBjf1K5hEODsotF4UAProWiSMukQ_QcRHd8sRlcNvXJUv3a8cbmyhGzKwfTDfOMOJ-M2Wz0afEk0_CovA7ppMH9lm9DSsWsHxyIroXxD2H_N11dr4WKuB4klEEJP3EiW1KmbX4kR51zZDPTw15rwYiWDM4JsezwQxv_SM8e_-Yq2iD-0hxKOeHKMvSu9Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176654, + "updated": 1635176654, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3297178601?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key3297178601?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:18 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 15:44:18 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "519e6cbd-ca00-4f2f-8240-079992275eb1", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestUpdateKeyProperties/TestUpdateKeyProperties_NON-HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestUpdateKeyProperties/TestUpdateKeyProperties_NON-HSM.json new file mode 100644 index 000000000000..41accbae2f09 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestUpdateKeyProperties/TestUpdateKeyProperties_NON-HSM.json @@ -0,0 +1,603 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3533325025/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key3533325025/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:56 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "676", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:55 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "0af11ff0-cb9a-4873-aca5-d9da560e137b", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3533325025/0561774a65984d3a82d8d81140f8f699", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "o5fZsh5SSXVR0lnngKRgRm-9FPRAp7y37gxmw8c0I87mdUNFeoVmkmSbQO7lw66VttJ4VtpRtCZ_WooK54dcgEGMdw9CPCkpyRfqILXB65DHW_uyioQcIg0dQbDMhiqf-fTOTVXTsiudPmsP1d-MF4hHutZCiTaRIwjixu92IJnaQhJZTsR04DlSEbriJDrooK8KY8CMjCS95ix9vCTXTyL9rlGrDlCrjQaXDe4Otr-HzHZ_yoijKOfh_nxHJXc4R84kVVPOdWlItGGHyP3B2zPYJnW92H8VP_wrZ0aeZhlKO89zHp1QOCX0hK7T6mvRC7Pn2tdtLMzyQ1m8nSlkzQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176635, + "updated": 1635176635, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3533325025/?api-version=7.3-preview", + "RequestMethod": "PATCH", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "PATCH", + ":path": "/keys/key3533325025/?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "37", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:56 GMT" + }, + "RequestBody": { + "key_ops": [], + "tags": { + "Tag1": "Val1" + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "642", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:56 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "fe695901-9450-435e-8c77-e788533e6956", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3533325025/0561774a65984d3a82d8d81140f8f699", + "kty": "RSA", + "key_ops": [], + "n": "o5fZsh5SSXVR0lnngKRgRm-9FPRAp7y37gxmw8c0I87mdUNFeoVmkmSbQO7lw66VttJ4VtpRtCZ_WooK54dcgEGMdw9CPCkpyRfqILXB65DHW_uyioQcIg0dQbDMhiqf-fTOTVXTsiudPmsP1d-MF4hHutZCiTaRIwjixu92IJnaQhJZTsR04DlSEbriJDrooK8KY8CMjCS95ix9vCTXTyL9rlGrDlCrjQaXDe4Otr-HzHZ_yoijKOfh_nxHJXc4R84kVVPOdWlItGGHyP3B2zPYJnW92H8VP_wrZ0aeZhlKO89zHp1QOCX0hK7T6mvRC7Pn2tdtLMzyQ1m8nSlkzQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176635, + "updated": 1635176636, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + }, + "tags": { + "Tag1": "Val1" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key3533325025?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:56 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "772", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:56 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "405c6278-0cd1-4c51-bee0-899b5c239484", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3533325025", + "deletedDate": 1635176636, + "scheduledPurgeDate": 1642952636, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3533325025/0561774a65984d3a82d8d81140f8f699", + "kty": "RSA", + "key_ops": [], + "n": "o5fZsh5SSXVR0lnngKRgRm-9FPRAp7y37gxmw8c0I87mdUNFeoVmkmSbQO7lw66VttJ4VtpRtCZ_WooK54dcgEGMdw9CPCkpyRfqILXB65DHW_uyioQcIg0dQbDMhiqf-fTOTVXTsiudPmsP1d-MF4hHutZCiTaRIwjixu92IJnaQhJZTsR04DlSEbriJDrooK8KY8CMjCS95ix9vCTXTyL9rlGrDlCrjQaXDe4Otr-HzHZ_yoijKOfh_nxHJXc4R84kVVPOdWlItGGHyP3B2zPYJnW92H8VP_wrZ0aeZhlKO89zHp1QOCX0hK7T6mvRC7Pn2tdtLMzyQ1m8nSlkzQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176635, + "updated": 1635176636, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + }, + "tags": { + "Tag1": "Val1" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:56 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:56 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "a9c2a518-6391-4602-8618-0bd6dd33831c", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:57 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:56 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "1730b048-de0b-4234-8d26-af21c3ac09d1", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:57 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:56 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "be9e2493-4428-4d01-a1bf-3cb0cf84e1f9", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:57 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "51e5bf8d-5f20-43ef-86f4-4f1d3a84a6c2", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:58 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f994f32f-a616-420b-9e3d-ce14b76c3737", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:58 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "01105fa2-3c88-4b5d-a784-a05930da20d3", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:58 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "249b6a56-0c38-4a5d-aea3-287e422f8fce", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:59 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "1ae65bb0-b776-4543-8205-74bbaf9cb110", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:43:59 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "2bea3c97-f84e-45bb-9a68-f597ba08f451", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key3533325025" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:00 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "772", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:43:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f284ba15-3c79-4aa8-b88e-2d9eafb57ad6", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key3533325025", + "deletedDate": 1635176636, + "scheduledPurgeDate": 1642952636, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key3533325025/0561774a65984d3a82d8d81140f8f699", + "kty": "RSA", + "key_ops": [], + "n": "o5fZsh5SSXVR0lnngKRgRm-9FPRAp7y37gxmw8c0I87mdUNFeoVmkmSbQO7lw66VttJ4VtpRtCZ_WooK54dcgEGMdw9CPCkpyRfqILXB65DHW_uyioQcIg0dQbDMhiqf-fTOTVXTsiudPmsP1d-MF4hHutZCiTaRIwjixu92IJnaQhJZTsR04DlSEbriJDrooK8KY8CMjCS95ix9vCTXTyL9rlGrDlCrjQaXDe4Otr-HzHZ_yoijKOfh_nxHJXc4R84kVVPOdWlItGGHyP3B2zPYJnW92H8VP_wrZ0aeZhlKO89zHp1QOCX0hK7T6mvRC7Pn2tdtLMzyQ1m8nSlkzQ", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176635, + "updated": 1635176636, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + }, + "tags": { + "Tag1": "Val1" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key3533325025?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key3533325025?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:00 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 15:43:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "13e3b1fe-6c17-401a-9bb2-a54675152fe7", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/testdata/recordings/TestUpdateKeyRotationPolicy/TestUpdateKeyRotationPolicy_NON-HSM.json b/sdk/keyvault/azkeys/testdata/recordings/TestUpdateKeyRotationPolicy/TestUpdateKeyRotationPolicy_NON-HSM.json new file mode 100644 index 000000000000..5a5f59ac4cb9 --- /dev/null +++ b/sdk/keyvault/azkeys/testdata/recordings/TestUpdateKeyRotationPolicy/TestUpdateKeyRotationPolicy_NON-HSM.json @@ -0,0 +1,467 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1190835325/create?api-version=7.3-preview", + "RequestMethod": "POST", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "POST", + ":path": "/keys/key1190835325/create?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "13", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:21 GMT" + }, + "RequestBody": { + "kty": "RSA" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "676", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:21 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "93d55293-2e89-4a06-abf7-99c040bf4094", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key1190835325/197178996693479196a2136cf88ff37b", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ptCoe_yp5Fctb6MeZ0jSpBKfuNib_h_Xw7y3SdTLHPuaxEiDgDjaM3gJgnmBDZelI5zD89eRKxgCEuANGvzyY5NeHpYS_6rrYRZ1zU1aIwOGYDWi1CtfeWXJpJJR4fUzcEMXvCrhd2-dp2DgOlY0R0Wu0m86PERZcC4bpD0yJEtmcOWq9sgG8qHdUv1TtatYQzTRayek72qFZBt9fWREjfaB3i4WrlfLgiKz2kzKG2TSiDm52j7CtcXhv84XGAmhfGIYPYGfz9XNyl65KGuDO0EwrDGpu8g75aLX3UTcHUvMUz78AK171UqlE5cBrzwtpydbCtX6mjolIWyjqWLq6Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176661, + "updated": 1635176661, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1190835325/rotationpolicy?api-version=7.3-preview", + "RequestMethod": "PUT", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "PUT", + ":path": "/keys/key1190835325/rotationpolicy?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "123", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:22 GMT" + }, + "RequestBody": { + "attributes": { + "expiryTime": "P90D" + }, + "lifetimeActions": [ + { + "action": { + "type": "notify" + }, + "trigger": { + "timeBeforeExpiry": "P30D" + } + } + ] + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "238", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:21 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "588519d6-28be-4276-9df4-bb21e05c4c8c", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "id": "https://rosebud.vault.azure.net/keys/key1190835325/rotationpolicy", + "lifetimeActions": [ + { + "trigger": { + "timeBeforeExpiry": "P30D" + }, + "action": { + "type": "Notify" + } + } + ], + "attributes": { + "expiryTime": "P90D", + "created": 1635176661, + "updated": 1635176661 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/keys/key1190835325?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/keys/key1190835325?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:22 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "806", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:21 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "8dd3a5a4-517f-4c3d-88ad-03f136471063", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key1190835325", + "deletedDate": 1635176661, + "scheduledPurgeDate": 1642952661, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key1190835325/197178996693479196a2136cf88ff37b", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ptCoe_yp5Fctb6MeZ0jSpBKfuNib_h_Xw7y3SdTLHPuaxEiDgDjaM3gJgnmBDZelI5zD89eRKxgCEuANGvzyY5NeHpYS_6rrYRZ1zU1aIwOGYDWi1CtfeWXJpJJR4fUzcEMXvCrhd2-dp2DgOlY0R0Wu0m86PERZcC4bpD0yJEtmcOWq9sgG8qHdUv1TtatYQzTRayek72qFZBt9fWREjfaB3i4WrlfLgiKz2kzKG2TSiDm52j7CtcXhv84XGAmhfGIYPYGfz9XNyl65KGuDO0EwrDGpu8g75aLX3UTcHUvMUz78AK171UqlE5cBrzwtpydbCtX6mjolIWyjqWLq6Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176661, + "updated": 1635176661, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1190835325?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key1190835325?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:22 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "861dd73b-e9de-459c-8d2a-da69dd8ad732", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key1190835325" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1190835325?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key1190835325?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:23 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "5b6d25ec-ff4c-44df-a61c-9b103f175ee9", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key1190835325" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1190835325?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key1190835325?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:23 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "bca2361e-04af-4c1a-9b6c-02f6b80e3371", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key1190835325" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1190835325?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key1190835325?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:23 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "9f822a0b-0bbe-46ab-a039-b38b14ff2de7", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key1190835325" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1190835325?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key1190835325?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:24 GMT" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "81", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:23 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "c33afa55-3f46-4017-a74e-a375f6e77d87", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "error": { + "code": "KeyNotFound", + "message": "Deleted Key not found: key1190835325" + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1190835325?api-version=7.3-preview", + "RequestMethod": "GET", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "GET", + ":path": "/deletedkeys/key1190835325?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:24 GMT" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "806", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 25 Oct 2021 15:44:23 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "f837a084-8079-44b5-96f4-3acdbd828688", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": { + "recoveryId": "https://rosebud.vault.azure.net/deletedkeys/key1190835325", + "deletedDate": 1635176661, + "scheduledPurgeDate": 1642952661, + "key": { + "kid": "https://rosebud.vault.azure.net/keys/key1190835325/197178996693479196a2136cf88ff37b", + "kty": "RSA", + "key_ops": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "n": "ptCoe_yp5Fctb6MeZ0jSpBKfuNib_h_Xw7y3SdTLHPuaxEiDgDjaM3gJgnmBDZelI5zD89eRKxgCEuANGvzyY5NeHpYS_6rrYRZ1zU1aIwOGYDWi1CtfeWXJpJJR4fUzcEMXvCrhd2-dp2DgOlY0R0Wu0m86PERZcC4bpD0yJEtmcOWq9sgG8qHdUv1TtatYQzTRayek72qFZBt9fWREjfaB3i4WrlfLgiKz2kzKG2TSiDm52j7CtcXhv84XGAmhfGIYPYGfz9XNyl65KGuDO0EwrDGpu8g75aLX3UTcHUvMUz78AK171UqlE5cBrzwtpydbCtX6mjolIWyjqWLq6Q", + "e": "AQAB" + }, + "attributes": { + "enabled": true, + "created": 1635176661, + "updated": 1635176661, + "recoveryLevel": "Recoverable\u002BPurgeable", + "recoverableDays": 90 + } + } + }, + { + "RequestUri": "https://fakekvurl.vault.azure.net/deletedkeys/key1190835325?api-version=7.3-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + ":authority": "localhost:5001", + ":method": "DELETE", + ":path": "/deletedkeys/key1190835325?api-version=7.3-preview", + ":scheme": "https", + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-internal/v0.1.0 azsdk-go-azcore/v0.19.0 (go1.17; Windows_NT)", + "x-ms-date": "Mon, 25 Oct 2021 15:44:24 GMT" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Mon, 25 Oct 2021 15:44:23 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "westus2", + "x-ms-keyvault-service-version": "1.9.150.1", + "x-ms-request-id": "7293bc43-cef4-49e1-addb-989fc9fedce8", + "X-Powered-By": "ASP.NET" + }, + "ResponseBody": null + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azkeys/utils_test.go b/sdk/keyvault/azkeys/utils_test.go index a5dbc2e93927..d93745b1dd1e 100644 --- a/sdk/keyvault/azkeys/utils_test.go +++ b/sdk/keyvault/azkeys/utils_test.go @@ -25,10 +25,12 @@ import ( "github.com/stretchr/testify/require" ) -var pathToPackage = "sdk/keyvault/azkeys" +var pathToPackage = "sdk/keyvault/azkeys/testdata" const headerAuthorization = "Authorization" +var fakeURL = "https://fakekvurl.vault.azure.net/" + func createRandomName(t *testing.T, prefix string) (string, error) { h := fnv.New32a() _, err := h.Write([]byte(t.Name())) @@ -71,10 +73,14 @@ func lookupEnvVar(s string) string { return ret } -func createClient(t *testing.T) (*Client, error) { - vaultUrl := recording.GetEnvVariable(t, "AZURE_KEYVAULT_URL", "https://fakekvurl.vault.azure.net/") +func createClient(t *testing.T, testType string) (*Client, error) { + vaultUrl := recording.GetEnvVariable(t, "AZURE_KEYVAULT_URL", fakeURL) + var credOptions *azidentity.ClientSecretCredentialOptions + if testType == HSMTEST { + vaultUrl = recording.GetEnvVariable(t, "AZURE_MANAGEDHSM_URL", fakeURL) + } if recording.GetRecordMode() == "playback" { - vaultUrl = "https://fakekvurl.vault.azure.net/" + vaultUrl = fakeURL } p := NewRecordingPolicy(t, &recording.RecordingOptions{UseHTTPS: true}) @@ -92,7 +98,7 @@ func createClient(t *testing.T) (*Client, error) { tenantId := lookupEnvVar("KEYVAULT_TENANT_ID") clientId := lookupEnvVar("KEYVAULT_CLIENT_ID") clientSecret := lookupEnvVar("KEYVAULT_CLIENT_SECRET") - cred, err = azidentity.NewClientSecretCredential(tenantId, clientId, clientSecret, nil) + cred, err = azidentity.NewClientSecretCredential(tenantId, clientId, clientSecret, credOptions) require.NoError(t, err) } else { cred = NewFakeCredential("fake", "fake") @@ -111,7 +117,6 @@ func delay() time.Duration { func cleanUpKey(t *testing.T, client *Client, key string) { resp, err := client.BeginDeleteKey(context.Background(), key, nil) if err != nil { - fmt.Println("Could not find key with name ", key) return } diff --git a/sdk/keyvault/azsecrets/test-resources.json b/sdk/keyvault/azsecrets/test-resources.json index 6032576c6194..20f726f33227 100644 --- a/sdk/keyvault/azsecrets/test-resources.json +++ b/sdk/keyvault/azsecrets/test-resources.json @@ -72,15 +72,18 @@ "description": "Key Vault SKU to deploy. The default is 'premium'" } }, - "attestationUrl": { + "attestationImage": { "type": "string", - "defaultValue": "https://skrattestation.azurewebsites.net/", + "defaultValue": "keyvault-mock-attestation:latest", "metadata": { - "description": "Test attestation service for Secure Key Release" + "description": "The container image name and tag to use for the attestation mock service." } } }, "variables": { + "attestationFarm": "[concat(parameters('baseName'), 'farm')]", + "attestationSite": "[concat(parameters('baseName'), 'site')]", + "attestationUri": "[concat('DOCKER|azsdkengsys.azurecr.io/', parameters('attestationImage'))]", "kvApiVersion": "2019-09-01", "kvName": "[parameters('baseName')]", "hsmApiVersion": "2021-04-01-preview", @@ -121,50 +124,52 @@ "objectId": "[parameters('testApplicationOid')]", "permissions": { "keys": [ - "get", - "list", - "update", + "backup", "create", - "import", + "decrypt", "delete", + "encrypt", + "get", + "import", + "list", + "purge", "recover", - "backup", + "release", "restore", - "decrypt", - "encrypt", + "rotate", + "sign", "unwrapKey", - "wrapKey", + "update", "verify", - "sign", - "purge" + "wrapKey" ], "secrets": [ + "backup", + "delete", "get", "list", - "set", - "delete", + "purge", "recover", - "backup", "restore", - "purge" + "set" ], "certificates": [ - "get", - "list", - "update", + "backup", "create", - "import", "delete", - "recover", - "backup", - "restore", - "managecontacts", - "manageissuers", + "deleteissuers", + "get", "getissuers", + "import", + "list", "listissuers", + "managecontacts", + "manageissuers", + "purge", + "recover", + "restore", "setissuers", - "deleteissuers", - "purge" + "update" ] } } @@ -244,6 +249,47 @@ "properties": { "publicAccess": "None" } + }, + { + + "type": "Microsoft.Web/serverfarms", + "apiVersion": "2020-12-01", + "name": "[variables('attestationFarm')]", + "condition": "[parameters('enableHsm')]", + "location": "[parameters('location')]", + "kind": "linux", + "sku": { + "name": "B1" + }, + "properties": { + "reserved": true + } + }, + { + + "type": "Microsoft.Web/sites", + "apiVersion": "2020-12-01", + "name": "[variables('attestationSite')]", + "condition": "[parameters('enableHsm')]", + "dependsOn": [ + "[resourceId('Microsoft.Web/serverfarms', variables('attestationFarm'))]" + ], + "location": "[parameters('location')]", + "properties": { + "httpsOnly": true, + "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('attestationFarm'))]", + "siteConfig": { + "name": "[variables('attestationSite')]", + "alwaysOn": true, + "linuxFxVersion": "[variables('attestationUri')]", + "appSettings": [ + { + "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE", + "value": "false" + } + ] + } + } } ], "outputs": { @@ -278,7 +324,8 @@ }, "AZURE_KEYVAULT_ATTESTATION_URL": { "type": "string", - "value": "[parameters('attestationUrl')]" + "condition": "[parameters('enableHsm')]", + "value": "[format('https://{0}/', reference(variables('attestationSite')).defaultHostName)]" } } } \ No newline at end of file diff --git a/sdk/messaging/azservicebus/internal/namespace_test.go b/sdk/messaging/azservicebus/internal/namespace_test.go index c7444e33a22e..0956e4b744a7 100644 --- a/sdk/messaging/azservicebus/internal/namespace_test.go +++ b/sdk/messaging/azservicebus/internal/namespace_test.go @@ -69,7 +69,7 @@ func (r *fakeRetrier) CurrentTry() int { } type fakeTokenCredential struct { - azcore.Credential + azcore.TokenCredential expires time.Time }