Skip to content
Merged
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
7 changes: 7 additions & 0 deletions .chronus/changes/normalize-ops-2025-7-18-16-29-51.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
changeKind: fix
packages:
- "@azure-tools/typespec-azure-resource-manager"
---

Add single page list and legacy put and patch operations
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ import "@typespec/versioning";
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";

using Http;
using Rest;
using Versioning;
using Azure.ResourceManager;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,10 +120,18 @@ interface Dependents {
delete is ArmResourceDeleteSync<Dependent>;
list is ArmResourceListByParent<Dependent>;
getPrivateEndpointConnection is PrivateEndpointOperations.Read<Dependent>;
createOrUpdatePrivateEndpointConnection is PrivateEndpointOperations.CreateOrUpdateAsync<Dependent>;
updatePrivateEndpointConnection is PrivateEndpointOperations.CustomPatchAsync<Dependent>;
createOrUpdatePrivateEndpointConnection is Azure.ResourceManager.Legacy.PrivateEndpoints.CreateOrReplaceAsync<
Dependent,
PrivateEndpointConnection,
OptionalRequestBody = true
>;
updatePrivateEndpointConnection is Azure.ResourceManager.Legacy.PrivateEndpoints.CustomPatchAsync<
Dependent,
PrivateEndpointConnection,
PatchModel = void
>;
deletePrivateEndpointConnection is PrivateEndpointOperations.DeleteAsync<Dependent>;
listPrivateEndpointConnections is Azure.ResourceManager.Legacy.ListSinglePageByParent<
listPrivateEndpointConnections is Azure.ResourceManager.Legacy.PrivateEndpoints.ListSinglePageByParent<
Dependent,
PrivateEndpointConnection
>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -812,7 +812,7 @@
"name": "resource",
"in": "body",
"description": "Resource create parameters.",
"required": true,
"required": false,
"schema": {
"$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection"
}
Expand Down Expand Up @@ -888,15 +888,6 @@
},
{
"$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName"
},
{
"name": "properties",
"in": "body",
"description": "The resource properties to be updated.",
"required": true,
"schema": {
"$ref": "#/definitions/Azure.ResourceManager.PrivateEndpointConnectionUpdate"
}
}
],
"responses": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ interface ExtensionOperations<
* @template OptionalRequestBody Optional. Indicates whether the request body is optional
* @template ErrorType Optional. The error response, if non-standard.
* @template OperationOptions Optional. The route options for the operation.
* @template Request Optional. The request body for the createOrUpdate operation.
*/
@armOperationRoute(OperationOptions)
@doc("Create a {name}", Resource)
Expand All @@ -45,12 +46,13 @@ interface ExtensionOperations<
>,
OptionalRequestBody extends valueof boolean = false,
ErrorType extends {} = ErrorResponse,
OperationOptions extends valueof ArmOperationOptions = #{ useStaticRoute: false }
OperationOptions extends valueof ArmOperationOptions = #{ useStaticRoute: false },
Request extends {} | void = Resource
>(
...TargetParameters,
...ExtensionInstanceParameters,
...Parameters,
@doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Resource,
@doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Request,
): Response | ErrorType;

/**
Expand All @@ -61,6 +63,7 @@ interface ExtensionOperations<
* @template OptionalRequestBody Optional. Indicates whether the request body is optional
* @template ErrorType Optional. The error response, if non-standard.
* @template OperationOptions Optional. The route options for the operation.
* @template Request Optional. The request body for the createOrUpdate operation.
*/
#suppress "@azure-tools/typespec-azure-core/no-private-usage"
@armOperationRoute(OperationOptions)
Expand All @@ -73,12 +76,13 @@ interface ExtensionOperations<
Response extends {} = ArmResourceUpdatedResponse<Resource> | ArmResourceCreatedSyncResponse<Resource>,
OptionalRequestBody extends valueof boolean = false,
ErrorType extends {} = ErrorResponse,
OperationOptions extends valueof ArmOperationOptions = #{ useStaticRoute: false }
OperationOptions extends valueof ArmOperationOptions = #{ useStaticRoute: false },
Request extends {} | void = Resource
>(
...TargetParameters,
...ExtensionInstanceParameters,
...Parameters,
@doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Resource,
@doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Request,
): Response | ErrorType;

/**
Expand All @@ -98,7 +102,7 @@ interface ExtensionOperations<
@patch(#{ implicitOptionality: false })
CustomPatchAsync<
Resource extends Foundations.SimpleResource,
PatchModel extends {} = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
PatchModel extends {} | void = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
Resource,
Expand Down Expand Up @@ -136,7 +140,7 @@ interface ExtensionOperations<
@patch(#{ implicitOptionality: false })
CustomPatchSync<
Resource extends Foundations.SimpleResource,
PatchModel extends {} = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
PatchModel extends {} | void = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
Parameters extends {} = {},
Response extends {} = ArmResponse<Resource>,
OptionalRequestBody extends valueof boolean = false,
Expand Down Expand Up @@ -261,6 +265,27 @@ interface ExtensionOperations<
OperationOptions extends valueof ArmOperationOptions = #{ useStaticRoute: false }
>(...TargetParameters, ...ExtensionParentParameters, ...Parameters): Response | ErrorType;

/**
* List a resource, without pagination
* @template Resource The resource being listed
* @template Parameters Optional. Additional parameters after the path parameters
* @template Response Optional. The response returned by the list
* @template ErrorType Optional. The error response, if non-standard.
* @template OperationOptions Optional. The route options for the operation.
*/
@armOperationRoute(OperationOptions)
@doc("List a {name}", Resource)
@get
@listsResource(Resource)
@armResourceList(Resource)
ListSinglePage<
Resource extends Foundations.SimpleResource,
Parameters extends {} = {},
Response extends {} = ArmResponse<ResourceListResult<Resource>>,
ErrorType extends {} = ErrorResponse,
OperationOptions extends valueof ArmOperationOptions = #{ useStaticRoute: false }
>(...TargetParameters, ...ExtensionParentParameters, ...Parameters): Response | ErrorType;

/**
* A synchronous resource action.
* @template Resource The resource being acted upon
Expand All @@ -279,7 +304,7 @@ interface ExtensionOperations<
@returnsDoc("Azure operation completed successfully.")
ActionSync<
Resource extends Foundations.SimpleResource,
Request extends TypeSpec.Reflection.Model | void,
Request,
Response extends TypeSpec.Reflection.Model | void,
Parameters extends {} = {},
OptionalRequestBody extends valueof boolean = false,
Expand Down Expand Up @@ -316,7 +341,7 @@ interface ExtensionOperations<
@returnsDoc("Azure operation completed successfully.")
ActionAsync<
Resource extends Foundations.SimpleResource,
Request extends TypeSpec.Reflection.Model | void,
Request,
Result extends TypeSpec.Reflection.Model | void,
LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ interface RoutedOperations<
* @template OptionalRequestBody Optional. Indicates whether the request body is optional
* @template OverrideErrorType Optional. The error response, if non-standard.
* @template OverrideRouteOptions Optional. The route options for the operation.
* @template Request Optional. The request body for the createOrUpdate operation.
*/
@doc("Create a {name}", Resource)
@armOperationRoute(OverrideRouteOptions)
Expand All @@ -63,12 +64,13 @@ interface RoutedOperations<
>,
OptionalRequestBody extends valueof boolean = false,
OverrideErrorType extends {} = ErrorType,
OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute,
Request extends {} | void = Resource
>(
...ParentParameters,
...ResourceTypeParameter,
...Parameters,
@doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Resource,
@doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Request,
): Response | OverrideErrorType;

/**
Expand All @@ -79,6 +81,7 @@ interface RoutedOperations<
* @template OptionalRequestBody Optional. Indicates whether the request body is optional
* @template OverrideErrorType Optional. The error response, if non-standard.
* @template OverrideRouteOptions Optional. The route options for the operation.
* @template Request Optional. The request body for the createOrUpdate operation.
*/
#suppress "@azure-tools/typespec-azure-core/no-private-usage"
@armOperationRoute(OverrideRouteOptions)
Expand All @@ -92,12 +95,13 @@ interface RoutedOperations<
Response extends {} = ArmResourceUpdatedResponse<Resource> | ArmResourceCreatedSyncResponse<Resource>,
OptionalRequestBody extends valueof boolean = false,
OverrideErrorType extends {} = ErrorType,
OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute,
Request extends {} | void = Resource
>(
...ParentParameters,
...ResourceTypeParameter,
...Parameters,
@doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Resource,
@doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Request,
): Response | OverrideErrorType;

/**
Expand All @@ -118,7 +122,7 @@ interface RoutedOperations<
@patch(#{ implicitOptionality: false })
CustomPatchAsync<
Resource extends Foundations.SimpleResource,
PatchModel extends {} = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
PatchModel extends {} | void = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
Resource,
Expand Down Expand Up @@ -157,7 +161,7 @@ interface RoutedOperations<
@patch(#{ implicitOptionality: false })
CustomPatchSync<
Resource extends Foundations.SimpleResource,
PatchModel extends {} = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
PatchModel extends {} | void = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
Parameters extends {} = {},
Response extends {} = ArmResponse<Resource>,
OptionalRequestBody extends valueof boolean = false,
Expand Down
Loading
Loading