Skip to content

Manual modify KeyVault tsp files #27667

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 157 additions & 0 deletions specification/keyvault/KeyVault.Management/TspReadme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@

``` yaml
isArm: true
isAzureSpec: true
library-name: KeyVault
tag: package-2023-02
skip-csproj: true
modelerfour:
flatten-payloads: false
use-model-reader-writer: true

override-operation-name:
Vaults_CheckNameAvailability: CheckKeyVaultNameAvailability
MHSMPrivateLinkResources_ListByMhsmResource: GetManagedHsmPrivateLinkResources
ManagedHsms_CheckMhsmNameAvailability: CheckManagedHsmNameAvailability
list-exception:
- /subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}
- /subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedManagedHSMs/{name}

format-by-name-rules:
'tenantId': 'uuid'
'ETag': 'etag'
'location': 'azure-location'
'*Uri': 'Uri'
'*Uris': 'Uri'

no-property-type-replacement:
- ManagedHsmVirtualNetworkRule

acronym-mapping:
CPU: Cpu
CPUs: Cpus
Os: OS
Ip: IP
Ips: IPs|ips
ID: Id
IDs: Ids
VM: Vm
VMs: Vms
Vmos: VmOS
VMScaleSet: VmScaleSet
DNS: Dns
VPN: Vpn
NAT: Nat
WAN: Wan
Ipv4: IPv4|ipv4
Ipv6: IPv6|ipv6
Ipsec: IPsec|ipsec
SSO: Sso
URI: Uri
Etag: ETag|etag
Managecontacts: ManageContacts
Getissuers: GetIssuers
Listissuers: ListIssuers
Setissuers: SetIssuers
Deleteissuers: DeleteIssuers
Manageissuers: ManageIssuers
Regeneratekey: RegenerateKey
Deletesas: DeleteSas
Getsas: GetSas
Listsas: ListSas
Setsas: SetSas
Mhsm: ManagedHsm

rename-mapping:
CheckMhsmNameAvailabilityResult: ManagedHsmNameAvailabilityResult
CheckMhsmNameAvailabilityResult.nameAvailable : IsNameAvailable
CheckMhsmNameAvailabilityParameters: MhsmNameAvailabilityParameters
Reason: ManagedHsmNameUnavailableReason
ActivationStatus: ManagedHSMSecurityDomainActivationStatus
Attributes: SecretBaseAttributes
GeoReplicationRegionProvisioningState: ManagedHsmGeoReplicatedRegionProvisioningState
ManagedHsmPrivateEndpointConnectionItemData.id: -|arm-id
Secret: KeyVaultSecret
MhsmPrivateEndpointConnectionItem: ManagedHsmPrivateEndpointConnectionItemData
MhsmPrivateEndpointConnectionItem.id: -|arm-id
MhsmPrivateLinkResource: ManagedHsmPrivateLinkResourceData
ActionsRequired: ManagedHsmActionsRequiredMessage
NetworkRuleAction: ManagedHsmNetworkRuleAction
NetworkRuleBypassOptions: ManagedHsmNetworkRuleBypassOption
MhsmVirtualNetworkRule.id: SubnetId|arm-id
PublicNetworkAccess: ManagedHsmPublicNetworkAccess
CreateMode: ManagedHsmCreateMode
ManagedHsmProperties.networkAcls: NetworkRuleSet
MhsmipRule: ManagedHsmIPRule
DeletedManagedHsmProperties.mhsmId: -|arm-id
DeletedVaultProperties: DeletedKeyVaultProperties
DeletedVault: DeletedKeyVault
MhsmipRule.value: AddressRange
PrivateLinkResource: KeyVaultPrivateLinkResourceData
AccessPolicyEntry: KeyVaultAccessPolicy
NetworkRuleSet: KeyVaultNetworkRuleSet
VaultCheckNameAvailabilityParameters: KeyVaultNameAvailabilityContent
VaultAccessPolicyProperties: KeyVaultAccessPolicyProperties
PrivateEndpointConnectionItem: KeyVaultPrivateEndpointConnectionItemData
VaultCheckNameAvailabilityParameters.type: -|resource-type
VaultPatchProperties: KeyVaultPatchProperties
VaultAccessPolicyParameters: KeyVaultAccessPolicyParameters
VaultPatchProperties.networkAcls: NetworkRuleSet
VaultProperties: KeyVaultProperties
VaultProperties.networkAcls: NetworkRuleSet
Vault: KeyVault
VirtualNetworkRule: KeyVaultVirtualNetworkRule
DeletedVaultProperties.vaultId: -|arm-id
Permissions: IdentityAccessPermissions
IPRule: KeyVaultIPRule
KeyPermissions: IdentityAccessKeyPermission
SecretPermissions: IdentityAccessSecretPermission
StoragePermissions: IdentityAccessStoragePermission
CertificatePermissions: IdentityAccessCertificatePermission
IPRule.value: AddressRange
CheckNameAvailabilityResult: KeyVaultNameAvailabilityResult

prompted-enum-values: Default

directive:
- from: swagger-document
where: $.paths
transform: delete $['/subscriptions/{subscriptionId}/resources']
- from: swagger-document
where: $.definitions.Sku.properties.family
transform: delete $['x-ms-client-default']
- from: swagger-document
where: $.definitions.ManagedHsmSku.properties.family
transform: delete $['x-ms-client-default']
- from: managedHsm.json
where: $.definitions
transform: > # these directives are here on purpose because we do not want them to merge with others otherwise we get breaking changes
$.MHSMPrivateEndpointConnectionProvisioningState['x-ms-enum']['name'] = 'ManagedHsmPrivateEndpointConnectionProvisioningState';
$.MHSMPrivateEndpointServiceConnectionStatus['x-ms-enum']['name'] = 'ManagedHsmPrivateEndpointServiceConnectionStatus';
$.ManagedHsmProperties.properties.provisioningState['x-ms-enum']['name'] = 'ManagedHsmProvisioningState';
- from: keyvault.json
where: $.definitions
transform: >
$.VaultCheckNameAvailabilityParameters.properties.type['x-ms-constant'] = true;
$.NetworkRuleSet.properties.bypass['x-ms-enum']['name'] = 'KeyVaultNetworkRuleBypassOption';
$.NetworkRuleSet.properties.defaultAction['x-ms-enum']['name'] = 'KeyVaultNetworkRuleAction';
$.PrivateLinkServiceConnectionState.properties.actionsRequired['x-ms-enum']['name'] = 'KeyVaultActionsRequiredMessage';
$.VaultPatchProperties.properties.createMode['x-ms-enum']['name'] = 'KeyVaultPatchMode';
$.VaultProperties.properties.createMode['x-ms-enum']['name'] = 'KeyVaultCreateMode';
$.VaultProperties.properties.provisioningState['x-ms-enum']['name'] = 'KeyVaultProvisioningState';
$.Vault['x-csharp-usage'] = 'model,input,output';
$.CheckNameAvailabilityResult.properties.reason['x-ms-enum']['name'] = 'KeyVaultNameUnavailableReason';
```

### Tag: package-2023-02

These settings apply only when `--tag=package-2023-02` is specified on the command line.

```yaml $(tag) == 'package-2023-02'
input-file:
- https://github.com/Azure/azure-rest-api-specs/blob/33f06ff82a4c751bcbc842b7ed4da2e81b0717b6/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2023-02-01/common.json
- https://github.com/Azure/azure-rest-api-specs/blob/33f06ff82a4c751bcbc842b7ed4da2e81b0717b6/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2023-02-01/keyvault.json
- https://github.com/Azure/azure-rest-api-specs/blob/33f06ff82a4c751bcbc842b7ed4da2e81b0717b6/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2023-02-01/managedHsm.json
- https://github.com/Azure/azure-rest-api-specs/blob/33f06ff82a4c751bcbc842b7ed4da2e81b0717b6/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2023-02-01/providers.json
- https://github.com/Azure/azure-rest-api-specs/blob/33f06ff82a4c751bcbc842b7ed4da2e81b0717b6/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2023-02-01/secrets.json
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"parameters": {
"name": "sample-mhsm",
"api-version": "2023-02-01",
"privateEndpointConnectionName": "sample-pec",
"resourceGroupName": "sample-group",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"name": "sample-pec",
"type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-vault/privateEndpointConnections/sample-pec",
"properties": {
"provisioningState": "Disconnected"
}
}
},
"202": {
"headers": {
"Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec?operationid=25334578"
}
},
"204": {}
},
"operationId": "MHSMPrivateEndpointConnections_Delete",
"title": "ManagedHsmDeletePrivateEndpointConnection"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"parameters": {
"name": "sample-mhsm",
"api-version": "2023-02-01",
"privateEndpointConnectionName": "sample-pec",
"resourceGroupName": "sample-group",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"name": "sample-pec",
"type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections",
"etag": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec",
"properties": {
"privateEndpoint": {
"id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe"
},
"privateLinkServiceConnectionState": {
"description": "This was automatically approved by [email protected]",
"actionsRequired": "None",
"status": "Approved"
},
"provisioningState": "Succeeded"
}
}
}
},
"operationId": "MHSMPrivateEndpointConnections_Get",
"title": "ManagedHsmGetPrivateEndpointConnection"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"parameters": {
"name": "sample-mhsm",
"api-version": "2023-02-01",
"resourceGroupName": "sample-group",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"nextLink": null,
"value": [
{
"name": "sample-pec1",
"type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections",
"etag": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec1",
"properties": {
"privateEndpoint": {
"id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe1"
},
"privateLinkServiceConnectionState": {
"description": "This was automatically approved by [email protected]",
"actionsRequired": "None",
"status": "Approved"
},
"provisioningState": "Succeeded"
}
},
{
"name": "sample-pec2",
"type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections",
"etag": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec2",
"properties": {
"privateEndpoint": {
"id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe2"
},
"privateLinkServiceConnectionState": {
"description": "This was automatically approved by [email protected]",
"actionsRequired": "None",
"status": "Approved"
},
"provisioningState": "Succeeded"
}
}
]
}
}
},
"operationId": "MHSMPrivateEndpointConnections_ListByResource",
"title": "List managed HSM Pools in a subscription"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"parameters": {
"name": "sample-mhsm",
"api-version": "2023-02-01",
"privateEndpointConnectionName": "sample-pec",
"properties": {
"properties": {
"privateLinkServiceConnectionState": {
"description": "My name is Joe and I'm approving this.",
"status": "Approved"
}
}
},
"resourceGroupName": "sample-group",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"name": "sample-pec",
"type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec",
"properties": {
"privateEndpoint": {
"id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe"
},
"privateLinkServiceConnectionState": {
"description": "My name is Joe and I'm approving this.",
"actionsRequired": "None",
"status": "Approved"
},
"provisioningState": "Succeeded"
}
}
}
},
"operationId": "MHSMPrivateEndpointConnections_Put",
"title": "ManagedHsmPutPrivateEndpointConnection"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"parameters": {
"name": "sample-mhsm",
"api-version": "2023-02-01",
"resourceGroupName": "sample-group",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"value": [
{
"name": "managedhsm",
"type": "Microsoft.KeyVault/managedhsms/privateLinkResources",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateLinkResources/managedhsm",
"properties": {
"groupId": "managedhsms",
"requiredMembers": [
"default"
],
"requiredZoneNames": [
"privatelink.managedhsm.azure.net"
]
}
}
]
}
}
},
"operationId": "MHSMPrivateLinkResources_ListByMHSMResource",
"title": "KeyVaultListPrivateLinkResources"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"parameters": {
"name": "sample-mhsm",
"api-version": "2023-02-01",
"resourceGroupName": "sample-group",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"nextLink": null,
"value": [
{
"name": "sample-region1",
"isPrimary": true,
"provisioningState": "Succeeded"
},
{
"name": "sample-region2",
"isPrimary": false,
"provisioningState": "Succeeded"
}
]
}
}
},
"operationId": "MHSMRegions_ListByResource",
"title": "List managed HSM Pools in a subscription"
}
Loading