Skip to content
Merged
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
import "@typespec/http";
import "@typespec/rest";
import "@typespec/versioning";
import "@typespec/openapi";
import "@azure-tools/typespec-autorest";
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@azure-tools/typespec-client-generator-core";

using TypeSpec.Http;
using TypeSpec.Rest;
using TypeSpec.Versioning;
using TypeSpec.OpenAPI;
using Azure.ResourceManager;
using Azure.ResourceManager.Foundations;
using Azure.Core;
using Azure.ClientGenerator.Core;

namespace Microsoft.Cdn;

/** The SKU type for the edge action */
model SkuType {
/** The name of the SKU */
name: string;

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

/** The deployment type for edge action versions */
union EdgeActionVersionDeploymentType {
string,

/** ZIP file deployment */
zip: "zip",

/** Single file deployment */
file: "file",

/** Other deployment types */
others: "others",
}

/** The validation status for edge action versions */
union EdgeActionVersionValidationStatus {
string,

/** Validation succeeded */
Succeeded: "Succeeded",

/** Validation failed */
Failed: "Failed",
}

/** Indicates whether this is the default version */
union EdgeActionIsDefaultVersion {
string,

/** This is the default version */
True: "True",

/** This is not the default version */
False: "False",
}

/** The status of an operation */
union OperationStatus {
string,

/** Operation is running */
Running: "Running",

/** Operation succeeded */
Succeeded: "Succeeded",

/** Operation failed */
Failed: "Failed",

/** Operation was canceled */
Canceled: "Canceled",
}

@pattern("[a-zA-Z0-9]+")
@maxLength(50)
scalar smallString extends string;

@doc("Azure resource identifier for attached routes")
scalar AttachedResourceId
extends Azure.Core.armResourceIdentifier<[
{
type: "Microsoft.Cdn/Profiles/afdEndpoints/routes",
}
]>;

@doc("Azure resource identifier for edge action versions")
scalar EdgeActionVersionId
extends Azure.Core.armResourceIdentifier<[
{
type: "Microsoft.Cdn/edgeActions/versions",
}
]>;

/** The status of the current operation */
@Azure.Core.lroStatus
union ProvisioningState {
ResourceProvisioningState,

@doc("Initial provisioning in progress")
Provisioning: "Provisioning",

@doc("Upgrade in progress")
Upgrading: "Upgrading",
}

/** Edge action attachment information */
model EdgeActionAttachment {
@doc("The edge action attachment id")
@visibility(Lifecycle.Read)
id: string;

@doc("The attached resource Id")
@visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update)
attachedResourceId: AttachedResourceId;
}

/** Edge action attachment response */
@clientName("EdgeActionAttachmentResult", "csharp")
model EdgeActionAttachmentResponse {
#suppress "@azure-tools/typespec-azure-core/no-openapi" "Extension needed for backwards compatibility with 2024-07-22-preview"
@doc("Non changing guid to identity edge action")
@extension("x-ms-mutability", #["read", "update", "create"])
edgeActionId: string;
}

@doc("Represents an edge action properties")
model EdgeActionProperties {
@doc("The provisioning state of the edge action")
@visibility(Lifecycle.Read)
provisioningState?: ProvisioningState;

@doc("A list of attachments for the edge action")
@visibility(Lifecycle.Read)
attachments: EdgeActionAttachment[];
}

@doc("Represents an edge action version")
model EdgeActionVersionProperties {
@doc("The deployment type")
@visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update)
deploymentType: EdgeActionVersionDeploymentType;

@doc("The validation status")
@visibility(Lifecycle.Read)
validationStatus: EdgeActionVersionValidationStatus;

@doc("The provisioning state")
@visibility(Lifecycle.Read)
provisioningState?: ProvisioningState;

@doc("The active state")
@visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update)
isDefaultVersion: EdgeActionIsDefaultVersion;

@doc("The last update time in UTC for package update")
@visibility(Lifecycle.Read)
lastPackageUpdateTime: utcDateTime;
}

/** Properties for edge action execution filter */
model EdgeActionExecutionFilterProperties {
@doc("The referenced versionId of the edgeaction version")
@visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update)
versionId: EdgeActionVersionId;

@doc("The last update time in UTC for the execution filter")
@visibility(Lifecycle.Read)
lastUpdateTime: utcDateTime;

@doc("Custom Header Key associated with the execution filter")
@visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update)
executionFilterIdentifierHeaderName: string;

@doc("Custom Header Value associated with the execution filter")
@visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update)
executionFilterIdentifierHeaderValue: string;

@doc("The provisioning state")
@visibility(Lifecycle.Read)
provisioningState?: ProvisioningState;
}

/** Version code information for edge action */
model VersionCode {
@doc("The version code deployment content ")
@visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update)
content: string;

@doc("The version code name")
@visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update)
name: string;
}

/** Edge action operation properties */
model EdgeActionOperationProperties {
@doc("The resource id of the operation.")
resourceId: string;

@doc("The GUID representing operationID.")
operationId: string;

@doc("The current status of the operation.")
status: OperationStatus;

@doc("The operation type.")
operationType: string;

@doc("The start time of the operation.")
startTime?: utcDateTime;

@doc("The end time of the operation (if completed).")
endTime?: utcDateTime;

@doc("Error details, if applicable.")
error?: ErrorDetails;
}

/** Error details for operations */
model ErrorDetails {
@doc("Error code.")
code: string;

@doc("Detailed error message.")
message: string;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"operationId": "EdgeActionExecutionFilters_Create",
"title": "CreateEdgeActionExecutionFilters",
"parameters": {
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "testrg",
"api-version": "2025-09-01-preview",
"edgeActionName": "edgeAction1",
"executionFilter": "executionFilter1",
"resource": {
"location": "global",
"properties": {
"versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1",
"executionFilterIdentifierHeaderName": "header-key",
"executionFilterIdentifierHeaderValue": "header-value"
}
}
},
"responses": {
"201": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1",
"name": "executionFilter1",
"type": "Microsoft.Cdn/edgeActions/executionFilters",
"location": "global",
"properties": {
"versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1",
"executionFilterIdentifierHeaderName": "header-key",
"executionFilterIdentifierHeaderValue": "header-value",
"provisioningState": "Accepted",
"lastUpdateTime": "2024-04-25T15:19:23Z"
}
}
},
"200": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1",
"name": "executionFilter1",
"type": "Microsoft.Cdn/edgeActions/executionFilters",
"location": "global",
"properties": {
"versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1",
"executionFilterIdentifierHeaderName": "header-key",
"executionFilterIdentifierHeaderValue": "header-value",
"provisioningState": "Succeeded",
"lastUpdateTime": "2024-04-25T15:19:23Z"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"operationId": "EdgeActionExecutionFilters_Delete",
"title": "DeleteEdgeActionExecutionFilters",
"parameters": {
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "testrg",
"api-version": "2025-09-01-preview",
"edgeActionName": "edgeAction1",
"executionFilter": "executionFilter1"
},
"responses": {
"202": {
"headers": {
"location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview"
}
},
"204": {}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"operationId": "EdgeActionExecutionFilters_Get",
"title": "GetEdgeActionExecutionFilters",
"parameters": {
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "testrg",
"api-version": "2025-09-01-preview",
"edgeActionName": "edgeAction1",
"executionFilter": "executionFilter1"
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1",
"name": "executionFilter1",
"type": "Microsoft.Cdn/edgeActions/executionFilters",
"location": "global",
"properties": {
"versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1",
"executionFilterIdentifierHeaderName": "header-key",
"executionFilterIdentifierHeaderValue": "header-value",
"provisioningState": "Succeeded",
"lastUpdateTime": "2024-04-25T15:19:23Z"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"operationId": "EdgeActionExecutionFilters_ListByEdgeAction",
"title": "ListEdgeActionsExecutionFiltersByEdgeAction",
"parameters": {
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "testrg",
"api-version": "2025-09-01-preview",
"edgeActionName": "edgeAction1"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1",
"name": "executionFilter1",
"type": "Microsoft.Cdn/edgeActions/executionFilters",
"location": "global",
"properties": {
"versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1",
"executionFilterIdentifierHeaderName": "header-key",
"executionFilterIdentifierHeaderValue": "header-value",
"provisioningState": "Succeeded",
"lastUpdateTime": "2024-04-25T15:19:23Z"
}
},
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters2",
"name": "executionFilter2",
"type": "Microsoft.Cdn/edgeActions/executionFilters",
"location": "global",
"properties": {
"versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version2",
"executionFilterIdentifierHeaderName": "header-key2",
"executionFilterIdentifierHeaderValue": "header-value2",
"provisioningState": "Succeeded",
"lastUpdateTime": "2024-04-25T15:19:23Z"
}
}
]
}
}
}
}
Loading