forked from TrueCloudLab/restic
61cb1cc6f8
This includes github.com/kurin/blazer 0.2.0, which resolves #1291
304 lines
14 KiB
Go
Executable file
304 lines
14 KiB
Go
Executable file
package keyvault
|
|
|
|
// Copyright (c) Microsoft and contributors. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
//
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
// Code generated by Microsoft (R) AutoRest Code Generator.
|
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
|
|
|
import (
|
|
"github.com/Azure/go-autorest/autorest"
|
|
"github.com/Azure/go-autorest/autorest/date"
|
|
"github.com/Azure/go-autorest/autorest/to"
|
|
uuid "github.com/satori/go.uuid"
|
|
"net/http"
|
|
)
|
|
|
|
// CertificatePermissions enumerates the values for certificate permissions.
|
|
type CertificatePermissions string
|
|
|
|
const (
|
|
// Create specifies the create state for certificate permissions.
|
|
Create CertificatePermissions = "create"
|
|
// Delete specifies the delete state for certificate permissions.
|
|
Delete CertificatePermissions = "delete"
|
|
// Deleteissuers specifies the deleteissuers state for certificate permissions.
|
|
Deleteissuers CertificatePermissions = "deleteissuers"
|
|
// Get specifies the get state for certificate permissions.
|
|
Get CertificatePermissions = "get"
|
|
// Getissuers specifies the getissuers state for certificate permissions.
|
|
Getissuers CertificatePermissions = "getissuers"
|
|
// Import specifies the import state for certificate permissions.
|
|
Import CertificatePermissions = "import"
|
|
// List specifies the list state for certificate permissions.
|
|
List CertificatePermissions = "list"
|
|
// Listissuers specifies the listissuers state for certificate permissions.
|
|
Listissuers CertificatePermissions = "listissuers"
|
|
// Managecontacts specifies the managecontacts state for certificate permissions.
|
|
Managecontacts CertificatePermissions = "managecontacts"
|
|
// Manageissuers specifies the manageissuers state for certificate permissions.
|
|
Manageissuers CertificatePermissions = "manageissuers"
|
|
// Purge specifies the purge state for certificate permissions.
|
|
Purge CertificatePermissions = "purge"
|
|
// Recover specifies the recover state for certificate permissions.
|
|
Recover CertificatePermissions = "recover"
|
|
// Setissuers specifies the setissuers state for certificate permissions.
|
|
Setissuers CertificatePermissions = "setissuers"
|
|
// Update specifies the update state for certificate permissions.
|
|
Update CertificatePermissions = "update"
|
|
)
|
|
|
|
// CreateMode enumerates the values for create mode.
|
|
type CreateMode string
|
|
|
|
const (
|
|
// CreateModeDefault specifies the create mode default state for create mode.
|
|
CreateModeDefault CreateMode = "default"
|
|
// CreateModeRecover specifies the create mode recover state for create mode.
|
|
CreateModeRecover CreateMode = "recover"
|
|
)
|
|
|
|
// KeyPermissions enumerates the values for key permissions.
|
|
type KeyPermissions string
|
|
|
|
const (
|
|
// KeyPermissionsBackup specifies the key permissions backup state for key permissions.
|
|
KeyPermissionsBackup KeyPermissions = "backup"
|
|
// KeyPermissionsCreate specifies the key permissions create state for key permissions.
|
|
KeyPermissionsCreate KeyPermissions = "create"
|
|
// KeyPermissionsDecrypt specifies the key permissions decrypt state for key permissions.
|
|
KeyPermissionsDecrypt KeyPermissions = "decrypt"
|
|
// KeyPermissionsDelete specifies the key permissions delete state for key permissions.
|
|
KeyPermissionsDelete KeyPermissions = "delete"
|
|
// KeyPermissionsEncrypt specifies the key permissions encrypt state for key permissions.
|
|
KeyPermissionsEncrypt KeyPermissions = "encrypt"
|
|
// KeyPermissionsGet specifies the key permissions get state for key permissions.
|
|
KeyPermissionsGet KeyPermissions = "get"
|
|
// KeyPermissionsImport specifies the key permissions import state for key permissions.
|
|
KeyPermissionsImport KeyPermissions = "import"
|
|
// KeyPermissionsList specifies the key permissions list state for key permissions.
|
|
KeyPermissionsList KeyPermissions = "list"
|
|
// KeyPermissionsPurge specifies the key permissions purge state for key permissions.
|
|
KeyPermissionsPurge KeyPermissions = "purge"
|
|
// KeyPermissionsRecover specifies the key permissions recover state for key permissions.
|
|
KeyPermissionsRecover KeyPermissions = "recover"
|
|
// KeyPermissionsRestore specifies the key permissions restore state for key permissions.
|
|
KeyPermissionsRestore KeyPermissions = "restore"
|
|
// KeyPermissionsSign specifies the key permissions sign state for key permissions.
|
|
KeyPermissionsSign KeyPermissions = "sign"
|
|
// KeyPermissionsUnwrapKey specifies the key permissions unwrap key state for key permissions.
|
|
KeyPermissionsUnwrapKey KeyPermissions = "unwrapKey"
|
|
// KeyPermissionsUpdate specifies the key permissions update state for key permissions.
|
|
KeyPermissionsUpdate KeyPermissions = "update"
|
|
// KeyPermissionsVerify specifies the key permissions verify state for key permissions.
|
|
KeyPermissionsVerify KeyPermissions = "verify"
|
|
// KeyPermissionsWrapKey specifies the key permissions wrap key state for key permissions.
|
|
KeyPermissionsWrapKey KeyPermissions = "wrapKey"
|
|
)
|
|
|
|
// SecretPermissions enumerates the values for secret permissions.
|
|
type SecretPermissions string
|
|
|
|
const (
|
|
// SecretPermissionsBackup specifies the secret permissions backup state for secret permissions.
|
|
SecretPermissionsBackup SecretPermissions = "backup"
|
|
// SecretPermissionsDelete specifies the secret permissions delete state for secret permissions.
|
|
SecretPermissionsDelete SecretPermissions = "delete"
|
|
// SecretPermissionsGet specifies the secret permissions get state for secret permissions.
|
|
SecretPermissionsGet SecretPermissions = "get"
|
|
// SecretPermissionsList specifies the secret permissions list state for secret permissions.
|
|
SecretPermissionsList SecretPermissions = "list"
|
|
// SecretPermissionsPurge specifies the secret permissions purge state for secret permissions.
|
|
SecretPermissionsPurge SecretPermissions = "purge"
|
|
// SecretPermissionsRecover specifies the secret permissions recover state for secret permissions.
|
|
SecretPermissionsRecover SecretPermissions = "recover"
|
|
// SecretPermissionsRestore specifies the secret permissions restore state for secret permissions.
|
|
SecretPermissionsRestore SecretPermissions = "restore"
|
|
// SecretPermissionsSet specifies the secret permissions set state for secret permissions.
|
|
SecretPermissionsSet SecretPermissions = "set"
|
|
)
|
|
|
|
// SkuName enumerates the values for sku name.
|
|
type SkuName string
|
|
|
|
const (
|
|
// Premium specifies the premium state for sku name.
|
|
Premium SkuName = "premium"
|
|
// Standard specifies the standard state for sku name.
|
|
Standard SkuName = "standard"
|
|
)
|
|
|
|
// StoragePermissions enumerates the values for storage permissions.
|
|
type StoragePermissions string
|
|
|
|
const (
|
|
// StoragePermissionsDelete specifies the storage permissions delete state for storage permissions.
|
|
StoragePermissionsDelete StoragePermissions = "delete"
|
|
// StoragePermissionsDeletesas specifies the storage permissions deletesas state for storage permissions.
|
|
StoragePermissionsDeletesas StoragePermissions = "deletesas"
|
|
// StoragePermissionsGet specifies the storage permissions get state for storage permissions.
|
|
StoragePermissionsGet StoragePermissions = "get"
|
|
// StoragePermissionsGetsas specifies the storage permissions getsas state for storage permissions.
|
|
StoragePermissionsGetsas StoragePermissions = "getsas"
|
|
// StoragePermissionsList specifies the storage permissions list state for storage permissions.
|
|
StoragePermissionsList StoragePermissions = "list"
|
|
// StoragePermissionsListsas specifies the storage permissions listsas state for storage permissions.
|
|
StoragePermissionsListsas StoragePermissions = "listsas"
|
|
// StoragePermissionsRegeneratekey specifies the storage permissions regeneratekey state for storage permissions.
|
|
StoragePermissionsRegeneratekey StoragePermissions = "regeneratekey"
|
|
// StoragePermissionsSet specifies the storage permissions set state for storage permissions.
|
|
StoragePermissionsSet StoragePermissions = "set"
|
|
// StoragePermissionsSetsas specifies the storage permissions setsas state for storage permissions.
|
|
StoragePermissionsSetsas StoragePermissions = "setsas"
|
|
// StoragePermissionsUpdate specifies the storage permissions update state for storage permissions.
|
|
StoragePermissionsUpdate StoragePermissions = "update"
|
|
)
|
|
|
|
// AccessPolicyEntry is an identity that have access to the key vault. All identities in the array must use the same
|
|
// tenant ID as the key vault's tenant ID.
|
|
type AccessPolicyEntry struct {
|
|
TenantID *uuid.UUID `json:"tenantId,omitempty"`
|
|
ObjectID *string `json:"objectId,omitempty"`
|
|
ApplicationID *uuid.UUID `json:"applicationId,omitempty"`
|
|
Permissions *Permissions `json:"permissions,omitempty"`
|
|
}
|
|
|
|
// DeletedVault is deleted vault information with extended details.
|
|
type DeletedVault struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Properties *DeletedVaultProperties `json:"properties,omitempty"`
|
|
}
|
|
|
|
// DeletedVaultListResult is list of vaults
|
|
type DeletedVaultListResult struct {
|
|
autorest.Response `json:"-"`
|
|
Value *[]DeletedVault `json:"value,omitempty"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
}
|
|
|
|
// DeletedVaultListResultPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client DeletedVaultListResult) DeletedVaultListResultPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// DeletedVaultProperties is properties of the deleted vault.
|
|
type DeletedVaultProperties struct {
|
|
VaultID *string `json:"vaultId,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
DeletionDate *date.Time `json:"deletionDate,omitempty"`
|
|
ScheduledPurgeDate *date.Time `json:"scheduledPurgeDate,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
}
|
|
|
|
// Permissions is permissions the identity has for keys, secrets, certificates and storage.
|
|
type Permissions struct {
|
|
Keys *[]KeyPermissions `json:"keys,omitempty"`
|
|
Secrets *[]SecretPermissions `json:"secrets,omitempty"`
|
|
Certificates *[]CertificatePermissions `json:"certificates,omitempty"`
|
|
Storage *[]StoragePermissions `json:"storage,omitempty"`
|
|
}
|
|
|
|
// Resource is key Vault resource
|
|
type Resource struct {
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
}
|
|
|
|
// ResourceListResult is list of vault resources.
|
|
type ResourceListResult struct {
|
|
autorest.Response `json:"-"`
|
|
Value *[]Resource `json:"value,omitempty"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
}
|
|
|
|
// ResourceListResultPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client ResourceListResult) ResourceListResultPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// Sku is SKU details
|
|
type Sku struct {
|
|
Family *string `json:"family,omitempty"`
|
|
Name SkuName `json:"name,omitempty"`
|
|
}
|
|
|
|
// Vault is resource information with extended details.
|
|
type Vault struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
Properties *VaultProperties `json:"properties,omitempty"`
|
|
}
|
|
|
|
// VaultCreateOrUpdateParameters is parameters for creating or updating a vault
|
|
type VaultCreateOrUpdateParameters struct {
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
Properties *VaultProperties `json:"properties,omitempty"`
|
|
}
|
|
|
|
// VaultListResult is list of vaults
|
|
type VaultListResult struct {
|
|
autorest.Response `json:"-"`
|
|
Value *[]Vault `json:"value,omitempty"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
}
|
|
|
|
// VaultListResultPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client VaultListResult) VaultListResultPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// VaultProperties is properties of the vault
|
|
type VaultProperties struct {
|
|
TenantID *uuid.UUID `json:"tenantId,omitempty"`
|
|
Sku *Sku `json:"sku,omitempty"`
|
|
AccessPolicies *[]AccessPolicyEntry `json:"accessPolicies,omitempty"`
|
|
VaultURI *string `json:"vaultUri,omitempty"`
|
|
EnabledForDeployment *bool `json:"enabledForDeployment,omitempty"`
|
|
EnabledForDiskEncryption *bool `json:"enabledForDiskEncryption,omitempty"`
|
|
EnabledForTemplateDeployment *bool `json:"enabledForTemplateDeployment,omitempty"`
|
|
EnableSoftDelete *bool `json:"enableSoftDelete,omitempty"`
|
|
CreateMode CreateMode `json:"createMode,omitempty"`
|
|
}
|