From 7f462c0ea694cf19ba5c81e61054bc890b5cbe60 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 24 Jun 2026 02:31:15 +0000 Subject: [PATCH] chore: update API specs and SDK examples --- .../examples/functions/list-specifications.md | 4 +- .../console-web/examples/oauth2/authorize.md | 3 +- .../oauth2/create-device-authorization.md | 3 +- .../examples/oauth2/create-token.md | 3 +- .../examples/sites/list-specifications.md | 4 +- .../console-web/examples/usage/list-events.md | 2 +- .../console-web/examples/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 4 +- .../examples/sites/list-specifications.md | 4 +- .../server-dart/examples/usage/list-events.md | 2 +- .../server-dart/examples/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 5 +- .../examples/sites/list-specifications.md | 5 +- .../examples/usage/list-events.md | 2 +- .../examples/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 4 +- .../examples/sites/list-specifications.md | 4 +- .../server-go/examples/usage/list-events.md | 2 +- .../server-go/examples/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 4 +- .../examples/sites/list-specifications.md | 4 +- .../examples/usage/list-events.md | 39 +- .../examples/usage/list-gauges.md | 39 +- .../java/functions/list-specifications.md | 18 +- .../java/sites/list-specifications.md | 18 +- .../server-kotlin/java/usage/list-events.md | 2 +- .../server-kotlin/java/usage/list-gauges.md | 2 +- .../kotlin/functions/list-specifications.md | 4 +- .../kotlin/sites/list-specifications.md | 4 +- .../server-kotlin/kotlin/usage/list-events.md | 2 +- .../server-kotlin/kotlin/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 4 +- .../examples/sites/list-specifications.md | 4 +- .../examples/usage/list-events.md | 2 +- .../examples/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 5 +- .../examples/sites/list-specifications.md | 5 +- .../server-php/examples/usage/list-events.md | 2 +- .../server-php/examples/usage/list-gauges.md | 2 +- .../examples/apps/create-secret.md | 18 + .../server-python/examples/apps/create.md | 36 ++ .../examples/apps/delete-secret.md | 16 + .../examples/apps/delete-tokens.md | 15 + .../server-python/examples/apps/delete.md | 15 + .../server-python/examples/apps/get-secret.md | 19 + .../1.9.x/server-python/examples/apps/get.md | 18 + .../examples/apps/list-secrets.md | 20 + .../1.9.x/server-python/examples/apps/list.md | 19 + .../examples/apps/update-team.md | 19 + .../server-python/examples/apps/update.md | 35 ++ .../examples/functions/list-specifications.md | 4 +- .../server-python/examples/oauth2/approve.md | 19 + .../examples/oauth2/authorize.md | 29 ++ .../oauth2/create-device-authorization.md | 21 + .../examples/oauth2/create-grant.md | 18 + .../examples/oauth2/create-token.md | 26 ++ .../examples/oauth2/get-grant.md | 18 + .../server-python/examples/oauth2/reject.md | 18 + .../server-python/examples/oauth2/revoke.md | 18 + .../examples/sites/list-specifications.md | 4 +- .../examples/usage/list-events.md | 2 +- .../examples/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 4 +- .../examples/sites/list-specifications.md | 4 +- .../server-ruby/examples/usage/list-events.md | 2 +- .../server-ruby/examples/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 4 +- .../examples/sites/list-specifications.md | 4 +- .../server-rust/examples/usage/list-events.md | 2 +- .../server-rust/examples/usage/list-gauges.md | 2 +- .../examples/functions/list-specifications.md | 4 +- .../examples/sites/list-specifications.md | 4 +- .../examples/usage/list-events.md | 2 +- .../examples/usage/list-gauges.md | 2 +- specs/1.9.x/open-api3-1.9.x-client.json | 80 +++- specs/1.9.x/open-api3-1.9.x-console.json | 397 +++++++++++------- specs/1.9.x/open-api3-1.9.x-server.json | 394 ++++++++++------- 77 files changed, 1107 insertions(+), 432 deletions(-) create mode 100644 examples/1.9.x/server-python/examples/apps/create-secret.md create mode 100644 examples/1.9.x/server-python/examples/apps/create.md create mode 100644 examples/1.9.x/server-python/examples/apps/delete-secret.md create mode 100644 examples/1.9.x/server-python/examples/apps/delete-tokens.md create mode 100644 examples/1.9.x/server-python/examples/apps/delete.md create mode 100644 examples/1.9.x/server-python/examples/apps/get-secret.md create mode 100644 examples/1.9.x/server-python/examples/apps/get.md create mode 100644 examples/1.9.x/server-python/examples/apps/list-secrets.md create mode 100644 examples/1.9.x/server-python/examples/apps/list.md create mode 100644 examples/1.9.x/server-python/examples/apps/update-team.md create mode 100644 examples/1.9.x/server-python/examples/apps/update.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/approve.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/authorize.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/create-device-authorization.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/create-grant.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/create-token.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/get-grant.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/reject.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/revoke.md diff --git a/examples/1.9.x/console-web/examples/functions/list-specifications.md b/examples/1.9.x/console-web/examples/functions/list-specifications.md index 90fd9d93d..d69e34a62 100644 --- a/examples/1.9.x/console-web/examples/functions/list-specifications.md +++ b/examples/1.9.x/console-web/examples/functions/list-specifications.md @@ -7,7 +7,9 @@ const client = new Client() const functions = new Functions(client); -const result = await functions.listSpecifications(); +const result = await functions.listSpecifications({ + type: 'runtimes' // optional +}); console.log(result); ``` diff --git a/examples/1.9.x/console-web/examples/oauth2/authorize.md b/examples/1.9.x/console-web/examples/oauth2/authorize.md index 347df6928..b84107978 100644 --- a/examples/1.9.x/console-web/examples/oauth2/authorize.md +++ b/examples/1.9.x/console-web/examples/oauth2/authorize.md @@ -18,7 +18,8 @@ const result = await oauth2.authorize({ codeChallengeMethod: 's256', // optional prompt: '', // optional maxAge: 0, // optional - authorizationDetails: '' // optional + authorizationDetails: '', // optional + resource: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/oauth2/create-device-authorization.md b/examples/1.9.x/console-web/examples/oauth2/create-device-authorization.md index fa905977b..e33a3a21b 100644 --- a/examples/1.9.x/console-web/examples/oauth2/create-device-authorization.md +++ b/examples/1.9.x/console-web/examples/oauth2/create-device-authorization.md @@ -10,7 +10,8 @@ const oauth2 = new Oauth2(client); const result = await oauth2.createDeviceAuthorization({ clientId: '', // optional scope: '', // optional - authorizationDetails: '' // optional + authorizationDetails: '', // optional + resource: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/oauth2/create-token.md b/examples/1.9.x/console-web/examples/oauth2/create-token.md index a2c2ef56d..d2e0d21cc 100644 --- a/examples/1.9.x/console-web/examples/oauth2/create-token.md +++ b/examples/1.9.x/console-web/examples/oauth2/create-token.md @@ -15,7 +15,8 @@ const result = await oauth2.createToken({ clientId: '', // optional clientSecret: '', // optional codeVerifier: '', // optional - redirectUri: 'https://example.com' // optional + redirectUri: 'https://example.com', // optional + resource: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/sites/list-specifications.md b/examples/1.9.x/console-web/examples/sites/list-specifications.md index b019a627b..623e0eed7 100644 --- a/examples/1.9.x/console-web/examples/sites/list-specifications.md +++ b/examples/1.9.x/console-web/examples/sites/list-specifications.md @@ -7,7 +7,9 @@ const client = new Client() const sites = new Sites(client); -const result = await sites.listSpecifications(); +const result = await sites.listSpecifications({ + type: 'runtimes' // optional +}); console.log(result); ``` diff --git a/examples/1.9.x/console-web/examples/usage/list-events.md b/examples/1.9.x/console-web/examples/usage/list-events.md index 4ece2558f..d69a51ad5 100644 --- a/examples/1.9.x/console-web/examples/usage/list-events.md +++ b/examples/1.9.x/console-web/examples/usage/list-events.md @@ -8,7 +8,7 @@ const client = new Client() const usage = new Usage(client); const result = await usage.listEvents({ - metric: '', + metrics: [], resource: '', // optional resourceId: '', // optional interval: '1m', // optional diff --git a/examples/1.9.x/console-web/examples/usage/list-gauges.md b/examples/1.9.x/console-web/examples/usage/list-gauges.md index 350c4a4ff..e687be8a7 100644 --- a/examples/1.9.x/console-web/examples/usage/list-gauges.md +++ b/examples/1.9.x/console-web/examples/usage/list-gauges.md @@ -8,7 +8,7 @@ const client = new Client() const usage = new Usage(client); const result = await usage.listGauges({ - metric: '', + metrics: [], resourceId: '', // optional teamId: '', // optional interval: '1m', // optional diff --git a/examples/1.9.x/server-dart/examples/functions/list-specifications.md b/examples/1.9.x/server-dart/examples/functions/list-specifications.md index d7a3cffc0..be35d601a 100644 --- a/examples/1.9.x/server-dart/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-dart/examples/functions/list-specifications.md @@ -8,5 +8,7 @@ Client client = Client() Functions functions = Functions(client); -SpecificationList result = await functions.listSpecifications(); +SpecificationList result = await functions.listSpecifications( + type: 'runtimes', // (optional) +); ``` diff --git a/examples/1.9.x/server-dart/examples/sites/list-specifications.md b/examples/1.9.x/server-dart/examples/sites/list-specifications.md index d1ba26edf..7c80f2aad 100644 --- a/examples/1.9.x/server-dart/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-dart/examples/sites/list-specifications.md @@ -8,5 +8,7 @@ Client client = Client() Sites sites = Sites(client); -SpecificationList result = await sites.listSpecifications(); +SpecificationList result = await sites.listSpecifications( + type: 'runtimes', // (optional) +); ``` diff --git a/examples/1.9.x/server-dart/examples/usage/list-events.md b/examples/1.9.x/server-dart/examples/usage/list-events.md index 6d2b506d1..95c703fd9 100644 --- a/examples/1.9.x/server-dart/examples/usage/list-events.md +++ b/examples/1.9.x/server-dart/examples/usage/list-events.md @@ -9,7 +9,7 @@ Client client = Client() Usage usage = Usage(client); UsageEventList result = await usage.listEvents( - metric: '', + metrics: [], resource: '', // (optional) resourceId: '', // (optional) interval: '1m', // (optional) diff --git a/examples/1.9.x/server-dart/examples/usage/list-gauges.md b/examples/1.9.x/server-dart/examples/usage/list-gauges.md index a776e704c..06dd74b34 100644 --- a/examples/1.9.x/server-dart/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-dart/examples/usage/list-gauges.md @@ -9,7 +9,7 @@ Client client = Client() Usage usage = Usage(client); UsageGaugeList result = await usage.listGauges( - metric: '', + metrics: [], resourceId: '', // (optional) teamId: '', // (optional) interval: '1m', // (optional) diff --git a/examples/1.9.x/server-dotnet/examples/functions/list-specifications.md b/examples/1.9.x/server-dotnet/examples/functions/list-specifications.md index 2c168c038..cacd502b2 100644 --- a/examples/1.9.x/server-dotnet/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-dotnet/examples/functions/list-specifications.md @@ -10,5 +10,6 @@ Client client = new Client() Functions functions = new Functions(client); -SpecificationList result = await functions.ListSpecifications(); -``` +SpecificationList result = await functions.ListSpecifications( + type: "runtimes" // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/sites/list-specifications.md b/examples/1.9.x/server-dotnet/examples/sites/list-specifications.md index a1d63a1e6..af9636542 100644 --- a/examples/1.9.x/server-dotnet/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-dotnet/examples/sites/list-specifications.md @@ -10,5 +10,6 @@ Client client = new Client() Sites sites = new Sites(client); -SpecificationList result = await sites.ListSpecifications(); -``` +SpecificationList result = await sites.ListSpecifications( + type: "runtimes" // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/usage/list-events.md b/examples/1.9.x/server-dotnet/examples/usage/list-events.md index baf4ae4cf..1a5206499 100644 --- a/examples/1.9.x/server-dotnet/examples/usage/list-events.md +++ b/examples/1.9.x/server-dotnet/examples/usage/list-events.md @@ -11,7 +11,7 @@ Client client = new Client() Usage usage = new Usage(client); UsageEventList result = await usage.ListEvents( - metric: "", + metrics: new List(), resource: "", // optional resourceId: "", // optional interval: "1m", // optional diff --git a/examples/1.9.x/server-dotnet/examples/usage/list-gauges.md b/examples/1.9.x/server-dotnet/examples/usage/list-gauges.md index 3b7628e9a..2c8d5dbf6 100644 --- a/examples/1.9.x/server-dotnet/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-dotnet/examples/usage/list-gauges.md @@ -11,7 +11,7 @@ Client client = new Client() Usage usage = new Usage(client); UsageGaugeList result = await usage.ListGauges( - metric: "", + metrics: new List(), resourceId: "", // optional teamId: "", // optional interval: "1m", // optional diff --git a/examples/1.9.x/server-go/examples/functions/list-specifications.md b/examples/1.9.x/server-go/examples/functions/list-specifications.md index 7c386a3e4..dcbe95a95 100644 --- a/examples/1.9.x/server-go/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-go/examples/functions/list-specifications.md @@ -15,5 +15,7 @@ client := client.New( service := functions.New(client) -response, error := service.ListSpecifications()) +response, error := service.ListSpecifications( + functions.WithListSpecificationsType("runtimes"), +) ``` diff --git a/examples/1.9.x/server-go/examples/sites/list-specifications.md b/examples/1.9.x/server-go/examples/sites/list-specifications.md index 8168c2cd8..3da71fbfc 100644 --- a/examples/1.9.x/server-go/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-go/examples/sites/list-specifications.md @@ -15,5 +15,7 @@ client := client.New( service := sites.New(client) -response, error := service.ListSpecifications()) +response, error := service.ListSpecifications( + sites.WithListSpecificationsType("runtimes"), +) ``` diff --git a/examples/1.9.x/server-go/examples/usage/list-events.md b/examples/1.9.x/server-go/examples/usage/list-events.md index aebb9642f..0e1cbd0dc 100644 --- a/examples/1.9.x/server-go/examples/usage/list-events.md +++ b/examples/1.9.x/server-go/examples/usage/list-events.md @@ -16,7 +16,7 @@ client := client.New( service := usage.New(client) response, error := service.ListEvents( - "", + []string{}, usage.WithListEventsResource(""), usage.WithListEventsResourceId(""), usage.WithListEventsInterval("1m"), diff --git a/examples/1.9.x/server-go/examples/usage/list-gauges.md b/examples/1.9.x/server-go/examples/usage/list-gauges.md index 892f5b434..5d617c604 100644 --- a/examples/1.9.x/server-go/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-go/examples/usage/list-gauges.md @@ -16,7 +16,7 @@ client := client.New( service := usage.New(client) response, error := service.ListGauges( - "", + []string{}, usage.WithListGaugesResourceId(""), usage.WithListGaugesTeamId(""), usage.WithListGaugesInterval("1m"), diff --git a/examples/1.9.x/server-graphql/examples/functions/list-specifications.md b/examples/1.9.x/server-graphql/examples/functions/list-specifications.md index d6f4ce946..75402c357 100644 --- a/examples/1.9.x/server-graphql/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-graphql/examples/functions/list-specifications.md @@ -1,6 +1,8 @@ ```graphql query { - functionsListSpecifications { + functionsListSpecifications( + type: "runtimes" + ) { total specifications { memory diff --git a/examples/1.9.x/server-graphql/examples/sites/list-specifications.md b/examples/1.9.x/server-graphql/examples/sites/list-specifications.md index 980467e49..db5395067 100644 --- a/examples/1.9.x/server-graphql/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-graphql/examples/sites/list-specifications.md @@ -1,6 +1,8 @@ ```graphql query { - sitesListSpecifications { + sitesListSpecifications( + type: "runtimes" + ) { total specifications { memory diff --git a/examples/1.9.x/server-graphql/examples/usage/list-events.md b/examples/1.9.x/server-graphql/examples/usage/list-events.md index 29f8ae09d..aef0bcc60 100644 --- a/examples/1.9.x/server-graphql/examples/usage/list-events.md +++ b/examples/1.9.x/server-graphql/examples/usage/list-events.md @@ -1,7 +1,7 @@ ```graphql query { usageListEvents( - metric: "", + metrics: [], resource: "", resourceId: "", interval: "1m", @@ -13,24 +13,27 @@ query { limit: 1, offset: 0 ) { - metric interval - groups { - time - value - path - method - status - service - country - region - hostname - osName - clientType - clientName - deviceName - teamId - resourceId + metrics { + metric + points { + time + value + path + method + status + service + country + region + hostname + osName + clientType + clientName + deviceName + teamId + resourceId + resource + } } } } diff --git a/examples/1.9.x/server-graphql/examples/usage/list-gauges.md b/examples/1.9.x/server-graphql/examples/usage/list-gauges.md index 1259d40ca..77a030018 100644 --- a/examples/1.9.x/server-graphql/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-graphql/examples/usage/list-gauges.md @@ -1,7 +1,7 @@ ```graphql query { usageListGauges( - metric: "", + metrics: [], resourceId: "", teamId: "", interval: "1m", @@ -13,24 +13,27 @@ query { limit: 1, offset: 0 ) { - metric interval - groups { - time - value - path - method - status - service - country - region - hostname - osName - clientType - clientName - deviceName - teamId - resourceId + metrics { + metric + points { + time + value + path + method + status + service + country + region + hostname + osName + clientType + clientName + deviceName + teamId + resourceId + resource + } } } } diff --git a/examples/1.9.x/server-kotlin/java/functions/list-specifications.md b/examples/1.9.x/server-kotlin/java/functions/list-specifications.md index a6a245a7e..7a6c7f51c 100644 --- a/examples/1.9.x/server-kotlin/java/functions/list-specifications.md +++ b/examples/1.9.x/server-kotlin/java/functions/list-specifications.md @@ -10,12 +10,16 @@ Client client = new Client() Functions functions = new Functions(client); -functions.listSpecifications(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +functions.listSpecifications( + "runtimes", // type (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/1.9.x/server-kotlin/java/sites/list-specifications.md b/examples/1.9.x/server-kotlin/java/sites/list-specifications.md index e97db7da9..f9a8fe994 100644 --- a/examples/1.9.x/server-kotlin/java/sites/list-specifications.md +++ b/examples/1.9.x/server-kotlin/java/sites/list-specifications.md @@ -10,12 +10,16 @@ Client client = new Client() Sites sites = new Sites(client); -sites.listSpecifications(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +sites.listSpecifications( + "runtimes", // type (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/1.9.x/server-kotlin/java/usage/list-events.md b/examples/1.9.x/server-kotlin/java/usage/list-events.md index 35f136579..1baee268a 100644 --- a/examples/1.9.x/server-kotlin/java/usage/list-events.md +++ b/examples/1.9.x/server-kotlin/java/usage/list-events.md @@ -11,7 +11,7 @@ Client client = new Client() Usage usage = new Usage(client); usage.listEvents( - "", // metric + List.of(), // metrics "", // resource (optional) "", // resourceId (optional) "1m", // interval (optional) diff --git a/examples/1.9.x/server-kotlin/java/usage/list-gauges.md b/examples/1.9.x/server-kotlin/java/usage/list-gauges.md index 2ec5b7b1c..fd80cdfa6 100644 --- a/examples/1.9.x/server-kotlin/java/usage/list-gauges.md +++ b/examples/1.9.x/server-kotlin/java/usage/list-gauges.md @@ -11,7 +11,7 @@ Client client = new Client() Usage usage = new Usage(client); usage.listGauges( - "", // metric + List.of(), // metrics "", // resourceId (optional) "", // teamId (optional) "1m", // interval (optional) diff --git a/examples/1.9.x/server-kotlin/kotlin/functions/list-specifications.md b/examples/1.9.x/server-kotlin/kotlin/functions/list-specifications.md index 452d24fe8..516eeb856 100644 --- a/examples/1.9.x/server-kotlin/kotlin/functions/list-specifications.md +++ b/examples/1.9.x/server-kotlin/kotlin/functions/list-specifications.md @@ -10,5 +10,7 @@ val client = Client() val functions = Functions(client) -val response = functions.listSpecifications() +val response = functions.listSpecifications( + type = "runtimes" // optional +) ``` diff --git a/examples/1.9.x/server-kotlin/kotlin/sites/list-specifications.md b/examples/1.9.x/server-kotlin/kotlin/sites/list-specifications.md index 5ebef6014..12d0e9c8f 100644 --- a/examples/1.9.x/server-kotlin/kotlin/sites/list-specifications.md +++ b/examples/1.9.x/server-kotlin/kotlin/sites/list-specifications.md @@ -10,5 +10,7 @@ val client = Client() val sites = Sites(client) -val response = sites.listSpecifications() +val response = sites.listSpecifications( + type = "runtimes" // optional +) ``` diff --git a/examples/1.9.x/server-kotlin/kotlin/usage/list-events.md b/examples/1.9.x/server-kotlin/kotlin/usage/list-events.md index cf0a5f862..f29998bc3 100644 --- a/examples/1.9.x/server-kotlin/kotlin/usage/list-events.md +++ b/examples/1.9.x/server-kotlin/kotlin/usage/list-events.md @@ -11,7 +11,7 @@ val client = Client() val usage = Usage(client) val response = usage.listEvents( - metric = "", + metrics = listOf(), resource = "", // optional resourceId = "", // optional interval = "1m", // optional diff --git a/examples/1.9.x/server-kotlin/kotlin/usage/list-gauges.md b/examples/1.9.x/server-kotlin/kotlin/usage/list-gauges.md index 291f60085..fd7cd28e8 100644 --- a/examples/1.9.x/server-kotlin/kotlin/usage/list-gauges.md +++ b/examples/1.9.x/server-kotlin/kotlin/usage/list-gauges.md @@ -11,7 +11,7 @@ val client = Client() val usage = Usage(client) val response = usage.listGauges( - metric = "", + metrics = listOf(), resourceId = "", // optional teamId = "", // optional interval = "1m", // optional diff --git a/examples/1.9.x/server-nodejs/examples/functions/list-specifications.md b/examples/1.9.x/server-nodejs/examples/functions/list-specifications.md index 0fc8b8d75..f9bb52b99 100644 --- a/examples/1.9.x/server-nodejs/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-nodejs/examples/functions/list-specifications.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const functions = new sdk.Functions(client); -const result = await functions.listSpecifications(); +const result = await functions.listSpecifications({ + type: 'runtimes' // optional +}); ``` diff --git a/examples/1.9.x/server-nodejs/examples/sites/list-specifications.md b/examples/1.9.x/server-nodejs/examples/sites/list-specifications.md index 6e882891c..208c82783 100644 --- a/examples/1.9.x/server-nodejs/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-nodejs/examples/sites/list-specifications.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const sites = new sdk.Sites(client); -const result = await sites.listSpecifications(); +const result = await sites.listSpecifications({ + type: 'runtimes' // optional +}); ``` diff --git a/examples/1.9.x/server-nodejs/examples/usage/list-events.md b/examples/1.9.x/server-nodejs/examples/usage/list-events.md index fce0242a4..59e76eddf 100644 --- a/examples/1.9.x/server-nodejs/examples/usage/list-events.md +++ b/examples/1.9.x/server-nodejs/examples/usage/list-events.md @@ -9,7 +9,7 @@ const client = new sdk.Client() const usage = new sdk.Usage(client); const result = await usage.listEvents({ - metric: '', + metrics: [], resource: '', // optional resourceId: '', // optional interval: '1m', // optional diff --git a/examples/1.9.x/server-nodejs/examples/usage/list-gauges.md b/examples/1.9.x/server-nodejs/examples/usage/list-gauges.md index 7d96e5b5a..14609dc4c 100644 --- a/examples/1.9.x/server-nodejs/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-nodejs/examples/usage/list-gauges.md @@ -9,7 +9,7 @@ const client = new sdk.Client() const usage = new sdk.Usage(client); const result = await usage.listGauges({ - metric: '', + metrics: [], resourceId: '', // optional teamId: '', // optional interval: '1m', // optional diff --git a/examples/1.9.x/server-php/examples/functions/list-specifications.md b/examples/1.9.x/server-php/examples/functions/list-specifications.md index f5afe80b2..7211ce698 100644 --- a/examples/1.9.x/server-php/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-php/examples/functions/list-specifications.md @@ -11,5 +11,6 @@ $client = (new Client()) $functions = new Functions($client); -$result = $functions->listSpecifications(); -``` +$result = $functions->listSpecifications( + type: 'runtimes' // optional +);``` diff --git a/examples/1.9.x/server-php/examples/sites/list-specifications.md b/examples/1.9.x/server-php/examples/sites/list-specifications.md index 1a732b6a6..33bc0c59e 100644 --- a/examples/1.9.x/server-php/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-php/examples/sites/list-specifications.md @@ -11,5 +11,6 @@ $client = (new Client()) $sites = new Sites($client); -$result = $sites->listSpecifications(); -``` +$result = $sites->listSpecifications( + type: 'runtimes' // optional +);``` diff --git a/examples/1.9.x/server-php/examples/usage/list-events.md b/examples/1.9.x/server-php/examples/usage/list-events.md index e7cfe438f..7613702c3 100644 --- a/examples/1.9.x/server-php/examples/usage/list-events.md +++ b/examples/1.9.x/server-php/examples/usage/list-events.md @@ -12,7 +12,7 @@ $client = (new Client()) $usage = new Usage($client); $result = $usage->listEvents( - metric: '', + metrics: [], resource: '', // optional resourceId: '', // optional interval: '1m', // optional diff --git a/examples/1.9.x/server-php/examples/usage/list-gauges.md b/examples/1.9.x/server-php/examples/usage/list-gauges.md index 899c052bb..1fa7d5888 100644 --- a/examples/1.9.x/server-php/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-php/examples/usage/list-gauges.md @@ -12,7 +12,7 @@ $client = (new Client()) $usage = new Usage($client); $result = $usage->listGauges( - metric: '', + metrics: [], resourceId: '', // optional teamId: '', // optional interval: '1m', // optional diff --git a/examples/1.9.x/server-python/examples/apps/create-secret.md b/examples/1.9.x/server-python/examples/apps/create-secret.md new file mode 100644 index 000000000..3c901c7ea --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/create-secret.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import AppSecretPlaintext + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: AppSecretPlaintext = apps.create_secret( + app_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/create.md b/examples/1.9.x/server-python/examples/apps/create.md new file mode 100644 index 000000000..045249044 --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/create.md @@ -0,0 +1,36 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import App + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: App = apps.create( + app_id = '', + name = '', + redirect_uris = [], + description = '', # optional + client_uri = 'https://example.com', # optional + logo_uri = 'https://example.com', # optional + privacy_policy_url = 'https://example.com', # optional + terms_url = 'https://example.com', # optional + contacts = [], # optional + tagline = '', # optional + tags = [], # optional + images = [], # optional + support_url = 'https://example.com', # optional + data_deletion_url = 'https://example.com', # optional + post_logout_redirect_uris = [], # optional + enabled = False, # optional + type = 'public', # optional + device_flow = False, # optional + team_id = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/delete-secret.md b/examples/1.9.x/server-python/examples/apps/delete-secret.md new file mode 100644 index 000000000..ae7f09760 --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/delete-secret.md @@ -0,0 +1,16 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result = apps.delete_secret( + app_id = '', + secret_id = '' +) +``` diff --git a/examples/1.9.x/server-python/examples/apps/delete-tokens.md b/examples/1.9.x/server-python/examples/apps/delete-tokens.md new file mode 100644 index 000000000..60c7f6ff7 --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/delete-tokens.md @@ -0,0 +1,15 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result = apps.delete_tokens( + app_id = '' +) +``` diff --git a/examples/1.9.x/server-python/examples/apps/delete.md b/examples/1.9.x/server-python/examples/apps/delete.md new file mode 100644 index 000000000..2318e2efd --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/delete.md @@ -0,0 +1,15 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result = apps.delete( + app_id = '' +) +``` diff --git a/examples/1.9.x/server-python/examples/apps/get-secret.md b/examples/1.9.x/server-python/examples/apps/get-secret.md new file mode 100644 index 000000000..deaea4478 --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/get-secret.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import AppSecret + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: AppSecret = apps.get_secret( + app_id = '', + secret_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/get.md b/examples/1.9.x/server-python/examples/apps/get.md new file mode 100644 index 000000000..05a82fdcf --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/get.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import App + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: App = apps.get( + app_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/list-secrets.md b/examples/1.9.x/server-python/examples/apps/list-secrets.md new file mode 100644 index 000000000..83a4dcd34 --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/list-secrets.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import AppSecretList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: AppSecretList = apps.list_secrets( + app_id = '', + queries = [], # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/list.md b/examples/1.9.x/server-python/examples/apps/list.md new file mode 100644 index 000000000..d8edd5f41 --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/list.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import AppsList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: AppsList = apps.list( + queries = [], # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/update-team.md b/examples/1.9.x/server-python/examples/apps/update-team.md new file mode 100644 index 000000000..44203fff2 --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/update-team.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import App + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: App = apps.update_team( + app_id = '', + team_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/update.md b/examples/1.9.x/server-python/examples/apps/update.md new file mode 100644 index 000000000..49c85efbe --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/update.md @@ -0,0 +1,35 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import App + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: App = apps.update( + app_id = '', + name = '', + description = '', # optional + client_uri = 'https://example.com', # optional + logo_uri = 'https://example.com', # optional + privacy_policy_url = 'https://example.com', # optional + terms_url = 'https://example.com', # optional + contacts = [], # optional + tagline = '', # optional + tags = [], # optional + images = [], # optional + support_url = 'https://example.com', # optional + data_deletion_url = 'https://example.com', # optional + enabled = False, # optional + redirect_uris = [], # optional + post_logout_redirect_uris = [], # optional + type = 'public', # optional + device_flow = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/functions/list-specifications.md b/examples/1.9.x/server-python/examples/functions/list-specifications.md index 5b76860db..7cf529a93 100644 --- a/examples/1.9.x/server-python/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-python/examples/functions/list-specifications.md @@ -10,7 +10,9 @@ client.set_key('') # Your secret API key functions = Functions(client) -result: SpecificationList = functions.list_specifications() +result: SpecificationList = functions.list_specifications( + type = 'runtimes' # optional +) print(result.model_dump()) ``` diff --git a/examples/1.9.x/server-python/examples/oauth2/approve.md b/examples/1.9.x/server-python/examples/oauth2/approve.md new file mode 100644 index 000000000..b3313599e --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/approve.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2Approve + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2Approve = oauth2.approve( + grant_id = '', + authorization_details = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/authorize.md b/examples/1.9.x/server-python/examples/oauth2/authorize.md new file mode 100644 index 000000000..0827f4636 --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/authorize.md @@ -0,0 +1,29 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2Authorize + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2Authorize = oauth2.authorize( + client_id = '', + redirect_uri = 'https://example.com', + response_type = 'code', + scope = '', + state = '', # optional + nonce = '', # optional + code_challenge = '', # optional + code_challenge_method = 's256', # optional + prompt = '', # optional + max_age = 0, # optional + authorization_details = '', # optional + resource = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/create-device-authorization.md b/examples/1.9.x/server-python/examples/oauth2/create-device-authorization.md new file mode 100644 index 000000000..3b74d1d2b --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/create-device-authorization.md @@ -0,0 +1,21 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2DeviceAuthorization + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2DeviceAuthorization = oauth2.create_device_authorization( + client_id = '', # optional + scope = '', # optional + authorization_details = '', # optional + resource = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/create-grant.md b/examples/1.9.x/server-python/examples/oauth2/create-grant.md new file mode 100644 index 000000000..1a87716c8 --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/create-grant.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2Grant + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2Grant = oauth2.create_grant( + user_code = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/create-token.md b/examples/1.9.x/server-python/examples/oauth2/create-token.md new file mode 100644 index 000000000..79607bef6 --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/create-token.md @@ -0,0 +1,26 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2Token + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2Token = oauth2.create_token( + grant_type = '', + code = '', # optional + refresh_token = '', # optional + device_code = '', # optional + client_id = '', # optional + client_secret = '', # optional + code_verifier = '', # optional + redirect_uri = 'https://example.com', # optional + resource = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/get-grant.md b/examples/1.9.x/server-python/examples/oauth2/get-grant.md new file mode 100644 index 000000000..51f617f4f --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/get-grant.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2Grant + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2Grant = oauth2.get_grant( + grant_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/reject.md b/examples/1.9.x/server-python/examples/oauth2/reject.md new file mode 100644 index 000000000..63f3335fd --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/reject.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2Reject + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2Reject = oauth2.reject( + grant_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/revoke.md b/examples/1.9.x/server-python/examples/oauth2/revoke.md new file mode 100644 index 000000000..70b94f6d9 --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/revoke.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result = oauth2.revoke( + token = '', + token_type_hint = 'access_token', # optional + client_id = '', # optional + client_secret = '' # optional +) +``` diff --git a/examples/1.9.x/server-python/examples/sites/list-specifications.md b/examples/1.9.x/server-python/examples/sites/list-specifications.md index c1229a302..2f04ddf48 100644 --- a/examples/1.9.x/server-python/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-python/examples/sites/list-specifications.md @@ -10,7 +10,9 @@ client.set_key('') # Your secret API key sites = Sites(client) -result: SpecificationList = sites.list_specifications() +result: SpecificationList = sites.list_specifications( + type = 'runtimes' # optional +) print(result.model_dump()) ``` diff --git a/examples/1.9.x/server-python/examples/usage/list-events.md b/examples/1.9.x/server-python/examples/usage/list-events.md index 4c8accbf3..83f8d725c 100644 --- a/examples/1.9.x/server-python/examples/usage/list-events.md +++ b/examples/1.9.x/server-python/examples/usage/list-events.md @@ -11,7 +11,7 @@ client.set_key('') # Your secret API key usage = Usage(client) result: UsageEventList = usage.list_events( - metric = '', + metrics = [], resource = '', # optional resource_id = '', # optional interval = '1m', # optional diff --git a/examples/1.9.x/server-python/examples/usage/list-gauges.md b/examples/1.9.x/server-python/examples/usage/list-gauges.md index 3189025c1..fb221f9ac 100644 --- a/examples/1.9.x/server-python/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-python/examples/usage/list-gauges.md @@ -11,7 +11,7 @@ client.set_key('') # Your secret API key usage = Usage(client) result: UsageGaugeList = usage.list_gauges( - metric = '', + metrics = [], resource_id = '', # optional team_id = '', # optional interval = '1m', # optional diff --git a/examples/1.9.x/server-ruby/examples/functions/list-specifications.md b/examples/1.9.x/server-ruby/examples/functions/list-specifications.md index b018ccdf3..635f73a5c 100644 --- a/examples/1.9.x/server-ruby/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-ruby/examples/functions/list-specifications.md @@ -10,5 +10,7 @@ client = Client.new functions = Functions.new(client) -result = functions.list_specifications() +result = functions.list_specifications( + type: 'runtimes' # optional +) ``` diff --git a/examples/1.9.x/server-ruby/examples/sites/list-specifications.md b/examples/1.9.x/server-ruby/examples/sites/list-specifications.md index 132a6e9c0..9ed8d0018 100644 --- a/examples/1.9.x/server-ruby/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-ruby/examples/sites/list-specifications.md @@ -10,5 +10,7 @@ client = Client.new sites = Sites.new(client) -result = sites.list_specifications() +result = sites.list_specifications( + type: 'runtimes' # optional +) ``` diff --git a/examples/1.9.x/server-ruby/examples/usage/list-events.md b/examples/1.9.x/server-ruby/examples/usage/list-events.md index 956c53583..45810f843 100644 --- a/examples/1.9.x/server-ruby/examples/usage/list-events.md +++ b/examples/1.9.x/server-ruby/examples/usage/list-events.md @@ -11,7 +11,7 @@ client = Client.new usage = Usage.new(client) result = usage.list_events( - metric: '', + metrics: [], resource: '', # optional resource_id: '', # optional interval: '1m', # optional diff --git a/examples/1.9.x/server-ruby/examples/usage/list-gauges.md b/examples/1.9.x/server-ruby/examples/usage/list-gauges.md index 1abacbb2a..a3c54a5c9 100644 --- a/examples/1.9.x/server-ruby/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-ruby/examples/usage/list-gauges.md @@ -11,7 +11,7 @@ client = Client.new usage = Usage.new(client) result = usage.list_gauges( - metric: '', + metrics: [], resource_id: '', # optional team_id: '', # optional interval: '1m', # optional diff --git a/examples/1.9.x/server-rust/examples/functions/list-specifications.md b/examples/1.9.x/server-rust/examples/functions/list-specifications.md index db103ae6f..57245ba6d 100644 --- a/examples/1.9.x/server-rust/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-rust/examples/functions/list-specifications.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box> { let functions = Functions::new(&client); - let result = functions.list_specifications().await?; + let result = functions.list_specifications( + Some("runtimes") // optional + ).await?; let _ = result; diff --git a/examples/1.9.x/server-rust/examples/sites/list-specifications.md b/examples/1.9.x/server-rust/examples/sites/list-specifications.md index 0a217ae93..4736fb7ca 100644 --- a/examples/1.9.x/server-rust/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-rust/examples/sites/list-specifications.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box> { let sites = Sites::new(&client); - let result = sites.list_specifications().await?; + let result = sites.list_specifications( + Some("runtimes") // optional + ).await?; let _ = result; diff --git a/examples/1.9.x/server-rust/examples/usage/list-events.md b/examples/1.9.x/server-rust/examples/usage/list-events.md index 5f527d6d7..4cba57048 100644 --- a/examples/1.9.x/server-rust/examples/usage/list-events.md +++ b/examples/1.9.x/server-rust/examples/usage/list-events.md @@ -12,7 +12,7 @@ async fn main() -> Result<(), Box> { let usage = Usage::new(&client); let result = usage.list_events( - "", + vec![], Some(""), // optional Some(""), // optional Some("1m"), // optional diff --git a/examples/1.9.x/server-rust/examples/usage/list-gauges.md b/examples/1.9.x/server-rust/examples/usage/list-gauges.md index f7e058108..d4204496c 100644 --- a/examples/1.9.x/server-rust/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-rust/examples/usage/list-gauges.md @@ -12,7 +12,7 @@ async fn main() -> Result<(), Box> { let usage = Usage::new(&client); let result = usage.list_gauges( - "", + vec![], Some(""), // optional Some(""), // optional Some("1m"), // optional diff --git a/examples/1.9.x/server-swift/examples/functions/list-specifications.md b/examples/1.9.x/server-swift/examples/functions/list-specifications.md index 086c423a2..f351a57b1 100644 --- a/examples/1.9.x/server-swift/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-swift/examples/functions/list-specifications.md @@ -8,6 +8,8 @@ let client = Client() let functions = Functions(client) -let specificationList = try await functions.listSpecifications() +let specificationList = try await functions.listSpecifications( + type: "runtimes" // optional +) ``` diff --git a/examples/1.9.x/server-swift/examples/sites/list-specifications.md b/examples/1.9.x/server-swift/examples/sites/list-specifications.md index c34357da8..a75edd555 100644 --- a/examples/1.9.x/server-swift/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-swift/examples/sites/list-specifications.md @@ -8,6 +8,8 @@ let client = Client() let sites = Sites(client) -let specificationList = try await sites.listSpecifications() +let specificationList = try await sites.listSpecifications( + type: "runtimes" // optional +) ``` diff --git a/examples/1.9.x/server-swift/examples/usage/list-events.md b/examples/1.9.x/server-swift/examples/usage/list-events.md index 3e7bba127..59cf7b401 100644 --- a/examples/1.9.x/server-swift/examples/usage/list-events.md +++ b/examples/1.9.x/server-swift/examples/usage/list-events.md @@ -9,7 +9,7 @@ let client = Client() let usage = Usage(client) let usageEventList = try await usage.listEvents( - metric: "", + metrics: [], resource: "", // optional resourceId: "", // optional interval: "1m", // optional diff --git a/examples/1.9.x/server-swift/examples/usage/list-gauges.md b/examples/1.9.x/server-swift/examples/usage/list-gauges.md index 66bc5cfc8..b78f7b4a2 100644 --- a/examples/1.9.x/server-swift/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-swift/examples/usage/list-gauges.md @@ -9,7 +9,7 @@ let client = Client() let usage = Usage(client) let usageGaugeList = try await usage.listGauges( - metric: "", + metrics: [], resourceId: "", // optional teamId: "", // optional interval: "1m", // optional diff --git a/specs/1.9.x/open-api3-1.9.x-client.json b/specs/1.9.x/open-api3-1.9.x-client.json index 7dba7b9ac..fe3fbf773 100644 --- a/specs/1.9.x/open-api3-1.9.x-client.json +++ b/specs/1.9.x/open-api3-1.9.x-client.json @@ -7540,7 +7540,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "listTransactions", "group": "transactions", @@ -7559,6 +7559,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-transactions.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, "auth": { "Project": [] } @@ -7605,7 +7609,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createTransaction", "group": "transactions", @@ -7624,6 +7628,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, "auth": { "Project": [] } @@ -7675,7 +7683,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getTransaction", "group": "transactions", @@ -7694,6 +7702,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, "auth": { "Project": [] } @@ -7737,7 +7749,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateTransaction", "group": "transactions", @@ -7756,6 +7768,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, "auth": { "Project": [] } @@ -7815,7 +7831,7 @@ "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteTransaction", "group": "transactions", @@ -7834,6 +7850,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, "auth": { "Project": [] } @@ -7879,7 +7899,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createOperations", "group": "transactions", @@ -7898,6 +7918,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-operations.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, "auth": { "Project": [] } @@ -11654,6 +11678,16 @@ "default": "" }, "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" } ] } @@ -11742,6 +11776,12 @@ "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", "default": "", "x-example": "" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null } } } @@ -12326,6 +12366,12 @@ "default": "", "x-example": "https:\/\/example.com", "format": "url" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null } }, "required": [ @@ -20742,6 +20788,16 @@ "profile" ] }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "x-example": [ + "https:\/\/api.example.com\/" + ] + }, "authorizationDetails": { "type": "string", "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", @@ -20776,6 +20832,7 @@ "userId", "appId", "scopes", + "resources", "authorizationDetails", "prompt", "redirectUri", @@ -20793,6 +20850,9 @@ "email", "profile" ], + "resources": [ + "https:\/\/api.example.com\/" + ], "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", "prompt": "login", "redirectUri": "https:\/\/example.com\/callback", @@ -20817,12 +20877,12 @@ "verification_uri": { "type": "string", "description": "URL where the end user enters the user code.", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/device" + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device" }, "verification_uri_complete": { "type": "string", "description": "Verification URL with the user code prefilled as a query parameter.", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH" }, "expires_in": { "type": "integer", @@ -20848,8 +20908,8 @@ "example": { "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/cloud.appwrite.io\/oauth2\/device", - "verification_uri_complete": "https:\/\/cloud.appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "verification_uri": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device", + "verification_uri_complete": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH", "expires_in": 900, "interval": 5 } diff --git a/specs/1.9.x/open-api3-1.9.x-console.json b/specs/1.9.x/open-api3-1.9.x-console.json index 4ab21a1dc..a0c69a0f2 100644 --- a/specs/1.9.x/open-api3-1.9.x-console.json +++ b/specs/1.9.x/open-api3-1.9.x-console.json @@ -11828,14 +11828,14 @@ ] } }, - "\/compute\/databases\/{databaseId}\/execution": { + "\/compute\/databases\/{databaseId}\/executions": { "post": { "summary": "Execute a SQL statement against a dedicated database.", "operationId": "computeCreateDatabaseExecution", "tags": [ "compute" ], - "description": "Execute SQL through the console-facing Cloud endpoint. Cloud proxies through the edge platform to the per-database SQL API sidecar. Application traffic should bypass cloud entirely and POST directly to the per-database hostname: `https:\/\/db-{project}-{db}.{region}.appwrite.center\/v1\/sql\/execute` with an `X-Appwrite-Key` header \u2014 that path scales to the whole DB fleet without a per-query cloud round-trip. The statement type must be on the database's configured allow-list. Use bound parameters for any user-supplied values \u2014 the API does not interpolate raw strings.", + "description": "Execute SQL through the console-facing Cloud endpoint. Cloud proxies through the edge platform to the per-database SQL API sidecar. Application traffic should bypass cloud entirely and POST directly to the per-database hostname: `https:\/\/db-{project}-{db}.{region}.appwrite.center\/v1\/sql\/executions` with an `X-Appwrite-Key` header \u2014 that path scales to the whole DB fleet without a per-query cloud round-trip. The statement type must be on the database's configured allow-list. Use bound parameters for any user-supplied values \u2014 the API does not interpolate raw strings.", "responses": { "200": { "description": "Execution", @@ -15135,7 +15135,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "listTransactions", "group": "transactions", @@ -15154,6 +15154,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-transactions.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, "auth": { "Project": [] } @@ -15201,7 +15205,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createTransaction", "group": "transactions", @@ -15220,6 +15224,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, "auth": { "Project": [] } @@ -15272,7 +15280,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getTransaction", "group": "transactions", @@ -15291,6 +15299,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, "auth": { "Project": [] } @@ -15335,7 +15347,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateTransaction", "group": "transactions", @@ -15354,6 +15366,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, "auth": { "Project": [] } @@ -15414,7 +15430,7 @@ "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteTransaction", "group": "transactions", @@ -15433,6 +15449,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, "auth": { "Project": [] } @@ -15479,7 +15499,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createOperations", "group": "transactions", @@ -15498,6 +15518,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-operations.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, "auth": { "Project": [] } @@ -18745,7 +18769,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createLongtextAttribute", "group": "attributes", @@ -18763,6 +18787,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-longtext-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLongtextColumn" + }, "auth": { "Project": [] } @@ -18860,7 +18888,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateLongtextAttribute", "group": "attributes", @@ -18878,6 +18906,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-longtext-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLongtextColumn" + }, "auth": { "Project": [] } @@ -18973,7 +19005,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createMediumtextAttribute", "group": "attributes", @@ -18991,6 +19023,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-mediumtext-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createMediumtextColumn" + }, "auth": { "Project": [] } @@ -19088,7 +19124,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateMediumtextAttribute", "group": "attributes", @@ -19106,6 +19142,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-mediumtext-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateMediumtextColumn" + }, "auth": { "Project": [] } @@ -20192,7 +20232,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createTextAttribute", "group": "attributes", @@ -20210,6 +20250,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTextColumn" + }, "auth": { "Project": [] } @@ -20307,7 +20351,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateTextAttribute", "group": "attributes", @@ -20325,6 +20369,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-text-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, "auth": { "Project": [] } @@ -20652,7 +20700,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createVarcharAttribute", "group": "attributes", @@ -20670,6 +20718,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-varchar-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createVarcharColumn" + }, "auth": { "Project": [] } @@ -20774,7 +20826,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateVarcharAttribute", "group": "attributes", @@ -20792,6 +20844,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-varchar-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateVarcharColumn" + }, "auth": { "Project": [] } @@ -31729,6 +31785,19 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds.", + "required": false, + "schema": { + "type": "string", + "x-example": "runtimes", + "default": "runtimes" + }, + "in": "query" + } ] } }, @@ -32825,8 +32894,8 @@ "buildSpecification": { "type": "string", "description": "Build specification for the function deployments.", - "default": {}, - "x-example": null + "x-example": null, + "x-nullable": true }, "runtimeSpecification": { "type": "string", @@ -35476,69 +35545,6 @@ ] } }, - "\/health\/queue\/builds-priority": { - "get": { - "summary": "Get billing aggregation queue", - "operationId": "healthGetQueuePriorityBuilds", - "tags": [ - "health" - ], - "description": "Get the priority builds queue size.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueuePriorityBuilds", - "group": null, - "cookies": false, - "type": "", - "demo": "health\/get-queue-priority-builds.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - }, - "in": "query" - } - ] - } - }, "\/health\/queue\/certificates": { "get": { "summary": "Get certificates queue", @@ -45439,6 +45445,16 @@ "default": "" }, "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" } ] } @@ -45528,6 +45544,12 @@ "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", "default": "", "x-example": "" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null } } } @@ -46115,6 +46137,12 @@ "default": "", "x-example": "https:\/\/example.com", "format": "url" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null } }, "required": [ @@ -62920,6 +62948,19 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds.", + "required": false, + "schema": { + "type": "string", + "x-example": "runtimes", + "default": "runtimes" + }, + "in": "query" + } ] } }, @@ -63691,8 +63732,8 @@ "buildSpecification": { "type": "string", "description": "Build specification for the site deployments.", - "default": {}, - "x-example": null + "x-example": null, + "x-nullable": true }, "runtimeSpecification": { "type": "string", @@ -76776,7 +76817,7 @@ "tags": [ "usage" ], - "description": "Aggregate usage event metrics. `metric` is required.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 one row per dimension combination, no time axis. Useful for \"top 10 paths by bandwidth in the last 7 days\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one row per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each row down by one or more attributes (service, path, status, country, \u2026). `resource` and `resourceId` filter the underlying events. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N by aggregated value. When `startAt` is omitted, the default window adapts to `interval` (or 7d when interval is omitted).", + "description": "Aggregate usage event metrics. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 one point per dimension combination, no time axis. Useful for \"top 10 paths by bandwidth in the last 7 days\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one point per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down by one or more attributes (service, path, status, country, \u2026). Pass multiple metrics to render stacked charts in one round-trip. `resource` and `resourceId` filter the underlying events. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N by aggregated value. When `startAt` is omitted, the default window adapts to `interval` (or 7d when interval is omitted).", "responses": { "200": { "description": "usageEventList", @@ -76818,12 +76859,14 @@ ], "parameters": [ { - "name": "metric", - "description": "Metric name (required). Example: executions, network.requests.", + "name": "metrics", + "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=executions` or `metrics[]=executions&metrics[]=executions.compute` for stacked charts.", "required": true, "schema": { - "type": "string", - "x-example": "" + "type": "array", + "items": { + "type": "string" + } }, "in": "query" }, @@ -76861,7 +76904,7 @@ }, { "name": "dimensions", - "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, country, region, hostname, osName, clientType, clientName, deviceName, teamId, resourceId.", + "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resource, country, region, hostname, osName, clientType, clientName, deviceName, teamId, resourceId.", "required": false, "schema": { "type": "array", @@ -76952,7 +76995,7 @@ "tags": [ "usage" ], - "description": "Aggregate usage gauge snapshots. Gauges are point-in-time values (storage totals, resource counts, \u2026); each group carries the latest snapshot in its interval via `argMax(value, time)`. `metric` is required.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 `argMax(value, time)` per dimension combination over the whole window, no time axis. Useful for \"top 10 resources by current storage\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one snapshot per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each row down further \u2014 only `resourceId` and `teamId` are supported on gauges. `resourceId` and `teamId` parameters filter the underlying rows. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N. When `startAt` is omitted, the default window adapts to interval (or 7d when interval is omitted).", + "description": "Aggregate usage gauge snapshots. Gauges are point-in-time values (storage totals, resource counts, \u2026); each point carries the latest snapshot in its interval via `argMax(value, time)`. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 `argMax(value, time)` per dimension combination over the whole window, no time axis. Useful for \"top 10 resources by current storage\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one snapshot per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down further. Supported on gauges: `resourceId`, `teamId`, `service`, `resource`. `service` and `resource` enable per-service \/ per-resource-type panels (e.g. storage-by-service: group `files.storage`, `deployments.storage`, `builds.storage`, `databases.storage` by `service`). Pass multiple metrics to render stacked charts in one round-trip. `resourceId` and `teamId` parameters filter the underlying rows. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N. When `startAt` is omitted, the default window adapts to interval (or 7d when interval is omitted).", "responses": { "200": { "description": "usageGaugeList", @@ -76994,12 +77037,14 @@ ], "parameters": [ { - "name": "metric", - "description": "Metric name (required). Example: files.storage, deployments.storage.", + "name": "metrics", + "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=files.storage` or `metrics[]=files.storage&metrics[]=deployments.storage` for stacked charts.", "required": true, "schema": { - "type": "string", - "x-example": "" + "type": "array", + "items": { + "type": "string" + } }, "in": "query" }, @@ -77037,7 +77082,7 @@ }, { "name": "dimensions", - "description": "Break-down dimensions. Allowed: resourceId, teamId.", + "description": "Break-down dimensions. Allowed: resourceId, teamId, service, resource.", "required": false, "schema": { "type": "array", @@ -96604,12 +96649,14 @@ "oAuth2ServerEnabled": { "type": "boolean", "description": "OAuth2 server status", - "x-example": false + "x-example": false, + "nullable": true }, "oAuth2ServerAuthorizationUrl": { "type": "string", "description": "OAuth2 server authorization URL", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration" + "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "nullable": true }, "oAuth2ServerScopes": { "type": "array", @@ -96620,7 +96667,8 @@ "x-example": [ "read", "write" - ] + ], + "nullable": true }, "oAuth2ServerAuthorizationDetailsTypes": { "type": "array", @@ -96630,63 +96678,74 @@ }, "x-example": [ "calendar" - ] + ], + "nullable": true }, "oAuth2ServerAccessTokenDuration": { "type": "integer", "description": "OAuth2 server access token duration in seconds for confidential clients", "x-example": 3600, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerRefreshTokenDuration": { "type": "integer", "description": "OAuth2 server refresh token duration in seconds for confidential clients", "x-example": 86400, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerPublicAccessTokenDuration": { "type": "integer", "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", "x-example": 3600, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerPublicRefreshTokenDuration": { "type": "integer", "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", "x-example": 2592000, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerConfidentialPkce": { "type": "boolean", "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", - "x-example": false + "x-example": false, + "nullable": true }, "oAuth2ServerVerificationUrl": { "type": "string", "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", - "x-example": "https:\/\/cloud.appwrite.io\/device" + "x-example": "https:\/\/cloud.appwrite.io\/device", + "nullable": true }, "oAuth2ServerUserCodeLength": { "type": "integer", "description": "Number of characters in the device flow user code, excluding the formatting separator.", "x-example": 8, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerUserCodeFormat": { "type": "string", "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", - "x-example": "alphanumeric" + "x-example": "alphanumeric", + "nullable": true }, "oAuth2ServerDeviceCodeDuration": { "type": "integer", "description": "Lifetime in seconds of device flow device codes and user codes.", "x-example": 600, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerDiscoveryUrl": { "type": "string", "description": "OAuth2 server discovery URL", - "x-example": "https:\/\/auth.example.com\/.well-known\/openid-configuration" + "x-example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", + "nullable": true } }, "required": [ @@ -96715,21 +96774,7 @@ "services", "protocols", "blocks", - "consoleAccessedAt", - "oAuth2ServerEnabled", - "oAuth2ServerAuthorizationUrl", - "oAuth2ServerScopes", - "oAuth2ServerAuthorizationDetailsTypes", - "oAuth2ServerAccessTokenDuration", - "oAuth2ServerRefreshTokenDuration", - "oAuth2ServerPublicAccessTokenDuration", - "oAuth2ServerPublicRefreshTokenDuration", - "oAuth2ServerConfidentialPkce", - "oAuth2ServerVerificationUrl", - "oAuth2ServerUserCodeLength", - "oAuth2ServerUserCodeFormat", - "oAuth2ServerDeviceCodeDuration", - "oAuth2ServerDiscoveryUrl" + "consoleAccessedAt" ], "example": { "$id": "5e5ea5c16897e", @@ -110668,18 +110713,18 @@ "credits": null } }, - "usageGroup": { - "description": "usageGroup", + "usageDataPoint": { + "description": "usageDataPoint", "type": "object", "properties": { "time": { "type": "string", - "description": "Group start timestamp (ISO 8601).", + "description": "Bucket start timestamp (ISO 8601). When `interval` is omitted this is the request end time, marking the aggregate as-of moment.", "x-example": "2026-04-09T12:00:00.000+00:00" }, "value": { "type": "integer", - "description": "Aggregated value for the group.", + "description": "Aggregated value for the bucket.", "x-example": 5000, "format": "int32" }, @@ -110760,6 +110805,12 @@ "description": "External resource ID when broken down by `resourceId`.", "x-example": "abc123", "nullable": true + }, + "resource": { + "type": "string", + "description": "Resource type when broken down by `resource` (gauges only).", + "x-example": "file", + "nullable": true } }, "required": [ @@ -110781,75 +110832,89 @@ "clientName": "Chrome", "deviceName": "smartphone", "teamId": "team_abc", - "resourceId": "abc123" + "resourceId": "abc123", + "resource": "file" } }, "usageEventList": { "description": "usageEventList", "type": "object", "properties": { - "metric": { - "type": "string", - "description": "Metric key the groups describe.", - "x-example": "executions" - }, "interval": { "type": "string", - "description": "Time interval size (1h or 1d).", + "description": "Time interval size (1h or 1d). Empty when the request omits `interval` \u2014 points then carry the request end time as their as-of marker.", "x-example": "1d" }, - "groups": { + "metrics": { "type": "array", - "description": "Aggregated groups ordered by time ascending.", + "description": "One entry per requested metric, each carrying its own points[] time series (sums per bucket \/ dimension over time).", "items": { - "$ref": "#\/components\/schemas\/usageGroup" + "$ref": "#\/components\/schemas\/usageMetric" }, "x-example": "" } }, "required": [ - "metric", "interval", - "groups" + "metrics" ], "example": { - "metric": "executions", "interval": "1d", - "groups": "" + "metrics": "" } }, "usageGaugeList": { "description": "usageGaugeList", "type": "object", "properties": { - "metric": { - "type": "string", - "description": "Metric key the groups describe.", - "x-example": "files.storage" - }, "interval": { "type": "string", - "description": "Time interval size (1h or 1d).", + "description": "Time interval size (1h or 1d). Empty when the request omits `interval` \u2014 points then carry the request end time as their as-of marker.", "x-example": "1d" }, - "groups": { + "metrics": { "type": "array", - "description": "Aggregated groups ordered by time ascending. Each group carries the latest snapshot in its interval (argMax over time).", + "description": "One entry per requested metric, each carrying its own points[] time series (latest-snapshot per bucket \/ dimension via argMax over time).", "items": { - "$ref": "#\/components\/schemas\/usageGroup" + "$ref": "#\/components\/schemas\/usageMetric" }, "x-example": "" } }, "required": [ - "metric", "interval", - "groups" + "metrics" ], "example": { - "metric": "files.storage", "interval": "1d", - "groups": "" + "metrics": "" + } + }, + "usageMetric": { + "description": "usageMetric", + "type": "object", + "properties": { + "metric": { + "type": "string", + "description": "Metric key this series describes.", + "x-example": "files.storage" + }, + "points": { + "type": "array", + "description": "Data points for this metric, ordered by time ascending. With `interval`, each entry is one bucket; without, each entry is one row of the dimensional or aggregate breakdown.", + "items": { + "$ref": "#\/components\/schemas\/usageDataPoint" + }, + "x-example": "" + } + }, + "required": [ + "metric", + "points" + ], + "example": { + "metric": "files.storage", + "points": "" } }, "usageOrganization": { @@ -111842,6 +111907,16 @@ "profile" ] }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "x-example": [ + "https:\/\/api.example.com\/" + ] + }, "authorizationDetails": { "type": "string", "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", @@ -111876,6 +111951,7 @@ "userId", "appId", "scopes", + "resources", "authorizationDetails", "prompt", "redirectUri", @@ -111893,6 +111969,9 @@ "email", "profile" ], + "resources": [ + "https:\/\/api.example.com\/" + ], "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", "prompt": "login", "redirectUri": "https:\/\/example.com\/callback", @@ -111917,12 +111996,12 @@ "verification_uri": { "type": "string", "description": "URL where the end user enters the user code.", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/device" + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device" }, "verification_uri_complete": { "type": "string", "description": "Verification URL with the user code prefilled as a query parameter.", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH" }, "expires_in": { "type": "integer", @@ -111948,8 +112027,8 @@ "example": { "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/cloud.appwrite.io\/oauth2\/device", - "verification_uri_complete": "https:\/\/cloud.appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "verification_uri": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device", + "verification_uri_complete": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH", "expires_in": 900, "interval": 5 } diff --git a/specs/1.9.x/open-api3-1.9.x-server.json b/specs/1.9.x/open-api3-1.9.x-server.json index 161fbca3c..afa3fdde5 100644 --- a/specs/1.9.x/open-api3-1.9.x-server.json +++ b/specs/1.9.x/open-api3-1.9.x-server.json @@ -8557,7 +8557,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "listTransactions", "group": "transactions", @@ -8576,6 +8576,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-transactions.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, "auth": { "Project": [], "Key": [] @@ -8624,7 +8628,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createTransaction", "group": "transactions", @@ -8643,6 +8647,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, "auth": { "Project": [], "Key": [] @@ -8696,7 +8704,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getTransaction", "group": "transactions", @@ -8715,6 +8723,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, "auth": { "Project": [], "Key": [] @@ -8760,7 +8772,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateTransaction", "group": "transactions", @@ -8779,6 +8791,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, "auth": { "Project": [], "Key": [] @@ -8840,7 +8856,7 @@ "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteTransaction", "group": "transactions", @@ -8859,6 +8875,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-transaction.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, "auth": { "Project": [], "Key": [] @@ -8906,7 +8926,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createOperations", "group": "transactions", @@ -8925,6 +8945,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-operations.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, "auth": { "Project": [], "Key": [] @@ -12100,7 +12124,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createLongtextAttribute", "group": "attributes", @@ -12118,6 +12142,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-longtext-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLongtextColumn" + }, "auth": { "Project": [], "Key": [] @@ -12216,7 +12244,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateLongtextAttribute", "group": "attributes", @@ -12234,6 +12262,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-longtext-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLongtextColumn" + }, "auth": { "Project": [], "Key": [] @@ -12330,7 +12362,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createMediumtextAttribute", "group": "attributes", @@ -12348,6 +12380,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-mediumtext-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createMediumtextColumn" + }, "auth": { "Project": [], "Key": [] @@ -12446,7 +12482,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateMediumtextAttribute", "group": "attributes", @@ -12464,6 +12500,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-mediumtext-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateMediumtextColumn" + }, "auth": { "Project": [], "Key": [] @@ -13559,7 +13599,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createTextAttribute", "group": "attributes", @@ -13577,6 +13617,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTextColumn" + }, "auth": { "Project": [], "Key": [] @@ -13675,7 +13719,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateTextAttribute", "group": "attributes", @@ -13693,6 +13737,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-text-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, "auth": { "Project": [], "Key": [] @@ -14023,7 +14071,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createVarcharAttribute", "group": "attributes", @@ -14041,6 +14089,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-varchar-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createVarcharColumn" + }, "auth": { "Project": [], "Key": [] @@ -14146,7 +14198,7 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateVarcharAttribute", "group": "attributes", @@ -14164,6 +14216,10 @@ "packaging": false, "public": true, "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-varchar-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateVarcharColumn" + }, "auth": { "Project": [], "Key": [] @@ -20121,6 +20177,19 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds.", + "required": false, + "schema": { + "type": "string", + "x-example": "runtimes", + "default": "runtimes" + }, + "in": "query" + } ] } }, @@ -20767,8 +20836,8 @@ "buildSpecification": { "type": "string", "description": "Build specification for the function deployments.", - "default": {}, - "x-example": null + "x-example": null, + "x-nullable": true }, "runtimeSpecification": { "type": "string", @@ -23371,70 +23440,6 @@ ] } }, - "\/health\/queue\/builds-priority": { - "get": { - "summary": "Get billing aggregation queue", - "operationId": "healthGetQueuePriorityBuilds", - "tags": [ - "health" - ], - "description": "Get the priority builds queue size.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueuePriorityBuilds", - "group": null, - "cookies": false, - "type": "", - "demo": "health\/get-queue-priority-builds.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - }, - "in": "query" - } - ] - } - }, "\/health\/queue\/certificates": { "get": { "summary": "Get certificates queue", @@ -31110,6 +31115,16 @@ "default": "" }, "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" } ] } @@ -31200,6 +31215,12 @@ "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", "default": "", "x-example": "" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null } } } @@ -31668,6 +31689,12 @@ "default": "", "x-example": "https:\/\/example.com", "format": "url" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null } }, "required": [ @@ -44242,6 +44269,19 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds.", + "required": false, + "schema": { + "type": "string", + "x-example": "runtimes", + "default": "runtimes" + }, + "in": "query" + } ] } }, @@ -44728,8 +44768,8 @@ "buildSpecification": { "type": "string", "description": "Build specification for the site deployments.", - "default": {}, - "x-example": null + "x-example": null, + "x-nullable": true }, "runtimeSpecification": { "type": "string", @@ -57132,7 +57172,7 @@ "tags": [ "usage" ], - "description": "Aggregate usage event metrics. `metric` is required.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 one row per dimension combination, no time axis. Useful for \"top 10 paths by bandwidth in the last 7 days\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one row per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each row down by one or more attributes (service, path, status, country, \u2026). `resource` and `resourceId` filter the underlying events. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N by aggregated value. When `startAt` is omitted, the default window adapts to `interval` (or 7d when interval is omitted).", + "description": "Aggregate usage event metrics. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 one point per dimension combination, no time axis. Useful for \"top 10 paths by bandwidth in the last 7 days\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one point per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down by one or more attributes (service, path, status, country, \u2026). Pass multiple metrics to render stacked charts in one round-trip. `resource` and `resourceId` filter the underlying events. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N by aggregated value. When `startAt` is omitted, the default window adapts to `interval` (or 7d when interval is omitted).", "responses": { "200": { "description": "usageEventList", @@ -57175,12 +57215,14 @@ ], "parameters": [ { - "name": "metric", - "description": "Metric name (required). Example: executions, network.requests.", + "name": "metrics", + "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=executions` or `metrics[]=executions&metrics[]=executions.compute` for stacked charts.", "required": true, "schema": { - "type": "string", - "x-example": "" + "type": "array", + "items": { + "type": "string" + } }, "in": "query" }, @@ -57218,7 +57260,7 @@ }, { "name": "dimensions", - "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, country, region, hostname, osName, clientType, clientName, deviceName, teamId, resourceId.", + "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resource, country, region, hostname, osName, clientType, clientName, deviceName, teamId, resourceId.", "required": false, "schema": { "type": "array", @@ -57309,7 +57351,7 @@ "tags": [ "usage" ], - "description": "Aggregate usage gauge snapshots. Gauges are point-in-time values (storage totals, resource counts, \u2026); each group carries the latest snapshot in its interval via `argMax(value, time)`. `metric` is required.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 `argMax(value, time)` per dimension combination over the whole window, no time axis. Useful for \"top 10 resources by current storage\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one snapshot per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each row down further \u2014 only `resourceId` and `teamId` are supported on gauges. `resourceId` and `teamId` parameters filter the underlying rows. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N. When `startAt` is omitted, the default window adapts to interval (or 7d when interval is omitted).", + "description": "Aggregate usage gauge snapshots. Gauges are point-in-time values (storage totals, resource counts, \u2026); each point carries the latest snapshot in its interval via `argMax(value, time)`. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 `argMax(value, time)` per dimension combination over the whole window, no time axis. Useful for \"top 10 resources by current storage\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one snapshot per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down further. Supported on gauges: `resourceId`, `teamId`, `service`, `resource`. `service` and `resource` enable per-service \/ per-resource-type panels (e.g. storage-by-service: group `files.storage`, `deployments.storage`, `builds.storage`, `databases.storage` by `service`). Pass multiple metrics to render stacked charts in one round-trip. `resourceId` and `teamId` parameters filter the underlying rows. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N. When `startAt` is omitted, the default window adapts to interval (or 7d when interval is omitted).", "responses": { "200": { "description": "usageGaugeList", @@ -57352,12 +57394,14 @@ ], "parameters": [ { - "name": "metric", - "description": "Metric name (required). Example: files.storage, deployments.storage.", + "name": "metrics", + "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=files.storage` or `metrics[]=files.storage&metrics[]=deployments.storage` for stacked charts.", "required": true, "schema": { - "type": "string", - "x-example": "" + "type": "array", + "items": { + "type": "string" + } }, "in": "query" }, @@ -57395,7 +57439,7 @@ }, { "name": "dimensions", - "description": "Break-down dimensions. Allowed: resourceId, teamId.", + "description": "Break-down dimensions. Allowed: resourceId, teamId, service, resource.", "required": false, "schema": { "type": "array", @@ -74264,12 +74308,14 @@ "oAuth2ServerEnabled": { "type": "boolean", "description": "OAuth2 server status", - "x-example": false + "x-example": false, + "nullable": true }, "oAuth2ServerAuthorizationUrl": { "type": "string", "description": "OAuth2 server authorization URL", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration" + "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "nullable": true }, "oAuth2ServerScopes": { "type": "array", @@ -74280,7 +74326,8 @@ "x-example": [ "read", "write" - ] + ], + "nullable": true }, "oAuth2ServerAuthorizationDetailsTypes": { "type": "array", @@ -74290,63 +74337,74 @@ }, "x-example": [ "calendar" - ] + ], + "nullable": true }, "oAuth2ServerAccessTokenDuration": { "type": "integer", "description": "OAuth2 server access token duration in seconds for confidential clients", "x-example": 3600, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerRefreshTokenDuration": { "type": "integer", "description": "OAuth2 server refresh token duration in seconds for confidential clients", "x-example": 86400, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerPublicAccessTokenDuration": { "type": "integer", "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", "x-example": 3600, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerPublicRefreshTokenDuration": { "type": "integer", "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", "x-example": 2592000, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerConfidentialPkce": { "type": "boolean", "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", - "x-example": false + "x-example": false, + "nullable": true }, "oAuth2ServerVerificationUrl": { "type": "string", "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", - "x-example": "https:\/\/cloud.appwrite.io\/device" + "x-example": "https:\/\/cloud.appwrite.io\/device", + "nullable": true }, "oAuth2ServerUserCodeLength": { "type": "integer", "description": "Number of characters in the device flow user code, excluding the formatting separator.", "x-example": 8, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerUserCodeFormat": { "type": "string", "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", - "x-example": "alphanumeric" + "x-example": "alphanumeric", + "nullable": true }, "oAuth2ServerDeviceCodeDuration": { "type": "integer", "description": "Lifetime in seconds of device flow device codes and user codes.", "x-example": 600, - "format": "int32" + "format": "int32", + "nullable": true }, "oAuth2ServerDiscoveryUrl": { "type": "string", "description": "OAuth2 server discovery URL", - "x-example": "https:\/\/auth.example.com\/.well-known\/openid-configuration" + "x-example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", + "nullable": true } }, "required": [ @@ -74375,21 +74433,7 @@ "services", "protocols", "blocks", - "consoleAccessedAt", - "oAuth2ServerEnabled", - "oAuth2ServerAuthorizationUrl", - "oAuth2ServerScopes", - "oAuth2ServerAuthorizationDetailsTypes", - "oAuth2ServerAccessTokenDuration", - "oAuth2ServerRefreshTokenDuration", - "oAuth2ServerPublicAccessTokenDuration", - "oAuth2ServerPublicRefreshTokenDuration", - "oAuth2ServerConfidentialPkce", - "oAuth2ServerVerificationUrl", - "oAuth2ServerUserCodeLength", - "oAuth2ServerUserCodeFormat", - "oAuth2ServerDeviceCodeDuration", - "oAuth2ServerDiscoveryUrl" + "consoleAccessedAt" ], "example": { "$id": "5e5ea5c16897e", @@ -79725,18 +79769,18 @@ "options": "{databases.database[{oldId, newId, newName}]}" } }, - "usageGroup": { - "description": "usageGroup", + "usageDataPoint": { + "description": "usageDataPoint", "type": "object", "properties": { "time": { "type": "string", - "description": "Group start timestamp (ISO 8601).", + "description": "Bucket start timestamp (ISO 8601). When `interval` is omitted this is the request end time, marking the aggregate as-of moment.", "x-example": "2026-04-09T12:00:00.000+00:00" }, "value": { "type": "integer", - "description": "Aggregated value for the group.", + "description": "Aggregated value for the bucket.", "x-example": 5000, "format": "int32" }, @@ -79817,6 +79861,12 @@ "description": "External resource ID when broken down by `resourceId`.", "x-example": "abc123", "nullable": true + }, + "resource": { + "type": "string", + "description": "Resource type when broken down by `resource` (gauges only).", + "x-example": "file", + "nullable": true } }, "required": [ @@ -79838,75 +79888,89 @@ "clientName": "Chrome", "deviceName": "smartphone", "teamId": "team_abc", - "resourceId": "abc123" + "resourceId": "abc123", + "resource": "file" } }, "usageEventList": { "description": "usageEventList", "type": "object", "properties": { - "metric": { - "type": "string", - "description": "Metric key the groups describe.", - "x-example": "executions" - }, "interval": { "type": "string", - "description": "Time interval size (1h or 1d).", + "description": "Time interval size (1h or 1d). Empty when the request omits `interval` \u2014 points then carry the request end time as their as-of marker.", "x-example": "1d" }, - "groups": { + "metrics": { "type": "array", - "description": "Aggregated groups ordered by time ascending.", + "description": "One entry per requested metric, each carrying its own points[] time series (sums per bucket \/ dimension over time).", "items": { - "$ref": "#\/components\/schemas\/usageGroup" + "$ref": "#\/components\/schemas\/usageMetric" }, "x-example": "" } }, "required": [ - "metric", "interval", - "groups" + "metrics" ], "example": { - "metric": "executions", "interval": "1d", - "groups": "" + "metrics": "" } }, "usageGaugeList": { "description": "usageGaugeList", "type": "object", "properties": { - "metric": { - "type": "string", - "description": "Metric key the groups describe.", - "x-example": "files.storage" - }, "interval": { "type": "string", - "description": "Time interval size (1h or 1d).", + "description": "Time interval size (1h or 1d). Empty when the request omits `interval` \u2014 points then carry the request end time as their as-of marker.", "x-example": "1d" }, - "groups": { + "metrics": { "type": "array", - "description": "Aggregated groups ordered by time ascending. Each group carries the latest snapshot in its interval (argMax over time).", + "description": "One entry per requested metric, each carrying its own points[] time series (latest-snapshot per bucket \/ dimension via argMax over time).", "items": { - "$ref": "#\/components\/schemas\/usageGroup" + "$ref": "#\/components\/schemas\/usageMetric" }, "x-example": "" } }, "required": [ - "metric", "interval", - "groups" + "metrics" ], "example": { - "metric": "files.storage", "interval": "1d", - "groups": "" + "metrics": "" + } + }, + "usageMetric": { + "description": "usageMetric", + "type": "object", + "properties": { + "metric": { + "type": "string", + "description": "Metric key this series describes.", + "x-example": "files.storage" + }, + "points": { + "type": "array", + "description": "Data points for this metric, ordered by time ascending. With `interval`, each entry is one bucket; without, each entry is one row of the dimensional or aggregate breakdown.", + "items": { + "$ref": "#\/components\/schemas\/usageDataPoint" + }, + "x-example": "" + } + }, + "required": [ + "metric", + "points" + ], + "example": { + "metric": "files.storage", + "points": "" } }, "app": { @@ -80365,6 +80429,16 @@ "profile" ] }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "x-example": [ + "https:\/\/api.example.com\/" + ] + }, "authorizationDetails": { "type": "string", "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", @@ -80399,6 +80473,7 @@ "userId", "appId", "scopes", + "resources", "authorizationDetails", "prompt", "redirectUri", @@ -80416,6 +80491,9 @@ "email", "profile" ], + "resources": [ + "https:\/\/api.example.com\/" + ], "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", "prompt": "login", "redirectUri": "https:\/\/example.com\/callback", @@ -80440,12 +80518,12 @@ "verification_uri": { "type": "string", "description": "URL where the end user enters the user code.", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/device" + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device" }, "verification_uri_complete": { "type": "string", "description": "Verification URL with the user code prefilled as a query parameter.", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH" }, "expires_in": { "type": "integer", @@ -80471,8 +80549,8 @@ "example": { "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/cloud.appwrite.io\/oauth2\/device", - "verification_uri_complete": "https:\/\/cloud.appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "verification_uri": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device", + "verification_uri_complete": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH", "expires_in": 900, "interval": 5 }