Skip to content

Commit 4b21c6d

Browse files
anh072Anh NguyenTianrensshaowan-msftJinqiang Ding
authored
Azure Frontdoor public preview 2025-09-01-preview (#37603)
* added 2025-09-01-preview version for AFD Origin Shield feature * gRPC public preview * Add preview deployment changes in 09-01-preview * Add edge action in rule engine * Cherry-pick mTLS api from 2025-07-01-preview * Add UrlSigning API * Add API specs for Project Neo * added typespec for CDN version 2025-09-01-preview * changed origin shield to origin capacity --------- Co-authored-by: Anh Nguyen <[email protected]> Co-authored-by: Tianrens <[email protected]> Co-authored-by: shaowan-msft <[email protected]> Co-authored-by: Jinqiang Ding <[email protected]> Co-authored-by: Jessica Li <[email protected]> Co-authored-by: Yue Liu <[email protected]>
1 parent ee1579c commit 4b21c6d

File tree

305 files changed

+44036
-188
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

305 files changed

+44036
-188
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import "@azure-tools/typespec-azure-core";
2+
import "@azure-tools/typespec-azure-resource-manager";
3+
import "@typespec/openapi";
4+
import "@typespec/rest";
5+
import "@typespec/versioning";
6+
import "./models.tsp";
7+
import "./Profile.tsp";
8+
9+
using TypeSpec.Rest;
10+
using Azure.ResourceManager;
11+
using TypeSpec.Http;
12+
using TypeSpec.OpenAPI;
13+
using TypeSpec.Versioning;
14+
15+
namespace Microsoft.Cdn;
16+
/**
17+
* Deployment version object
18+
*/
19+
@added(Versions.v2025_09_01_preview)
20+
@parentResource(Profile)
21+
model DeploymentVersion
22+
is Azure.ResourceManager.ProxyResource<DeploymentVersionProperties> {
23+
...ResourceNameParameter<
24+
Resource = DeploymentVersion,
25+
KeyName = "versionName",
26+
SegmentName = "deploymentVersions",
27+
NamePattern = "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$"
28+
>;
29+
}
30+
31+
@added(Versions.v2025_09_01_preview)
32+
@armResourceOperations
33+
interface DeploymentVersions {
34+
/**
35+
* Get an existing DeploymentVersion with the specified version name under the specified subscription, resource group and profile.
36+
*/
37+
get is ArmResourceRead<DeploymentVersion>;
38+
39+
/**
40+
* Update an existing DeploymentVersion within a profile.
41+
*/
42+
@patch(#{ implicitOptionality: false })
43+
update is ArmCustomPatchSync<
44+
DeploymentVersion,
45+
PatchModel = DeploymentVersionUpdate
46+
>;
47+
48+
/**
49+
* Lists existing deployment versions by profile
50+
*/
51+
listByProfile is ArmResourceListByParent<DeploymentVersion>;
52+
53+
/**
54+
* Approve the deployment of the version
55+
*/
56+
approve is ArmResourceActionAsync<
57+
DeploymentVersion,
58+
void,
59+
ArmResponse<DeploymentVersion>,
60+
LroHeaders = ArmLroLocationHeader
61+
>;
62+
63+
/**
64+
* Compare the deployment version to another deployment version
65+
*/
66+
compare is ArmResourceActionSync<
67+
DeploymentVersion,
68+
CompareDeploymentVersionsParameter,
69+
ArmResponse<CompareDeploymentVersionsResponse>
70+
>;
71+
}
72+
73+
@@maxLength(DeploymentVersion.name, 260);
74+
@@minLength(DeploymentVersion.name, 1);
75+
@@doc(DeploymentVersion.name,
76+
"Name of the DeploymentVersion under the profile."
77+
);
78+
@@doc(DeploymentVersion.properties,
79+
"The JSON object that contains the properties of the deployment version."
80+
);
81+
@@doc(DeploymentVersions.update::parameters.properties,
82+
"Deployment version properties"
83+
);
84+
@@doc(DeploymentVersions.compare::parameters.body,
85+
"The deployment version to be compared to"
86+
);
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import "@azure-tools/typespec-azure-core";
2+
import "@azure-tools/typespec-azure-resource-manager";
3+
import "@typespec/openapi";
4+
import "@typespec/rest";
5+
import "@typespec/versioning";
6+
import "./models.tsp";
7+
import "./Profile.tsp";
8+
9+
using TypeSpec.Rest;
10+
using Azure.ResourceManager;
11+
using TypeSpec.Http;
12+
using TypeSpec.OpenAPI;
13+
using TypeSpec.Versioning;
14+
15+
namespace Microsoft.Cdn;
16+
/**
17+
* Contains a list of references of UrlSigningKey type secret objects.
18+
*/
19+
@added(Versions.v2025_09_01_preview)
20+
@parentResource(Profile)
21+
model KeyGroup is Azure.ResourceManager.ProxyResource<KeyGroupProperties> {
22+
...ResourceNameParameter<
23+
Resource = KeyGroup,
24+
KeyName = "keyGroupName",
25+
SegmentName = "keyGroups",
26+
NamePattern = "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$"
27+
>;
28+
}
29+
30+
/**
31+
* Defines a KeyGroup response body for long-running operations.
32+
*/
33+
@added(Versions.v2025_09_01_preview)
34+
model KeyGroupAcceptedBody {
35+
/**
36+
* Defines a KeyGroup response body
37+
*/
38+
@bodyRoot
39+
@added(Versions.v2025_09_01_preview)
40+
_: KeyGroup;
41+
}
42+
43+
@added(Versions.v2025_09_01_preview)
44+
@armResourceOperations
45+
interface KeyGroups {
46+
/**
47+
* Gets an existing KeyGroup within a profile.
48+
*/
49+
get is ArmResourceRead<KeyGroup>;
50+
51+
/**
52+
* Creates or updates a new KeyGroup within the specified profile.
53+
*/
54+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility"
55+
#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility"
56+
createUpdate is ArmResourceCreateOrReplaceAsync<
57+
KeyGroup,
58+
Response = ArmResourceUpdatedResponse<KeyGroup> | ArmResourceCreatedResponse<KeyGroup> | (ArmAcceptedLroResponse<LroHeaders = ArmLroLocationHeader> &
59+
KeyGroupAcceptedBody)
60+
>;
61+
62+
/**
63+
* Updates an existing KeyGroup within the specified profile.
64+
*/
65+
#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility"
66+
@patch(#{ implicitOptionality: false })
67+
update is ArmCustomPatchAsync<
68+
KeyGroup,
69+
PatchModel = KeyGroupUpdatePropertiesParameters,
70+
Response = ArmResponse<KeyGroup> | (ArmAcceptedLroResponse<LroHeaders = ArmLroLocationHeader> &
71+
KeyGroupAcceptedBody)
72+
>;
73+
74+
/**
75+
* Deletes an existing KeyGroup within profile.
76+
*/
77+
delete is ArmResourceDeleteWithoutOkAsync<
78+
KeyGroup,
79+
Response = ArmDeleteAcceptedLroResponse<LroHeaders = ArmLroLocationHeader> | ArmDeletedNoContentResponse
80+
>;
81+
82+
/**
83+
* Lists existing AzureFrontDoor KeyGroups.
84+
*/
85+
listByProfile is ArmResourceListByParent<KeyGroup>;
86+
}
87+
88+
@@maxLength(KeyGroup.name, 260);
89+
@@minLength(KeyGroup.name, 1);
90+
@@doc(KeyGroup.name, "Name of the KeyGroup under the profile.");
91+
@@doc(KeyGroup.properties,
92+
"The JSON object that contains the properties of the key group to create."
93+
);
94+
@@doc(KeyGroups.createUpdate::parameters.resource, "The KeyGroup properties.");
95+
@@doc(KeyGroups.update::parameters.properties, "The KeyGroup properties.");
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
import "@azure-tools/typespec-azure-core";
2+
import "@azure-tools/typespec-azure-resource-manager";
3+
import "@typespec/openapi";
4+
import "@typespec/rest";
5+
import "@typespec/versioning";
6+
import "./models.tsp";
7+
import "./WebAgent.tsp";
8+
9+
using TypeSpec.Rest;
10+
using Azure.ResourceManager;
11+
using TypeSpec.Http;
12+
using TypeSpec.OpenAPI;
13+
using TypeSpec.Versioning;
14+
15+
namespace Microsoft.Cdn;
16+
/**
17+
* Defines a knowledge source resource for a web agent.
18+
*/
19+
@added(Versions.v2025_09_01_preview)
20+
@parentResource(WebAgent)
21+
model KnowledgeSource
22+
is Azure.ResourceManager.ProxyResource<KnowledgeSourceProperties> {
23+
...ResourceNameParameter<
24+
Resource = KnowledgeSource,
25+
KeyName = "knowledgeSourceName",
26+
SegmentName = "knowledgeSources",
27+
NamePattern = "^[a-zA-Z0-9][a-zA-Z0-9\\-]{0,62}[a-zA-Z0-9]$"
28+
>;
29+
}
30+
31+
/**
32+
* Defines a KnowledgeSource response body for long-running operation
33+
*/
34+
@added(Versions.v2025_09_01_preview)
35+
model KnowledgeSourceAcceptedBody {
36+
/**
37+
* Defines a KnowledgeSource response body
38+
*/
39+
@bodyRoot
40+
@added(Versions.v2025_09_01_preview)
41+
_: KnowledgeSource;
42+
}
43+
44+
@added(Versions.v2025_09_01_preview)
45+
@armResourceOperations
46+
interface KnowledgeSources {
47+
/**
48+
* Gets a knowledge source with the specified name within a web agent.
49+
*/
50+
get is ArmResourceRead<KnowledgeSource>;
51+
52+
/**
53+
* Creates or updates a knowledge source with the specified name within a web agent.
54+
*/
55+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
56+
#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
57+
createOrUpdate is ArmResourceCreateOrReplaceAsync<
58+
KnowledgeSource,
59+
Response = ArmResourceUpdatedResponse<KnowledgeSource> | ArmResourceCreatedResponse<KnowledgeSource> | (ArmAcceptedLroResponse<LroHeaders = ArmLroLocationHeader<FinalResult = KnowledgeSource>> &
60+
KnowledgeSourceAcceptedBody)
61+
>;
62+
63+
/**
64+
* Updates an existing knowledge source with the specified name within a web agent.
65+
*/
66+
#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility"
67+
@patch(#{ implicitOptionality: false })
68+
update is ArmCustomPatchAsync<
69+
KnowledgeSource,
70+
PatchModel = KnowledgeSourceUpdateParameters,
71+
Response = ArmResponse<KnowledgeSource> | (ArmAcceptedLroResponse<LroHeaders = ArmLroLocationHeader> &
72+
KnowledgeSourceAcceptedBody)
73+
>;
74+
75+
/**
76+
* Deletes a knowledge source with the specified name within a web agent.
77+
*/
78+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility"
79+
delete is ArmResourceDeleteWithoutOkAsync<
80+
KnowledgeSource,
81+
Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse<LroHeaders = ArmLroLocationHeader> | ArmDeletedNoContentResponse
82+
>;
83+
84+
/**
85+
* Lists all knowledge sources within a web agent.
86+
*/
87+
listByWebAgent is ArmResourceListByParent<
88+
KnowledgeSource,
89+
Response = ArmResponse<KnowledgeSourceList>
90+
>;
91+
92+
/**
93+
* Remove the cache of a knowledge source.
94+
*/
95+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
96+
purge is ArmResourceActionAsync<
97+
KnowledgeSource,
98+
void,
99+
OkResponse,
100+
LroHeaders = ArmLroLocationHeader
101+
>;
102+
}
103+
104+
@@maxLength(KnowledgeSource.name, 64);
105+
@@minLength(KnowledgeSource.name, 1);
106+
@@doc(KnowledgeSource.name, "The name of the knowledge source.");
107+
@@doc(KnowledgeSource.properties, "Properties of the knowledge source.");
108+
@@doc(KnowledgeSources.createOrUpdate::parameters.resource,
109+
"Knowledge source to be created or updated."
110+
);
111+
@@doc(KnowledgeSources.update::parameters.properties,
112+
"Knowledge source parameters to be updated."
113+
);
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
import "@azure-tools/typespec-azure-core";
2+
import "@azure-tools/typespec-azure-resource-manager";
3+
import "@typespec/openapi";
4+
import "@typespec/rest";
5+
import "@typespec/versioning";
6+
import "./models.tsp";
7+
import "./Profile.tsp";
8+
9+
using TypeSpec.Rest;
10+
using Azure.ResourceManager;
11+
using TypeSpec.Http;
12+
using TypeSpec.OpenAPI;
13+
using TypeSpec.Versioning;
14+
15+
namespace Microsoft.Cdn;
16+
/**
17+
* An agent link (web agent association) within a CDN profile.
18+
*/
19+
@added(Versions.v2025_09_01_preview)
20+
@parentResource(Profile)
21+
model ProfileAgent
22+
is Azure.ResourceManager.ProxyResource<ProfileAgentProperties> {
23+
...ResourceNameParameter<
24+
Resource = ProfileAgent,
25+
KeyName = "agentName",
26+
SegmentName = "agents",
27+
NamePattern = ""
28+
>;
29+
}
30+
31+
/**
32+
* Defines a ProfileAgent response body for long-running operations.
33+
*/
34+
@added(Versions.v2025_09_01_preview)
35+
model ProfileAgentAcceptedBody {
36+
/**
37+
* Defines a ProfileAgent response body
38+
*/
39+
@bodyRoot
40+
@added(Versions.v2025_09_01_preview)
41+
_: ProfileAgent;
42+
}
43+
44+
@added(Versions.v2025_09_01_preview)
45+
@armResourceOperations
46+
interface ProfileAgents {
47+
/**
48+
* Gets an agent link (web agent association) within a CDN profile.
49+
*/
50+
get is ArmResourceRead<ProfileAgent>;
51+
52+
/**
53+
* Creates or updates an agent link (web agent association) within a CDN profile.
54+
*/
55+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
56+
#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
57+
createOrUpdate is ArmResourceCreateOrReplaceAsync<
58+
ProfileAgent,
59+
Response = ArmResourceUpdatedResponse<ProfileAgent> | ArmResourceCreatedResponse<ProfileAgent> | (ArmAcceptedLroResponse<LroHeaders = ArmLroLocationHeader<FinalResult = ProfileAgent>> &
60+
ProfileAgentAcceptedBody)
61+
>;
62+
63+
/**
64+
* Updates an existing agent link (web agent association) within a CDN profile.
65+
*/
66+
#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
67+
@patch(#{ implicitOptionality: false })
68+
update is ArmCustomPatchAsync<
69+
ProfileAgent,
70+
PatchModel = ProfileAgentUpdateParameters,
71+
Response = ArmResponse<ProfileAgent> | (ArmAcceptedLroResponse<LroHeaders = ArmLroLocationHeader> &
72+
ProfileAgentAcceptedBody)
73+
>;
74+
75+
/**
76+
* Deletes an existing agent link (web agent association) within a CDN profile.
77+
*/
78+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
79+
delete is ArmResourceDeleteWithoutOkAsync<
80+
ProfileAgent,
81+
Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse<ArmLroLocationHeader> | ArmDeletedNoContentResponse
82+
>;
83+
84+
/**
85+
* Lists all agent links (web agent associations) within a CDN profile.
86+
*/
87+
listByProfile is ArmResourceListByParent<ProfileAgent>;
88+
}
89+
90+
@@doc(ProfileAgent.name, "Name of the web agent association.");
91+
@@doc(ProfileAgent.properties,
92+
"The properties of a profile agent association."
93+
);
94+
@@doc(ProfileAgents.createOrUpdate::parameters.resource,
95+
"Profile agent association properties."
96+
);
97+
@@doc(ProfileAgents.update::parameters.properties,
98+
"Profile agent association update properties."
99+
);

0 commit comments

Comments
 (0)