Skip to content

Commit 1e87667

Browse files
authored
[Hub Generated] Review request for Microsoft.PlaywrightTesting.AuthManager to add version preview/2023-10-01-preview (#25444)
* Generate new Service for playwrighttesting * Data Plane APIs for Microsoft.AzurePlaywrightService RP for version 2023-10-01-preview * Corrected json path in read.md * Removed description from the access key object
1 parent dad089f commit 1e87667

File tree

14 files changed

+1079
-0
lines changed

14 files changed

+1079
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"title": "AccessKeys_CreateAccessKey",
3+
"operationId": "AccessKeys_CreateAccessKey",
4+
"parameters": {
5+
"api-version": "2023-10-01-preview",
6+
"accountId": "sampleAccountId",
7+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
8+
"resource": {
9+
"name": "sampleAccessKey",
10+
"expiryAt": "2021-09-28T12:32:33Z"
11+
}
12+
},
13+
"responses": {
14+
"200": {
15+
"body": {
16+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
17+
"name": "sampleAccessKey",
18+
"jwtToken": "sampleJwtToken",
19+
"createdAt": "2021-09-28T12:32:33Z",
20+
"expiryAt": "2022-09-28T12:32:33Z",
21+
"state": "Active"
22+
}
23+
},
24+
"201": {
25+
"body": {
26+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
27+
"name": "sampleAccessKey",
28+
"jwtToken": "sampleJwtToken",
29+
"createdAt": "2021-09-28T12:32:33Z",
30+
"expiryAt": "2022-09-28T12:32:33Z",
31+
"state": "Active"
32+
}
33+
}
34+
}
35+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"title": "AccessKeys_DeleteAccessKey",
3+
"operationId": "AccessKeys_DeleteAccessKey",
4+
"parameters": {
5+
"api-version": "2023-10-01-preview",
6+
"accountId": "sampleAccountId",
7+
"accessKeyId": "00000000-0000-0000-0000-000000000000"
8+
},
9+
"responses": {
10+
"204": {}
11+
}
12+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"title": "AccessKeys_GetAccessKey",
3+
"operationId": "AccessKeys_GetAccessKey",
4+
"parameters": {
5+
"api-version": "2023-10-01-preview",
6+
"accountId": "sampleAccountId",
7+
"accessKeyId": "00000000-0000-0000-0000-000000000000"
8+
},
9+
"responses": {
10+
"200": {
11+
"body": {
12+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
13+
"name": "sampleAccessKey",
14+
"jwtToken": "sampleJwtToken",
15+
"createdAt": "2021-09-28T12:32:33Z",
16+
"expiryAt": "2022-09-28T12:32:33Z",
17+
"state": "Active"
18+
}
19+
}
20+
}
21+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"title": "AccessKeys_ListAccessKeys",
3+
"operationId": "AccessKeys_ListAccessKeys",
4+
"parameters": {
5+
"api-version": "2023-10-01-preview",
6+
"accountId": "sampleAccountId"
7+
},
8+
"responses": {
9+
"200": {
10+
"body": {
11+
"value": [
12+
{
13+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
14+
"name": "sampleAccessKey",
15+
"jwtToken": "sampleJwtToken",
16+
"createdAt": "2021-09-28T12:32:33Z",
17+
"expiryAt": "2022-09-28T12:32:33Z",
18+
"state": "Active"
19+
}
20+
],
21+
"nextLink": null
22+
}
23+
}
24+
}
25+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"title": "Accounts_GetAccount",
3+
"operationId": "Accounts_GetAccount",
4+
"parameters": {
5+
"api-version": "2023-10-01-preview",
6+
"accountId": "sampleAccountId"
7+
},
8+
"responses": {
9+
"200": {
10+
"body": {
11+
"accountId": "sampleAccountId",
12+
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/dummyrg/providers/Microsoft.AzurePlaywrightService/accounts/myPlaywrightAccount",
13+
"name": "myPlaywrightAccount",
14+
"tenantId": "00000000-0000-0000-0000-000000000000",
15+
"location": "westus",
16+
"regionalAffinity": "Enabled",
17+
"scalableExecution": "Enabled",
18+
"reporting": "Disabled"
19+
}
20+
}
21+
}
22+
}
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
// cheat-sheet - https://microsoft.github.io/typespec/standard-library/http/cheat-sheet
2+
// tsp compile main.tsp --emit @azure-tools/typespec-autorest
3+
4+
import "@typespec/http";
5+
import "@typespec/rest";
6+
import "@typespec/versioning";
7+
import "@azure-tools/typespec-azure-core";
8+
import "@azure-tools/typespec-autorest";
9+
10+
using TypeSpec.Http;
11+
using TypeSpec.Rest;
12+
using TypeSpec.Versioning;
13+
using Azure.Core;
14+
using Azure.Core.Traits;
15+
using Autorest;
16+
17+
@server(
18+
"https://api.playwright-int.io",
19+
"Azure Playwright Service API Endpoint"
20+
)
21+
@useAuth(
22+
[
23+
OAuth2Auth<[
24+
{
25+
type: OAuth2FlowType.implicit,
26+
authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize",
27+
scopes: ["https://preview.playwright-int.io/.default"],
28+
}
29+
]>
30+
]
31+
)
32+
@service({
33+
title: "Microsoft PlaywrightTesting AuthManager Service API",
34+
})
35+
@versioned(Microsoft.PlaywrightTesting.AuthManager.Versions)
36+
namespace Microsoft.PlaywrightTesting.AuthManager;
37+
38+
@doc("The PlaywrightTesting Auth Manager service version.")
39+
enum Versions {
40+
@doc("Version 2023-10-01-preview")
41+
@useDependency(Azure.Core.Versions.v1_0_Preview_2)
42+
`2023-10-01-preview`,
43+
}
44+
45+
// Models ////////////////////
46+
47+
@doc("An account is a parent resource for most of the other service resources. It's directly mapped to an ARM resource and helps to create a link between control-plane and data-plane resources.")
48+
@resource("accounts")
49+
model Account {
50+
@key("accountId")
51+
@doc("The account id.")
52+
@visibility("read")
53+
accountId: string;
54+
55+
@doc("The ARM fully-qualified resource id for the account.")
56+
@visibility("read")
57+
resourceId: string;
58+
59+
@doc("The account name.")
60+
@visibility("read")
61+
name: string;
62+
63+
@doc("The Azure tenant id of the account.")
64+
@visibility("read")
65+
tenantId?: uuid;
66+
67+
@doc("The account resource ARM location, for eg. eastus, southeastasia.")
68+
@visibility("read")
69+
location: string;
70+
71+
@doc("The regionalAffinity feature enablement status for the account.")
72+
@visibility("read")
73+
regionalAffinity?: EnablementStatus = EnablementStatus.Enabled;
74+
75+
@doc("The scalableExecution feature enablement status for the account.")
76+
@visibility("read")
77+
scalableExecution?: EnablementStatus = EnablementStatus.Enabled;
78+
79+
@doc("The reporting feature enablement status for the account.")
80+
@visibility("read")
81+
reporting?: EnablementStatus = EnablementStatus.Disabled;
82+
}
83+
84+
@doc("Model of an access-key linked to an account.")
85+
@resource("access-keys")
86+
@parentResource(Account)
87+
model AccessKey {
88+
@key("accessKeyId")
89+
@doc("The access-key id.")
90+
@visibility("read")
91+
accessKeyId: uuid;
92+
93+
@doc("The access-key name.")
94+
@visibility("read", "create")
95+
name: string;
96+
97+
@doc("The access-key JWT token.")
98+
@visibility("read")
99+
jwtToken?: string;
100+
101+
@doc("The access-key createdAt utcDateTime.")
102+
@visibility("read")
103+
createdAt: utcDateTime;
104+
105+
@doc("The access-key expiryAt utcDateTime.")
106+
@visibility("read", "create")
107+
expiryAt: utcDateTime;
108+
109+
@doc("The access-key state.")
110+
@visibility("read")
111+
state: AccessKeyState;
112+
}
113+
114+
@doc("The access-key state.")
115+
enum AccessKeyState {
116+
@doc("The access-key is Active.")
117+
Active,
118+
119+
@doc("The access-key is Expired.")
120+
Expired,
121+
}
122+
123+
@doc("The enablement status of a feature.")
124+
enum EnablementStatus {
125+
@doc("The feature is Enabled.")
126+
Enabled,
127+
128+
@doc("The feature is Disabled.")
129+
Disabled,
130+
}
131+
132+
// Operations ////////////////////
133+
134+
alias ServiceTraits = NoRepeatableRequests &
135+
NoConditionalRequests &
136+
SupportsClientRequestId;
137+
138+
alias Operations = Azure.Core.ResourceOperations<ServiceTraits>;
139+
140+
interface AccessKeys {
141+
// AccessKey Operations
142+
143+
@doc("Creates an access-key with given access-key id in guid format.")
144+
@example("./AccessKeys_CreateAccessKey.json", "AccessKeys_CreateAccessKey")
145+
createAccessKey is Operations.ResourceCreateOrReplace<AccessKey>;
146+
147+
@doc("Get an access-key for given access-key id in guid format.")
148+
@example("./AccessKeys_GetAccessKey.json", "AccessKeys_GetAccessKey")
149+
getAccessKey is Operations.ResourceRead<AccessKey>;
150+
151+
@doc("Revoke an access-key with given access-key id in guid format.")
152+
@example("./AccessKeys_DeleteAccessKey.json", "AccessKeys_DeleteAccessKey")
153+
deleteAccessKey is Operations.ResourceDelete<AccessKey>;
154+
155+
@doc("List access-keys for a given accountId.")
156+
@example("./AccessKeys_ListAccessKeys.json", "AccessKeys_ListAccessKeys")
157+
listAccessKeys is Operations.ResourceList<AccessKey>;
158+
}
159+
160+
interface Accounts {
161+
// Accounts Operations
162+
@doc("Get details of the ARM resource mapped to an account for the given accountId.")
163+
@example("./Accounts_GetAccount.json", "Accounts_GetAccount")
164+
getAccount is Operations.ResourceRead<Account>;
165+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
emit:
2+
- "@azure-tools/typespec-autorest"
3+
parameters:
4+
"service-directory-name":
5+
default: "playwrighttesting"
6+
options:
7+
"@azure-tools/typespec-autorest":
8+
azure-resource-provider-folder: "data-plane"
9+
emitter-output-dir: "{project-root}/.."
10+
examples-directory: "{project-root}/examples"
11+
output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/playwrighttesting.json"
12+
omit-unreachable-types: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"title": "AccessKeys_CreateAccessKey",
3+
"operationId": "AccessKeys_CreateAccessKey",
4+
"parameters": {
5+
"api-version": "2023-10-01-preview",
6+
"accountId": "sampleAccountId",
7+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
8+
"resource": {
9+
"name": "sampleAccessKey",
10+
"expiryAt": "2021-09-28T12:32:33Z"
11+
}
12+
},
13+
"responses": {
14+
"200": {
15+
"body": {
16+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
17+
"name": "sampleAccessKey",
18+
"jwtToken": "sampleJwtToken",
19+
"createdAt": "2021-09-28T12:32:33Z",
20+
"expiryAt": "2022-09-28T12:32:33Z",
21+
"state": "Active"
22+
}
23+
},
24+
"201": {
25+
"body": {
26+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
27+
"name": "sampleAccessKey",
28+
"jwtToken": "sampleJwtToken",
29+
"createdAt": "2021-09-28T12:32:33Z",
30+
"expiryAt": "2022-09-28T12:32:33Z",
31+
"state": "Active"
32+
}
33+
}
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"title": "AccessKeys_DeleteAccessKey",
3+
"operationId": "AccessKeys_DeleteAccessKey",
4+
"parameters": {
5+
"api-version": "2023-10-01-preview",
6+
"accountId": "sampleAccountId",
7+
"accessKeyId": "00000000-0000-0000-0000-000000000000"
8+
},
9+
"responses": {
10+
"204": {}
11+
}
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"title": "AccessKeys_GetAccessKey",
3+
"operationId": "AccessKeys_GetAccessKey",
4+
"parameters": {
5+
"api-version": "2023-10-01-preview",
6+
"accountId": "sampleAccountId",
7+
"accessKeyId": "00000000-0000-0000-0000-000000000000"
8+
},
9+
"responses": {
10+
"200": {
11+
"body": {
12+
"accessKeyId": "00000000-0000-0000-0000-000000000000",
13+
"name": "sampleAccessKey",
14+
"jwtToken": "sampleJwtToken",
15+
"createdAt": "2021-09-28T12:32:33Z",
16+
"expiryAt": "2022-09-28T12:32:33Z",
17+
"state": "Active"
18+
}
19+
}
20+
}
21+
}

0 commit comments

Comments
 (0)