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
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@ model SkuType {
tier: string;
}

/** The SKU type for update operations */
model SkuTypeUpdate {
/** The name of the SKU */
name?: string;

/** The tier of the SKU */
tier?: string;
}

/** The deployment type for edge action versions */
union EdgeActionVersionDeploymentType {
string,
Expand Down Expand Up @@ -133,6 +142,7 @@ model EdgeActionAttachmentResponse {
edgeActionId: string;
}

#suppress "@azure-tools/typespec-azure-resource-manager/empty-updateable-properties" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
@doc("Represents an edge action properties")
model EdgeActionProperties {
@doc("The provisioning state of the edge action")
Expand All @@ -144,6 +154,23 @@ model EdgeActionProperties {
attachments: EdgeActionAttachment[];
}

/** The type used for update operations of the EdgeAction. */
model EdgeActionUpdate {
@doc("The resource-specific properties for this resource.")
properties?: EdgeActionPropertiesUpdate;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

properties?: EdgeActionPropertiesUpdate;

I don't think the empty property bag is required. If you can remove this, you may also be able to remove two suppressions.

Copy link
Member Author

@kazrael2119 kazrael2119 Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


@doc("The sku type of the edge action")
sku?: SkuTypeUpdate;

#suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
@doc("Resource tags.")
tags?: Record<string>;
}

/** Represents an edge action properties */
#suppress "@azure-tools/typespec-azure-resource-manager/no-empty-model" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"

Add the missing justification.

model EdgeActionPropertiesUpdate {}

@doc("Represents an edge action version")
model EdgeActionVersionProperties {
@doc("The deployment type")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ model EdgeActionExecutionFilter
interface EdgeActions {
get is ArmResourceRead<EdgeAction>;
create is ArmResourceCreateOrUpdateAsync<EdgeAction>;
update is ArmResourcePatchAsync<EdgeAction, EdgeActionProperties>;
update is ArmCustomPatchAsync<EdgeAction, EdgeActionUpdate>;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like we are updating the input (request object) from EdgeActionProperties to EdgeActionUpdate

@kazrael2119 I think that would impact not just the client but also our api, we would have to update our model classes and the api.

Do we need to change the request object?

same for the other object

Copy link
Member

@MaryGao MaryGao Jan 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tundwed This change to ArmCustomPatchAsync will not change the input model and you could compare the main update with this commit change.

Actually this change would not update any REST-level stuff. We just switched the template from ArmResourcePatchAsync to ArmCustomPatchAsync which is our recommandation in guide so that client side could better handle this operation.

The same for the other object.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, got it.

delete is ArmResourceDeleteWithoutOkAsync<EdgeAction>;
listByResourceGroup is ArmResourceListByParent<EdgeAction>;
listBySubscription is ArmListBySubscription<EdgeAction>;
Expand All @@ -109,9 +109,12 @@ interface EdgeActions {
interface EdgeActionVersions {
get is ArmResourceRead<EdgeActionVersion>;
create is ArmResourceCreateOrUpdateAsync<EdgeActionVersion>;
update is ArmResourcePatchAsync<
update is ArmCustomPatchAsync<
EdgeActionVersion,
EdgeActionVersionProperties
Azure.ResourceManager.Foundations.ResourceUpdateModel<
EdgeActionVersion,
EdgeActionVersionProperties
>
>;
delete is ArmResourceDeleteWithoutOkAsync<EdgeActionVersion>;
listByEdgeAction is ArmResourceListByParent<EdgeActionVersion>;
Expand All @@ -134,9 +137,12 @@ interface EdgeActionVersions {
interface EdgeActionExecutionFilters {
get is ArmResourceRead<EdgeActionExecutionFilter>;
create is ArmResourceCreateOrUpdateAsync<EdgeActionExecutionFilter>;
update is ArmResourcePatchAsync<
update is ArmCustomPatchAsync<
EdgeActionExecutionFilter,
EdgeActionExecutionFilterProperties
Azure.ResourceManager.Foundations.ResourceUpdateModel<
EdgeActionExecutionFilter,
EdgeActionExecutionFilterProperties
>
>;
delete is ArmResourceDeleteWithoutOkAsync<EdgeActionExecutionFilter>;
listByEdgeAction is ArmResourceListByParent<EdgeActionExecutionFilter>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1470,25 +1470,6 @@
]
}
},
"Azure.ResourceManager.CommonTypes.TrackedResourceUpdate": {
"type": "object",
"title": "Tracked Resource",
"description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'",
"properties": {
"tags": {
"type": "object",
"description": "Resource tags.",
"additionalProperties": {
"type": "string"
}
}
},
"allOf": [
{
"$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/Resource"
}
]
},
"EdgeAction": {
"type": "object",
"description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.",
Expand Down Expand Up @@ -1649,9 +1630,26 @@
"executionFilterIdentifierHeaderValue"
]
},
"EdgeActionExecutionFilterPropertiesUpdate": {
"EdgeActionExecutionFilterUpdate": {
"type": "object",
"description": "Properties for edge action execution filter",
"description": "The type used for update operations of the EdgeActionExecutionFilter.",
"properties": {
"tags": {
"type": "object",
"description": "Resource tags.",
"additionalProperties": {
"type": "string"
}
},
"properties": {
"$ref": "#/definitions/EdgeActionExecutionFilterUpdateProperties",
"description": "The resource-specific properties for this resource."
}
}
},
"EdgeActionExecutionFilterUpdateProperties": {
"type": "object",
"description": "The updatable properties of the EdgeActionExecutionFilter.",
"properties": {
"versionId": {
"$ref": "#/definitions/EdgeActionVersionId",
Expand Down Expand Up @@ -1682,26 +1680,6 @@
}
}
},
"EdgeActionExecutionFilterUpdate": {
"type": "object",
"description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.",
"properties": {
"properties": {
"$ref": "#/definitions/EdgeActionExecutionFilterPropertiesUpdate",
"description": "The resource-specific properties for this resource.",
"x-ms-client-flatten": true,
"x-ms-mutability": [
"read",
"create"
]
}
},
"allOf": [
{
"$ref": "#/definitions/Azure.ResourceManager.CommonTypes.TrackedResourceUpdate"
}
]
},
"EdgeActionIsDefaultVersion": {
"type": "string",
"description": "Indicates whether this is the default version",
Expand Down Expand Up @@ -1775,27 +1753,24 @@
},
"EdgeActionUpdate": {
"type": "object",
"description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.",
"description": "The type used for update operations of the EdgeAction.",
"properties": {
"properties": {
"$ref": "#/definitions/EdgeActionPropertiesUpdate",
"description": "The resource-specific properties for this resource.",
"x-ms-client-flatten": true,
"x-ms-mutability": [
"read",
"create"
]
"description": "The resource-specific properties for this resource."
},
"sku": {
"$ref": "#/definitions/SkuTypeUpdate",
"description": "The sku type of the edge action"
},
"tags": {
"type": "object",
"description": "Resource tags.",
"additionalProperties": {
"type": "string"
}
}
},
"allOf": [
{
"$ref": "#/definitions/Azure.ResourceManager.CommonTypes.TrackedResourceUpdate"
}
]
}
},
"EdgeActionVersion": {
"type": "object",
Expand Down Expand Up @@ -1926,9 +1901,26 @@
"lastPackageUpdateTime"
]
},
"EdgeActionVersionPropertiesUpdate": {
"EdgeActionVersionUpdate": {
"type": "object",
"description": "Represents an edge action version",
"description": "The type used for update operations of the EdgeActionVersion.",
"properties": {
"tags": {
"type": "object",
"description": "Resource tags.",
"additionalProperties": {
"type": "string"
}
},
"properties": {
"$ref": "#/definitions/EdgeActionVersionUpdateProperties",
"description": "The resource-specific properties for this resource."
}
}
},
"EdgeActionVersionUpdateProperties": {
"type": "object",
"description": "The updatable properties of the EdgeActionVersion.",
"properties": {
"deploymentType": {
"$ref": "#/definitions/EdgeActionVersionDeploymentType",
Expand All @@ -1950,26 +1942,6 @@
}
}
},
"EdgeActionVersionUpdate": {
"type": "object",
"description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.",
"properties": {
"properties": {
"$ref": "#/definitions/EdgeActionVersionPropertiesUpdate",
"description": "The resource-specific properties for this resource.",
"x-ms-client-flatten": true,
"x-ms-mutability": [
"read",
"create"
]
}
},
"allOf": [
{
"$ref": "#/definitions/Azure.ResourceManager.CommonTypes.TrackedResourceUpdate"
}
]
},
"EdgeActionVersionValidationStatus": {
"type": "string",
"description": "The validation status for edge action versions",
Expand Down Expand Up @@ -2058,7 +2030,7 @@
},
"SkuTypeUpdate": {
"type": "object",
"description": "The SKU type for the edge action",
"description": "The SKU type for update operations",
"properties": {
"name": {
"type": "string",
Expand Down
Loading
Loading