diff --git a/eng/common/tsp-client/package-lock.json b/eng/common/tsp-client/package-lock.json index 3051f0413c68..b6805b141ae0 100644 --- a/eng/common/tsp-client/package-lock.json +++ b/eng/common/tsp-client/package-lock.json @@ -1,11 +1,11 @@ { - "name": "tools", + "name": "tsp-client", "lockfileVersion": 3, "requires": true, "packages": { "": { "dependencies": { - "@azure-tools/typespec-client-generator-cli": "0.30.0" + "@azure-tools/typespec-client-generator-cli": "0.31.0" } }, "node_modules/@autorest/codemodel": { @@ -189,9 +189,9 @@ } }, "node_modules/@azure-tools/typespec-client-generator-cli": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-cli/-/typespec-client-generator-cli-0.30.0.tgz", - "integrity": "sha512-UmVypW8o0PtgydCpAdoByWPSNAf0kgGSE4WjyGyFSYJZIfwrQ6Nvv1LuFAYZQxaM6ZYRNZKB92QmpXiNnWKxoA==", + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-cli/-/typespec-client-generator-cli-0.31.0.tgz", + "integrity": "sha512-ukz9IROlYhr0TAXeVLT6oHb/SbZyDFp+rTKYw5XblNBJChLiq+PDalrjyWXsSF8J15TfKS4vixEOc+LZUQQb0A==", "license": "MIT", "dependencies": { "@autorest/core": "^3.10.2", diff --git a/eng/common/tsp-client/package.json b/eng/common/tsp-client/package.json index b66c149420bc..290f69672cf1 100644 --- a/eng/common/tsp-client/package.json +++ b/eng/common/tsp-client/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "@azure-tools/typespec-client-generator-cli": "0.30.0" + "@azure-tools/typespec-client-generator-cli": "0.31.0" } } diff --git a/sdk/security/keyvault/azadmin/backup/testdata/_metadata.json b/sdk/security/keyvault/azadmin/backup/testdata/_metadata.json index 2df4d87535b7..9b9e514874e1 100644 --- a/sdk/security/keyvault/azadmin/backup/testdata/_metadata.json +++ b/sdk/security/keyvault/azadmin/backup/testdata/_metadata.json @@ -1,4 +1,4 @@ { "apiVersion": "2025-07-01", - "emitterVersion": "0.8.2" + "emitterVersion": "0.8.6" } \ No newline at end of file diff --git a/sdk/security/keyvault/azadmin/backup/tsp-location.yaml b/sdk/security/keyvault/azadmin/backup/tsp-location.yaml index c998ff5065bd..6403e72cc123 100644 --- a/sdk/security/keyvault/azadmin/backup/tsp-location.yaml +++ b/sdk/security/keyvault/azadmin/backup/tsp-location.yaml @@ -1,5 +1,5 @@ -directory: specification/keyvault/Security.KeyVault.BackupRestore -commit: 39b2bb6b46f241309c56ad31a88aaee910578036 +directory: specification/keyvault/data-plane/Administration/BackupRestore +commit: 63a1781123f1531bd7e3ad79c17589a0b020840c repo: Azure/azure-rest-api-specs additionalDirectories: -- specification/keyvault/Security.KeyVault.Common/ +- specification/keyvault/data-plane/Administration/common/ \ No newline at end of file diff --git a/sdk/security/keyvault/azadmin/build.go b/sdk/security/keyvault/azadmin/build.go index 813aa699882a..d851b43084f2 100644 --- a/sdk/security/keyvault/azadmin/build.go +++ b/sdk/security/keyvault/azadmin/build.go @@ -1,6 +1,4 @@ -//go:generate tsp-client update --output-dir ./settings -//go:generate tsp-client update --output-dir ./rbac -//go:generate tsp-client update --output-dir ./backup +//go:generate tsp-client update //go:generate go run ./internal/generate/transforms.go //go:generate goimports -w . //go:generate rm ./backup/constants.go diff --git a/sdk/security/keyvault/azadmin/rbac/client.go b/sdk/security/keyvault/azadmin/rbac/client.go index a2496d535adf..c45bf6f96487 100644 --- a/sdk/security/keyvault/azadmin/rbac/client.go +++ b/sdk/security/keyvault/azadmin/rbac/client.go @@ -56,6 +56,9 @@ func (client *Client) CreateOrUpdateRoleDefinition(ctx context.Context, scope Ro // createOrUpdateRoleDefinitionCreateRequest creates the CreateOrUpdateRoleDefinition request. func (client *Client) createOrUpdateRoleDefinitionCreateRequest(ctx context.Context, scope RoleScope, roleDefinitionName string, parameters RoleDefinitionCreateParameters, _ *CreateOrUpdateRoleDefinitionOptions) (*policy.Request, error) { urlPath := "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}" + if scope == "" { + return nil, errors.New("parameter scope cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{scope}", string(scope)) if roleDefinitionName == "" { return nil, errors.New("parameter roleDefinitionName cannot be empty") @@ -118,6 +121,9 @@ func (client *Client) CreateRoleAssignment(ctx context.Context, scope RoleScope, // createRoleAssignmentCreateRequest creates the CreateRoleAssignment request. func (client *Client) createRoleAssignmentCreateRequest(ctx context.Context, scope RoleScope, roleAssignmentName string, parameters RoleAssignmentCreateParameters, _ *CreateRoleAssignmentOptions) (*policy.Request, error) { urlPath := "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}" + if scope == "" { + return nil, errors.New("parameter scope cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{scope}", string(scope)) if roleAssignmentName == "" { return nil, errors.New("parameter roleAssignmentName cannot be empty") @@ -179,6 +185,9 @@ func (client *Client) DeleteRoleAssignment(ctx context.Context, scope RoleScope, // deleteRoleAssignmentCreateRequest creates the DeleteRoleAssignment request. func (client *Client) deleteRoleAssignmentCreateRequest(ctx context.Context, scope RoleScope, roleAssignmentName string, _ *DeleteRoleAssignmentOptions) (*policy.Request, error) { urlPath := "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}" + if scope == "" { + return nil, errors.New("parameter scope cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{scope}", string(scope)) if roleAssignmentName == "" { return nil, errors.New("parameter roleAssignmentName cannot be empty") @@ -236,6 +245,9 @@ func (client *Client) DeleteRoleDefinition(ctx context.Context, scope RoleScope, // deleteRoleDefinitionCreateRequest creates the DeleteRoleDefinition request. func (client *Client) deleteRoleDefinitionCreateRequest(ctx context.Context, scope RoleScope, roleDefinitionName string, _ *DeleteRoleDefinitionOptions) (*policy.Request, error) { urlPath := "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}" + if scope == "" { + return nil, errors.New("parameter scope cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{scope}", string(scope)) if roleDefinitionName == "" { return nil, errors.New("parameter roleDefinitionName cannot be empty") @@ -293,6 +305,9 @@ func (client *Client) GetRoleAssignment(ctx context.Context, scope RoleScope, ro // getRoleAssignmentCreateRequest creates the GetRoleAssignment request. func (client *Client) getRoleAssignmentCreateRequest(ctx context.Context, scope RoleScope, roleAssignmentName string, _ *GetRoleAssignmentOptions) (*policy.Request, error) { urlPath := "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}" + if scope == "" { + return nil, errors.New("parameter scope cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{scope}", string(scope)) if roleAssignmentName == "" { return nil, errors.New("parameter roleAssignmentName cannot be empty") @@ -350,6 +365,9 @@ func (client *Client) GetRoleDefinition(ctx context.Context, scope RoleScope, ro // getRoleDefinitionCreateRequest creates the GetRoleDefinition request. func (client *Client) getRoleDefinitionCreateRequest(ctx context.Context, scope RoleScope, roleDefinitionName string, _ *GetRoleDefinitionOptions) (*policy.Request, error) { urlPath := "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}" + if scope == "" { + return nil, errors.New("parameter scope cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{scope}", string(scope)) if roleDefinitionName == "" { return nil, errors.New("parameter roleDefinitionName cannot be empty") @@ -406,6 +424,9 @@ func (client *Client) NewListRoleAssignmentsPager(scope RoleScope, options *List // listRoleAssignmentsCreateRequest creates the ListRoleAssignments request. func (client *Client) listRoleAssignmentsCreateRequest(ctx context.Context, scope RoleScope, options *ListRoleAssignmentsOptions) (*policy.Request, error) { urlPath := "/{scope}/providers/Microsoft.Authorization/roleAssignments" + if scope == "" { + return nil, errors.New("parameter scope cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{scope}", string(scope)) req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.vaultBaseUrl, urlPath)) if err != nil { @@ -461,6 +482,9 @@ func (client *Client) NewListRoleDefinitionsPager(scope RoleScope, options *List // listRoleDefinitionsCreateRequest creates the ListRoleDefinitions request. func (client *Client) listRoleDefinitionsCreateRequest(ctx context.Context, scope RoleScope, options *ListRoleDefinitionsOptions) (*policy.Request, error) { urlPath := "/{scope}/providers/Microsoft.Authorization/roleDefinitions" + if scope == "" { + return nil, errors.New("parameter scope cannot be empty") + } urlPath = strings.ReplaceAll(urlPath, "{scope}", string(scope)) req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.vaultBaseUrl, urlPath)) if err != nil { diff --git a/sdk/security/keyvault/azadmin/rbac/testdata/_metadata.json b/sdk/security/keyvault/azadmin/rbac/testdata/_metadata.json index 2df4d87535b7..9b9e514874e1 100644 --- a/sdk/security/keyvault/azadmin/rbac/testdata/_metadata.json +++ b/sdk/security/keyvault/azadmin/rbac/testdata/_metadata.json @@ -1,4 +1,4 @@ { "apiVersion": "2025-07-01", - "emitterVersion": "0.8.2" + "emitterVersion": "0.8.6" } \ No newline at end of file diff --git a/sdk/security/keyvault/azadmin/rbac/tsp-location.yaml b/sdk/security/keyvault/azadmin/rbac/tsp-location.yaml index b35592c274d9..7f75be977260 100644 --- a/sdk/security/keyvault/azadmin/rbac/tsp-location.yaml +++ b/sdk/security/keyvault/azadmin/rbac/tsp-location.yaml @@ -1,5 +1,5 @@ -directory: specification/keyvault/Security.KeyVault.RBAC -commit: 39b2bb6b46f241309c56ad31a88aaee910578036 +directory: specification/keyvault/data-plane/Administration/RBAC +commit: 63a1781123f1531bd7e3ad79c17589a0b020840c repo: Azure/azure-rest-api-specs additionalDirectories: -- specification/keyvault/Security.KeyVault.Common +- specification/keyvault/data-plane/Administration/common/ \ No newline at end of file diff --git a/sdk/security/keyvault/azadmin/settings/client.go b/sdk/security/keyvault/azadmin/settings/client.go index 9971779a8b3d..24cb1f35dd32 100644 --- a/sdk/security/keyvault/azadmin/settings/client.go +++ b/sdk/security/keyvault/azadmin/settings/client.go @@ -15,7 +15,9 @@ import ( "strings" ) -// Client - The key vault client performs cryptographic key operations and vault operations against the Key Vault service. +// Client - The Azure Key Vault Administration service client performs administrative operations +// including RBAC, BackupRestore, and settings management +// against the Azure Key Vault service. // Don't use this type directly, use a constructor function instead. type Client struct { internal *azcore.Client diff --git a/sdk/security/keyvault/azadmin/settings/testdata/_metadata.json b/sdk/security/keyvault/azadmin/settings/testdata/_metadata.json index 2df4d87535b7..9b9e514874e1 100644 --- a/sdk/security/keyvault/azadmin/settings/testdata/_metadata.json +++ b/sdk/security/keyvault/azadmin/settings/testdata/_metadata.json @@ -1,4 +1,4 @@ { "apiVersion": "2025-07-01", - "emitterVersion": "0.8.2" + "emitterVersion": "0.8.6" } \ No newline at end of file diff --git a/sdk/security/keyvault/azadmin/settings/tsp-location.yaml b/sdk/security/keyvault/azadmin/settings/tsp-location.yaml index 36b41d641cbc..afa148a8f98e 100644 --- a/sdk/security/keyvault/azadmin/settings/tsp-location.yaml +++ b/sdk/security/keyvault/azadmin/settings/tsp-location.yaml @@ -1,5 +1,5 @@ -directory: specification/keyvault/Security.KeyVault.Settings -commit: 39b2bb6b46f241309c56ad31a88aaee910578036 +directory: specification/keyvault/data-plane/Administration/Settings +commit: 63a1781123f1531bd7e3ad79c17589a0b020840c repo: Azure/azure-rest-api-specs additionalDirectories: -- specification/keyvault/Security.KeyVault.Common +- specification/keyvault/data-plane/Administration/common/ \ No newline at end of file diff --git a/sdk/security/keyvault/azadmin/tsp-location.yaml b/sdk/security/keyvault/azadmin/tsp-location.yaml new file mode 100644 index 000000000000..f650278178ac --- /dev/null +++ b/sdk/security/keyvault/azadmin/tsp-location.yaml @@ -0,0 +1,4 @@ +batch: + - ./backup + - ./rbac + - ./settings \ No newline at end of file diff --git a/sdk/security/keyvault/azcertificates/testdata/_metadata.json b/sdk/security/keyvault/azcertificates/testdata/_metadata.json index 2df4d87535b7..9b9e514874e1 100644 --- a/sdk/security/keyvault/azcertificates/testdata/_metadata.json +++ b/sdk/security/keyvault/azcertificates/testdata/_metadata.json @@ -1,4 +1,4 @@ { "apiVersion": "2025-07-01", - "emitterVersion": "0.8.2" + "emitterVersion": "0.8.6" } \ No newline at end of file diff --git a/sdk/security/keyvault/azcertificates/tsp-location.yaml b/sdk/security/keyvault/azcertificates/tsp-location.yaml index b6ceafea8bfe..02bc578c859e 100644 --- a/sdk/security/keyvault/azcertificates/tsp-location.yaml +++ b/sdk/security/keyvault/azcertificates/tsp-location.yaml @@ -1,5 +1,3 @@ -directory: specification/keyvault/Security.KeyVault.Certificates -commit: 6733bfe4447e09f501d691efb69b4045dd536f8d +directory: specification/keyvault/data-plane/Certificates +commit: 63a1781123f1531bd7e3ad79c17589a0b020840c repo: Azure/azure-rest-api-specs -additionalDirectories: -- specification/keyvault/Security.KeyVault.Common diff --git a/sdk/security/keyvault/azkeys/testdata/_metadata.json b/sdk/security/keyvault/azkeys/testdata/_metadata.json index 2df4d87535b7..9b9e514874e1 100644 --- a/sdk/security/keyvault/azkeys/testdata/_metadata.json +++ b/sdk/security/keyvault/azkeys/testdata/_metadata.json @@ -1,4 +1,4 @@ { "apiVersion": "2025-07-01", - "emitterVersion": "0.8.2" + "emitterVersion": "0.8.6" } \ No newline at end of file diff --git a/sdk/security/keyvault/azkeys/tsp-location.yaml b/sdk/security/keyvault/azkeys/tsp-location.yaml index 603ffbb8d210..6c9b8e46029d 100644 --- a/sdk/security/keyvault/azkeys/tsp-location.yaml +++ b/sdk/security/keyvault/azkeys/tsp-location.yaml @@ -1,5 +1,3 @@ -directory: specification/keyvault/Security.KeyVault.Keys -commit: 39b2bb6b46f241309c56ad31a88aaee910578036 +directory: specification/keyvault/data-plane/Keys +commit: 63a1781123f1531bd7e3ad79c17589a0b020840c repo: Azure/azure-rest-api-specs -additionalDirectories: -- specification/keyvault/Security.KeyVault.Common diff --git a/sdk/security/keyvault/azsecrets/testdata/_metadata.json b/sdk/security/keyvault/azsecrets/testdata/_metadata.json index 2df4d87535b7..9b9e514874e1 100644 --- a/sdk/security/keyvault/azsecrets/testdata/_metadata.json +++ b/sdk/security/keyvault/azsecrets/testdata/_metadata.json @@ -1,4 +1,4 @@ { "apiVersion": "2025-07-01", - "emitterVersion": "0.8.2" + "emitterVersion": "0.8.6" } \ No newline at end of file diff --git a/sdk/security/keyvault/azsecrets/tsp-location.yaml b/sdk/security/keyvault/azsecrets/tsp-location.yaml index 83210536612b..d08420f9a258 100644 --- a/sdk/security/keyvault/azsecrets/tsp-location.yaml +++ b/sdk/security/keyvault/azsecrets/tsp-location.yaml @@ -1,5 +1,3 @@ -directory: specification/keyvault/Security.KeyVault.Secrets -commit: 39b2bb6b46f241309c56ad31a88aaee910578036 +directory: specification/keyvault/data-plane/Secrets +commit: 63a1781123f1531bd7e3ad79c17589a0b020840c repo: Azure/azure-rest-api-specs -additionalDirectories: -- specification/keyvault/Security.KeyVault.Common/