@portpowered/reference-data 0.4.5 → 0.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/generated/capabilities.json +135 -4
- package/generated/guides.json +2 -2
- package/generated/openapi.json +225 -14
- package/generated/public/docs/for-ai/api-catalog.md +123 -0
- package/generated/public/docs/for-ai/capability-interfaces/brightness/1.0.md +1 -0
- package/generated/public/docs/for-ai/capability-interfaces/media-player/1.0.md +2 -1
- package/generated/public/docs/for-ai/guides/lighting.md +18 -2
- package/generated/public/docs/for-ai/guides/using-the-api.md +19 -1
- package/generated/public/docs/for-ai/index.md +1 -0
- package/generated/public/docs/for-ai/operations/endpointQuery.md +52 -7
- package/generated/public/docs/for-ai/schemas/b-1.md +1 -0
- package/generated/public/docs/for-ai/schemas/m-1.md +2 -2
- package/generated/public/docs/for-ai/schemas/m-2.md +2 -0
- package/generated/public/docs/for-ai/schemas.md +3 -3
- package/generated/public/docs/references/authorization.json +6 -1
- package/generated/public/docs/references/authorization.yaml +3 -0
- package/generated/public/docs/references/capability-interfaces/brightness/1.0/messages/adjust-brightness.yaml +12 -0
- package/generated/public/docs/references/capability-interfaces/brightness/1.0.yaml +18 -0
- package/generated/public/docs/references/capability-interfaces/brightness.yaml +18 -0
- package/generated/public/docs/references/capability-interfaces/keypad-input/1.0/configuration.yaml +1 -0
- package/generated/public/docs/references/capability-interfaces/keypad-input/1.0/messages/send-key.yaml +1 -0
- package/generated/public/docs/references/capability-interfaces/keypad-input/1.0.yaml +2 -0
- package/generated/public/docs/references/capability-interfaces/keypad-input.yaml +2 -0
- package/generated/public/docs/references/capability-interfaces/media-player/1.0/configuration.yaml +40 -0
- package/generated/public/docs/references/capability-interfaces/media-player/1.0/messages/fast-forward.yaml +5 -0
- package/generated/public/docs/references/capability-interfaces/media-player/1.0/messages/search-and-play.yaml +39 -1
- package/generated/public/docs/references/capability-interfaces/media-player/1.0.yaml +89 -2
- package/generated/public/docs/references/capability-interfaces/media-player.yaml +89 -2
- package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0/configuration.yaml +14 -0
- package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0/messages/speak.yaml +7 -0
- package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0.yaml +22 -1
- package/generated/public/docs/references/capability-interfaces/speech-synthesizer.yaml +22 -1
- package/generated/public/docs/references/manifest.json +253 -77
- package/generated/public/docs/references/openapi.yaml +215 -9
- package/generated/public/docs/references/schemas/BrightnessInterfaceAdjustBrightnessMessage.json +21 -0
- package/generated/public/docs/references/schemas/EndpointQueryRequest.json +32 -4
- package/generated/public/docs/references/schemas/KeypadInputInterfaceConfiguration.json +1 -0
- package/generated/public/docs/references/schemas/KeypadInputInterfaceSendKeyMessage.json +1 -0
- package/generated/public/docs/references/schemas/MediaPlayerInterfaceConfiguration.json +24 -0
- package/generated/public/docs/references/schemas/MediaPlayerInterfaceFastForwardMessage.json +11 -0
- package/generated/public/docs/references/schemas/MediaPlayerInterfaceSearchAndPlayMessage.json +23 -1
- package/generated/public/docs/references/schemas/MediaProvider.json +37 -0
- package/generated/public/docs/references/schemas/SpeechInput.json +7 -1
- package/generated/public/docs/references/schemas/SpeechSynthesizerInterfaceConfiguration.json +13 -0
- package/generated/public/docs/references/schemas/index.json +18 -0
- package/generated/resources/brightness/message-adjust-brightness.json +15 -0
- package/generated/resources/keypad-input/configuration.json +1 -0
- package/generated/resources/keypad-input/message-send-key.json +1 -0
- package/generated/resources/media-player/configuration.json +41 -0
- package/generated/resources/media-player/message-fast-forward.json +5 -0
- package/generated/resources/media-player/message-search-and-play.json +36 -1
- package/generated/resources/speech-synthesizer/configuration.json +18 -1
- package/generated/resources/speech-synthesizer/message-speak.json +7 -1
- package/package.json +1 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Port OS API catalog: compact reference
|
|
2
|
+
|
|
3
|
+
For a new connection, read [authentication and DCR/CIMD](/docs/for-ai/guides/authentication-and-dcr.md), then [the REST quickstart](/docs/for-ai/guides/quickstart.md). Registration grants no device access. Discover the issuer and endpoints; choose REST or MCP before consent, use PKCE, validate the callback, then exchange its code. REST uses the issuer as its OAuth resource; MCP uses its /mcp resource.
|
|
4
|
+
|
|
5
|
+
Operation scopes and resource permissions both apply. [Authorization rules](/docs/for-ai/guides/authorization-rules.md) explain consent, sharing, evaluation and denial. Bearer-session alternatives describe signed-in user sessions; they do not bypass delegated-token scopes.
|
|
6
|
+
|
|
7
|
+
This index lists public operations, parameter names and top-level JSON keys. Required, conditional and nested fields remain in each linked operation/schema contract. Read only the contract needed for your next request. [Capability index](/docs/for-ai/capability-interfaces.md).
|
|
8
|
+
|
|
9
|
+
To request the complete rendered catalog, fetch `/api/?full=1` with an HTML-compatible Accept header. [Full OpenAPI YAML](/docs/references/openapi.yaml) is available for comprehensive lookup and SDK generation.
|
|
10
|
+
|
|
11
|
+
| Operation contract | OAuth scopes / conditional scopes | Parameters | Top-level JSON body keys |
|
|
12
|
+
| --- | --- | --- | --- |
|
|
13
|
+
| [GET /.well-known/jwks.json](/docs/for-ai/operations/getJWKS.md) | Public | — | — |
|
|
14
|
+
| [GET /.well-known/oauth-authorization-server](/docs/for-ai/operations/getOAuthAuthorizationServerMetadata.md) | Public | — | — |
|
|
15
|
+
| [GET /.well-known/oauth-protected-resource](/docs/for-ai/operations/getOAuthProtectedResourceMetadata.md) | Public | — | — |
|
|
16
|
+
| [GET /.well-known/oauth-protected-resource/mcp](/docs/for-ai/operations/getMCPOAuthProtectedResourceMetadata.md) | Public | — | — |
|
|
17
|
+
| [GET /.well-known/openid-configuration](/docs/for-ai/operations/getOpenIDConfiguration.md) | Public | — | — |
|
|
18
|
+
| [DELETE /{namespace}/{principalType}/{principalId}](/docs/for-ai/operations/deletePrincipal.md) | OAuth (no scope) | path:namespace (required), path:principalType (required), path:principalId (required) | — |
|
|
19
|
+
| [DELETE /{namespace}/{principalType}/{principalId}/access-control-rules/{ruleId}](/docs/for-ai/operations/deleteAccessControlRule.md) | OAuth (no scope) | path:namespace (required), path:principalType (required), path:principalId (required), path:ruleId (required) | — |
|
|
20
|
+
| [GET /{namespace}/{principalType}/{principalId}/endpoint-groups/{groupId}](/docs/for-ai/operations/getEndpointGroup.md) | group:read | path:namespace (required), path:principalType (required), path:principalId (required), path:groupId (required), query:expand, query:forceDeviceAttributeQuery | — |
|
|
21
|
+
| [DELETE /{namespace}/{principalType}/{principalId}/endpoint-groups/{groupId}](/docs/for-ai/operations/deleteEndpointGroup.md) | group:manage | path:namespace (required), path:principalType (required), path:principalId (required), path:groupId (required), header:If-Match (required) | — |
|
|
22
|
+
| [POST /{namespace}/{principalType}/{principalId}/endpoint-groups/{groupId}/add-members](/docs/for-ai/operations/addEndpointGroupMembers.md) | group:manage | path:namespace (required), path:principalType (required), path:principalId (required), path:groupId (required), header:If-Match (required) | memberEndpointIds |
|
|
23
|
+
| [POST /{namespace}/{principalType}/{principalId}/endpoint-groups/{groupId}/remove-members](/docs/for-ai/operations/removeEndpointGroupMembers.md) | group:manage | path:namespace (required), path:principalType (required), path:principalId (required), path:groupId (required), header:If-Match (required) | memberEndpointIds |
|
|
24
|
+
| [POST /{namespace}/{principalType}/{principalId}/endpoint-groups/{groupId}/set-name](/docs/for-ai/operations/setEndpointGroupName.md) | group:manage | path:namespace (required), path:principalType (required), path:principalId (required), path:groupId (required), header:If-Match (required) | name |
|
|
25
|
+
| [DELETE /{namespace}/{principalType}/{principalId}/flow-runs/{runId}](/docs/for-ai/operations/deleteFlowRun.md) | See session/security contract | path:namespace (required), path:principalType (required), path:principalId (required), path:runId (required) | — |
|
|
26
|
+
| [GET /{namespace}/{principalType}/{principalId}/flows/{flowId}/runs](/docs/for-ai/operations/queryFlowRuns.md) | See session/security contract | path:namespace (required), path:principalType (required), path:principalId (required), path:flowId (required), query:pageToken, query:maxResults, query:expand, query:nextToken | — |
|
|
27
|
+
| [POST /{namespace}/{principalType}/{principalId}/flows/{flowId}/runs](/docs/for-ai/operations/createFlowRun.md) | See session/security contract | path:namespace (required), path:principalType (required), path:principalId (required), path:flowId (required) | flowRun |
|
|
28
|
+
| [POST /{namespace}/{principalType}/{principalId}/flows/{flowId}/runs/{runId}/messages](/docs/for-ai/operations/upsertFlowRunMessage.md) | See session/security contract | path:namespace (required), path:principalType (required), path:principalId (required), path:flowId (required), path:runId (required) | message, target |
|
|
29
|
+
| [POST /{namespace}/{principalType}/{principalId}/flows/{flowId}/runs/{runId}/set-status](/docs/for-ai/operations/setFlowRunStatus.md) | See session/security contract | path:namespace (required), path:principalType (required), path:principalId (required), path:flowId (required), path:runId (required) | status |
|
|
30
|
+
| [DELETE /{namespace}/{principalType}/{principalId}/group-routes/{groupId}](/docs/for-ai/operations/deleteGroupRoute.md) | group:manage | path:namespace (required), path:principalType (required), path:principalId (required), path:groupId (required) | — |
|
|
31
|
+
| [GET /{namespace}/{principalType}/{principalId}/subscriptions/{subscriptionId}](/docs/for-ai/operations/getSubscription.md) | subscription:read | path:namespace (required), path:principalType (required), path:principalId (required), path:subscriptionId (required), query:expand | — |
|
|
32
|
+
| [PATCH /{namespace}/{principalType}/{principalId}/subscriptions/{subscriptionId}](/docs/for-ai/operations/patchSubscription.md) | subscription:write | path:namespace (required), path:principalType (required), path:principalId (required), path:subscriptionId (required) | name |
|
|
33
|
+
| [DELETE /{namespace}/{principalType}/{principalId}/subscriptions/{subscriptionId}](/docs/for-ai/operations/deleteSubscription.md) | subscription:write | path:namespace (required), path:principalType (required), path:principalId (required), path:subscriptionId (required) | — |
|
|
34
|
+
| [DELETE /{namespace}/{principalType}/{principalId}/tokens/{tokenId}](/docs/for-ai/operations/invalidateToken.md) | OAuth (no scope) | path:tokenId (required), path:namespace (required), path:principalType (required), path:principalId (required) | — |
|
|
35
|
+
| [GET /{namespace}/{principalType}/{principalId}/views/{viewId}](/docs/for-ai/operations/getView.md) | OAuth (no scope) | path:namespace (required), path:principalType (required), path:principalId (required), path:viewId (required), query:expand | — |
|
|
36
|
+
| [PUT /{namespace}/{principalType}/{principalId}/views/{viewId}](/docs/for-ai/operations/updateView.md) | OAuth (no scope) | path:namespace (required), path:principalType (required), path:principalId (required), path:viewId (required) | positions, schemaVersion, title, widgets |
|
|
37
|
+
| [DELETE /{namespace}/{principalType}/{principalId}/views/{viewId}](/docs/for-ai/operations/deleteView.md) | OAuth (no scope) | path:namespace (required), path:principalType (required), path:principalId (required), path:viewId (required) | — |
|
|
38
|
+
| [DELETE /{principalType}/{principalId}/flows/{flowId}](/docs/for-ai/operations/deleteFlow.md) | See session/security contract | path:principalType (required), path:principalId (required), path:flowId (required) | — |
|
|
39
|
+
| [GET /access-control-rules](/docs/for-ai/operations/getAccessControlRules.md) | OAuth (no scope) | query:owner (required), query:nextToken, query:maxResults, query:expand | — |
|
|
40
|
+
| [POST /access-control-rules](/docs/for-ai/operations/upsertAccessControlRule.md) | OAuth (no scope) | — | effect, id, identity, operation, resource |
|
|
41
|
+
| [POST /access-control-rules/evaluate](/docs/for-ai/operations/evaluateAccessControlRule.md) | OAuth (no scope) | — | entities, operation, requesterContext, resourceContext |
|
|
42
|
+
| [GET /auth-links](/docs/for-ai/operations/enumerateAuthLinks.md) | OAuth (no scope) | query:expand, query:nextToken, query:maxResults | — |
|
|
43
|
+
| [POST /auth-links](/docs/for-ai/operations/upsertAuthLink.md) | OAuth (no scope) | — | authLink |
|
|
44
|
+
| [DELETE /auth-links](/docs/for-ai/operations/deleteAuthLink.md) | OAuth (no scope) | — | id |
|
|
45
|
+
| [POST /auth-links/establish](/docs/for-ai/operations/establishAuthLink.md) | See session/security contract | — | apiKey, applePushNotificationDeviceToken, authLinkId, oauthTokens, pluginId, usernamePassword |
|
|
46
|
+
| [POST /auth-links/refresh](/docs/for-ai/operations/refreshAuthLinkToken.md) | See session/security contract | — | authLinkId |
|
|
47
|
+
| [POST /auth/callback](/docs/for-ai/operations/handleOAuthCallback.md) | Public | — | code, id_token, state, user |
|
|
48
|
+
| [POST /auth/device-authorization](/docs/for-ai/operations/deviceAuthorize.md) | See session/security contract | — | client_id, scope |
|
|
49
|
+
| [POST /auth/raise](/docs/for-ai/operations/raiseAnonymousPrincipal.md) | Public | — | anonymous_refresh_token, subject_token, subject_token_type |
|
|
50
|
+
| [POST /auth/revoke](/docs/for-ai/operations/revokeOAuthGrant.md) | Public | — | client_id, token |
|
|
51
|
+
| [POST /auth/token](/docs/for-ai/operations/generateToken.md) | Public | — | client_id, client_secret, code, code_verifier, grant_type, redirect_uri, refresh_token, resource, scope |
|
|
52
|
+
| [POST /discovery](/docs/for-ai/operations/synchronizeRoutes.md) | See session/security contract | — | authLinkIdentity, groupRoutes, pluginIdentity, relationships, routes |
|
|
53
|
+
| [GET /endpoint-groups](/docs/for-ai/operations/enumerateEndpointGroups.md) | group:read | query:enablement, query:owner (required), query:nextToken, query:maxResults, query:expand, query:forceDeviceAttributeQuery | — |
|
|
54
|
+
| [POST /endpoint-groups](/docs/for-ai/operations/createEndpointGroup.md) | group:manage | — | item |
|
|
55
|
+
| [POST /endpoint-groups-manage](/docs/for-ai/operations/endpointGroupsManage.md) | group:manage | header:Idempotency-Key (required) | operations, validateOnly |
|
|
56
|
+
| [POST /endpoint-query](/docs/for-ai/operations/endpointQuery.md) | endpoint:read; groupId: group:read | — | expand, forceDeviceQuery, paginationContext, query |
|
|
57
|
+
| [GET /endpoint-simulators](/docs/for-ai/operations/enumerateSimulators.md) | See session/security contract | query:owner, query:maxResults, query:nextToken, query:expand | — |
|
|
58
|
+
| [POST /endpoint-simulators](/docs/for-ai/operations/upsertSimulator.md) | See session/security contract | — | configuration, device_type, id, name, state |
|
|
59
|
+
| [DELETE /endpoint-simulators](/docs/for-ai/operations/deleteSimulator.md) | See session/security contract | — | id |
|
|
60
|
+
| [GET /endpoints](/docs/for-ai/operations/enumerateEndpoints.md) | endpoint:read | query:enablement, query:owner, query:id, query:type, query:serialNumber, query:nextToken, query:maxResults, query:expand, query:forceDeviceAttributeQuery | — |
|
|
61
|
+
| [POST /endpoints](/docs/for-ai/operations/upsertEndpoint.md) | endpoint:write | — | id, name, type |
|
|
62
|
+
| [PATCH /endpoints](/docs/for-ai/operations/modifyEndpoint.md) | endpoint:write | — | enablement, id, mergeInto, name, type |
|
|
63
|
+
| [DELETE /endpoints](/docs/for-ai/operations/deleteEndpoint.md) | endpoint:write | — | id |
|
|
64
|
+
| [GET /event-dead-letters](/docs/for-ai/operations/enumerateEventDeadLetters.md) | See session/security contract | query:nextToken, query:maxResults, query:query, query:expand | — |
|
|
65
|
+
| [GET /event-dead-letters/{id}](/docs/for-ai/operations/getEventDeadLetter.md) | See session/security contract | path:id (required), query:expand | — |
|
|
66
|
+
| [DELETE /event-dead-letters/{id}](/docs/for-ai/operations/deleteEventDeadLetter.md) | See session/security contract | path:id (required) | — |
|
|
67
|
+
| [POST /event-dead-letters/{id}/redrives](/docs/for-ai/operations/redriveEventDeadLetter.md) | See session/security contract | path:id (required) | — |
|
|
68
|
+
| [POST /events](/docs/for-ai/operations/createSyntheticEvent.md) | See session/security contract | — | body, endpoint, header, requestId |
|
|
69
|
+
| [GET /events/receipts/{receiptId}](/docs/for-ai/operations/getEventReceipt.md) | See session/security contract | path:receiptId (required), query:expand | — |
|
|
70
|
+
| [GET /flow-node-specifications](/docs/for-ai/operations/enumerateFlowNodeSpecifications.md) | See session/security contract | query:nextToken, query:maxResults, query:expand | — |
|
|
71
|
+
| [GET /flow-nodes](/docs/for-ai/operations/enumerateFlowNodes.md) | See session/security contract | query:expand, query:nextToken, query:maxResults | — |
|
|
72
|
+
| [POST /flow-nodes](/docs/for-ai/operations/createFlowNode.md) | See session/security contract | — | flow |
|
|
73
|
+
| [DELETE /flow-nodes](/docs/for-ai/operations/deleteFlowNode.md) | See session/security contract | — | id |
|
|
74
|
+
| [GET /flows](/docs/for-ai/operations/queryFlows.md) | See session/security contract | query:owner, query:id, query:nextToken, query:maxResults, query:expand | — |
|
|
75
|
+
| [POST /flows](/docs/for-ai/operations/upsertFlow.md) | See session/security contract | — | flow |
|
|
76
|
+
| [POST /flows/trigger](/docs/for-ai/operations/triggerFlow.md) | See session/security contract | — | flow, triggers |
|
|
77
|
+
| [GET /group-relationships](/docs/for-ai/operations/enumerateGroupRelationships.md) | group:read | query:owner (required), query:groupId, query:routeId, query:endpointId, query:nextToken, query:maxResults, query:expand | — |
|
|
78
|
+
| [GET /group-routes](/docs/for-ai/operations/enumerateGroupRoutes.md) | group:read | query:owner (required), query:nextToken, query:maxResults, query:expand | — |
|
|
79
|
+
| [POST /integration-requests](/docs/for-ai/operations/requestFutureIntegration.md) | Public | — | consent, email, pluginId |
|
|
80
|
+
| [POST /messages](/docs/for-ai/operations/sendMessage.md) | message:send | — | message, responseType, target |
|
|
81
|
+
| [POST /messages-gateway](/docs/for-ai/operations/pushToMessageGateway.md) | OAuth (no scope) | — | auth-token, body, context, correlationToken, endpoint, header, ownerId, secrets, target, type |
|
|
82
|
+
| [POST /messages/send](/docs/for-ai/operations/sendMessageLegacyAlias.md) | message:send | — | message, responseType, target |
|
|
83
|
+
| [GET /metrics](/docs/for-ai/operations/getMetrics.md) | Public | — | — |
|
|
84
|
+
| [GET /oauth-clients](/docs/for-ai/operations/enumerateOAuthClients.md) | OAuth (no scope) | query:nextToken, query:maxResults, query:expand | — |
|
|
85
|
+
| [POST /oauth-clients](/docs/for-ai/operations/createOAuthClient.md) | OAuth (no scope) | — | allowedOrigins, clientName, clientUri, clientUriLocalized, contacts, grantTypes, jwks, jwksUri, logoUri, logoUriLocalized, policyUri, policyUriLocalized, redirectUris, responseTypes, scope, scopes, softwareId, softwareVersion, tokenEndpointAuthMethod, tokenEndpointAuthSigningAlg, tosUri, tosUriLocalized |
|
|
86
|
+
| [GET /oauth/authorization-request](/docs/for-ai/operations/getPendingOAuthConsent.md) | See session/security contract | query:request_id (required) | — |
|
|
87
|
+
| [GET /oauth/authorize](/docs/for-ai/operations/beginOAuthAuthorization.md) | Public | query:client_id (required), query:redirect_uri (required), query:response_type (required), query:scope (required), query:state (required), query:resource (required), query:code_challenge (required), query:code_challenge_method (required) | — |
|
|
88
|
+
| [POST /oauth/authorize](/docs/for-ai/operations/completeOAuthConsent.md) | See session/security contract | — | approved, request_id, scope |
|
|
89
|
+
| [POST /oauth/authorize-device](/docs/for-ai/operations/authorizeDevice.md) | OAuth (no scope) | — | scopes, user_code |
|
|
90
|
+
| [POST /oauth/generate-code](/docs/for-ai/operations/generateOAuthCode.md) | OAuth (no scope) | — | client_id, code_challenge, code_challenge_method, redirect_uri, scopes, state |
|
|
91
|
+
| [POST /oauth/register](/docs/for-ai/operations/registerDynamicOAuthClient.md) | Public | — | client_name, client_uri, grant_types, redirect_uris, response_types, scope, software_id, software_statement, software_version, token_endpoint_auth_method |
|
|
92
|
+
| [POST /oauth/validate-request](/docs/for-ai/operations/validateOAuthRequest.md) | See session/security contract | — | client_id, code_challenge, code_challenge_method, redirect_uri, scopes |
|
|
93
|
+
| [GET /oauth/verify-device](/docs/for-ai/operations/verifyDevice.md) | Public | query:user_code (required) | — |
|
|
94
|
+
| [GET /ping](/docs/for-ai/operations/ping.md) | Public | — | — |
|
|
95
|
+
| [POST /plugin-auth-code-exchange](/docs/for-ai/operations/pluginAuthCodeExchange.md) | OAuth (no scope) | — | pluginAuthenticationData, pluginId, principalId |
|
|
96
|
+
| [POST /plugin-auth-code-link](/docs/for-ai/operations/pluginAuthCodeLink.md) | OAuth (no scope) | — | pluginId, principalId |
|
|
97
|
+
| [POST /plugin-auth-multifactor-exchange](/docs/for-ai/operations/pluginAuthMultifactorExchange.md) | OAuth (no scope) | — | pluginAuthenticationData, pluginId, principalId |
|
|
98
|
+
| [GET /plugins](/docs/for-ai/operations/enumeratePlugins.md) | OAuth (no scope) | query:expand, query:id, query:nextToken, query:maxResults | — |
|
|
99
|
+
| [POST /plugins](/docs/for-ai/operations/upsertPluginRequest.md) | OAuth (no scope) | — | applePushNotificationSecret, plugin, secretReferenceId |
|
|
100
|
+
| [DELETE /plugins](/docs/for-ai/operations/deletePlugin.md) | OAuth (no scope) | — | id |
|
|
101
|
+
| [POST /plugins/establish](/docs/for-ai/operations/establishPlugin.md) | See session/security contract | — | plugin |
|
|
102
|
+
| [GET /port1/{principalType}/{principalId}/oauth-clients/{clientId}](/docs/for-ai/operations/getOAuthClient.md) | OAuth (no scope) | path:principalType (required), path:principalId (required), path:clientId (required), query:expand | — |
|
|
103
|
+
| [PUT /port1/{principalType}/{principalId}/oauth-clients/{clientId}](/docs/for-ai/operations/updateOAuthClient.md) | OAuth (no scope) | path:principalType (required), path:principalId (required), path:clientId (required) | allowedOrigins, clientName, clientUri, clientUriLocalized, contacts, grantTypes, jwks, jwksUri, logoUri, logoUriLocalized, policyUri, policyUriLocalized, redirectUris, responseTypes, scope, scopes, softwareId, softwareVersion, tokenEndpointAuthMethod, tokenEndpointAuthSigningAlg, tosUri, tosUriLocalized |
|
|
104
|
+
| [DELETE /port1/{principalType}/{principalId}/oauth-clients/{clientId}](/docs/for-ai/operations/deleteOAuthClient.md) | OAuth (no scope) | path:principalType (required), path:principalId (required), path:clientId (required) | — |
|
|
105
|
+
| [DELETE /port1/{principalType}/{principalId}/secrets/{secretId}](/docs/for-ai/operations/deleteSecret.md) | OAuth (no scope) | path:principalType (required), path:principalId (required), path:secretId (required) | — |
|
|
106
|
+
| [GET /principals](/docs/for-ai/operations/enumeratePrincipals.md) | OAuth (no scope) | query:expand, query:nextToken, query:maxResults | — |
|
|
107
|
+
| [POST /principals](/docs/for-ai/operations/upsertPrincipal.md) | OAuth (no scope) | — | item |
|
|
108
|
+
| [GET /routes](/docs/for-ai/operations/getRoutes.md) | endpoint:read | query:expand, query:nextToken, query:maxResults | — |
|
|
109
|
+
| [POST /routes](/docs/for-ai/operations/upsertRoute.md) | endpoint:write | — | endpointId, id, interfaces, metadata, pluginId |
|
|
110
|
+
| [DELETE /routes](/docs/for-ai/operations/deleteRoute.md) | endpoint:write | — | id |
|
|
111
|
+
| [GET /secrets](/docs/for-ai/operations/enumerateSecrets.md) | OAuth (no scope) | query:id, query:owner, query:nextToken, query:maxResults, query:expand | — |
|
|
112
|
+
| [POST /secrets](/docs/for-ai/operations/upsertSecret.md) | OAuth (no scope) | — | secret |
|
|
113
|
+
| [GET /subscriptions](/docs/for-ai/operations/enumerateSubscriptions.md) | subscription:read | query:expand, query:nextToken, query:maxResults | — |
|
|
114
|
+
| [POST /subscriptions](/docs/for-ai/operations/upsertSubscription.md) | subscription:write | — | subscription |
|
|
115
|
+
| [GET /tokens](/docs/for-ai/operations/enumerateTokens.md) | OAuth (no scope) | query:nextToken, query:maxResults, query:expand | — |
|
|
116
|
+
| [POST /tokens](/docs/for-ai/operations/createToken.md) | OAuth (no scope) | — | expires_in, label, scope, subject |
|
|
117
|
+
| [POST /tuya/qrcode](/docs/for-ai/operations/generateTuyaQrCode.md) | Public | — | accessCode, authenticationUrl, clientId, schema |
|
|
118
|
+
| [POST /tuya/validatetoken](/docs/for-ai/operations/validateTuyaLoginCode.md) | Public | — | authenticationUrl, clientId, loginCode, userCode |
|
|
119
|
+
| [GET /views](/docs/for-ai/operations/enumerateViews.md) | OAuth (no scope) | query:nextToken, query:maxResults, query:expand | — |
|
|
120
|
+
| [POST /views](/docs/for-ai/operations/createView.md) | OAuth (no scope) | — | positions, schemaVersion, title, widgets |
|
|
121
|
+
| [POST /webhooks/github](/docs/for-ai/operations/handleGitHubWebhook.md) | Public | header:X-Hub-Signature-256 (required), header:X-GitHub-Delivery, header:X-GitHub-Event | — |
|
|
122
|
+
| [POST /webhooks/google-cloud-scheduler](/docs/for-ai/operations/handleGoogleCloudSchedulerWebhook.md) | See session/security contract | — | flow_id, node_id |
|
|
123
|
+
| [POST /webhooks/smartthings](/docs/for-ai/operations/handleSmartThingsWebhook.md) | OAuth (no scope) | — | — |
|
|
@@ -10,6 +10,7 @@ Read scopes: endpoint:read. Inbound control scope: message:send. Resource permis
|
|
|
10
10
|
|
|
11
11
|
## Messages
|
|
12
12
|
|
|
13
|
+
- [adjust-brightness](/docs/references/capability-interfaces/brightness/1.0/messages/adjust-brightness.yaml) (in): Adjust brightness by a signed number of percentage points. The endpoint must advertise this message separately from set-brightness.
|
|
13
14
|
- [set-brightness](/docs/references/capability-interfaces/brightness/1.0/messages/set-brightness.yaml) (in): Use this exact payload schema.
|
|
14
15
|
|
|
15
16
|
## State attributes
|
|
@@ -12,6 +12,7 @@ Read scopes: endpoint:read. Inbound control scope: message:send. Resource permis
|
|
|
12
12
|
|
|
13
13
|
- [audio](/docs/references/capability-interfaces/media-player/1.0/messages/audio.yaml) (out): Use this exact payload schema.
|
|
14
14
|
- [audio-stream](/docs/references/capability-interfaces/media-player/1.0/messages/audio-stream.yaml) (out): Use this exact payload schema.
|
|
15
|
+
- [fast-forward](/docs/references/capability-interfaces/media-player/1.0/messages/fast-forward.yaml) (in): Begin provider-defined fast-forward playback. This does not seek by a specific duration; use skip-forward or seek for a known position change.
|
|
15
16
|
- [next](/docs/references/capability-interfaces/media-player/1.0/messages/next.yaml) (in): Use this exact payload schema.
|
|
16
17
|
- [pause](/docs/references/capability-interfaces/media-player/1.0/messages/pause.yaml) (in): Use this exact payload schema.
|
|
17
18
|
- [play-audio](/docs/references/capability-interfaces/media-player/1.0/messages/play-audio.yaml) (in): Play a base64 encoded audio object on the endpoint. Requires audio output support; RTSP or SDP alone does not establish playback support.
|
|
@@ -20,7 +21,7 @@ Read scopes: endpoint:read. Inbound control scope: message:send. Resource permis
|
|
|
20
21
|
- [play-uri](/docs/references/capability-interfaces/media-player/1.0/messages/play-uri.yaml) (in): Use this exact payload schema.
|
|
21
22
|
- [previous](/docs/references/capability-interfaces/media-player/1.0/messages/previous.yaml) (in): Use this exact payload schema.
|
|
22
23
|
- [rewind](/docs/references/capability-interfaces/media-player/1.0/messages/rewind.yaml) (in): Use this exact payload schema.
|
|
23
|
-
- [search-and-play](/docs/references/capability-interfaces/media-player/1.0/messages/search-and-play.yaml) (in):
|
|
24
|
+
- [search-and-play](/docs/references/capability-interfaces/media-player/1.0/messages/search-and-play.yaml) (in): Search for and play media by title or query using a service advertised by the endpoint. Omitting mediaType retains audio search behavior; video-only endpoints may default to video.
|
|
24
25
|
- [seek](/docs/references/capability-interfaces/media-player/1.0/messages/seek.yaml) (in): Use this exact payload schema.
|
|
25
26
|
- [skip-backward](/docs/references/capability-interfaces/media-player/1.0/messages/skip-backward.yaml) (in): Use this exact payload schema.
|
|
26
27
|
- [skip-forward](/docs/references/capability-interfaces/media-player/1.0/messages/skip-forward.yaml) (in): Use this exact payload schema.
|
|
@@ -4,6 +4,22 @@ Start with authorized endpoint discovery and inspect capability declarations. A
|
|
|
4
4
|
|
|
5
5
|
For one bulb, read its power/brightness/color message schemas in [the capability directory](/docs/for-ai/capability-interfaces.md). Use the exact namespace, version, message name, units and constraints returned. [The quickstart](/docs/for-ai/guides/quickstart.md) shows the generic dispatch envelope.
|
|
6
6
|
|
|
7
|
-
For “all lights,”
|
|
7
|
+
For “all lights,” use [endpointQuery](/docs/for-ai/operations/endpointQuery.md): POST /endpoint-query with endpoint:read. Its results include readable shared endpoints from other owners. Start with the LIGHT and LIGHTBULB types below, then limit the results to the user's requested home or group.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"query": {
|
|
12
|
+
"or": [
|
|
13
|
+
{"match": {"key": "type", "value": "LIGHT"}},
|
|
14
|
+
{"match": {"key": "type", "value": "LIGHTBULB"}}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"paginationContext": {"maxResults": 25}
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
For a room, first resolve its full group ID using [group discovery](/docs/for-ai/guides/managing-groups.md). Intersect the type predicate with `{"match":{"key":"groupId","value":"<resolved-full-group-id>"}}` inside query.and. This additionally requires group:read and permission to read that group. A group filter uses its returned member endpoints; resolve the requested nested groups as needed and deduplicate full endpoint IDs. Reading a group does not grant control of its members.
|
|
22
|
+
|
|
23
|
+
Repeat the same query, page size and authenticated grant with paginationContext.nextToken from each response. Continue until that token is absent, including after an empty page. Disabled endpoints are excluded by default. Inspect declared capabilities for the selected endpoints and exclude unsupported targets; do not broaden the selection to every power-capable plug or switch. Freeze the discovered target set before dispatch and report each result.
|
|
24
|
+
|
|
25
|
+
A batch can partially succeed. Report selected, accepted, failed and unresolved targets separately. For fresh readback, repeat endpointQuery with expand:["interfaces.attributes"] and forceDeviceQuery:true. Inspect observation sample times and response errors before claiming all lights changed. A lost response does not justify repeating relative brightness adjustments. See [authorization rules](/docs/for-ai/guides/authorization-rules.md).
|
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
# Using the REST API
|
|
2
2
|
|
|
3
|
-
Discover authorization metadata, then use [OAuth setup](/docs/for-ai/guides/authentication-and-dcr.md).
|
|
3
|
+
Discover authorization metadata, then use [OAuth setup](/docs/for-ai/guides/authentication-and-dcr.md).
|
|
4
|
+
Start with the [compact API catalog](/docs/for-ai/api-catalog.md). It
|
|
5
|
+
contains auth context, public operation links, parameter names and top-level JSON
|
|
6
|
+
keys. Obtain exact REST paths from its links or the [small operation index](/docs/for-ai/operations/index.md).
|
|
7
|
+
Follow one operation's linked schemas for required/conditional fields and
|
|
8
|
+
nested payloads. It does not inline all schemas or examples.
|
|
9
|
+
|
|
10
|
+
For SDK generation or a comprehensive contract download, request the
|
|
11
|
+
[full OpenAPI document](/docs/references/openapi.yaml).
|
|
12
|
+
|
|
13
|
+
The website's `/api/` route serves this compact Markdown when the request puts
|
|
14
|
+
`text/markdown` first in `Accept` (for example,
|
|
15
|
+
`text/markdown, text/plain;q=0.9, text/html;q=0.8`). Browser HTML requests keep the
|
|
16
|
+
interactive reference. Add `?full=1` to explicitly retrieve the complete HTML
|
|
17
|
+
catalog; keep HTML in your accepted formats for that request. Both variants
|
|
18
|
+
include `Vary: Accept` for caches. The direct compact Markdown URL works on both
|
|
19
|
+
the website and API host and does not depend on negotiation.
|
|
4
20
|
|
|
5
21
|
Enumerate endpoints with endpoint:read. Follow returned pagination links/tokens exactly and stop only when continuation is absent. Inspect declared capabilities and versions; retrieve one message/attribute schema as needed. Send messages through POST /messages (the existing /messages/send alias also works). Never invent target IDs or message fields.
|
|
6
22
|
|
|
23
|
+
For filtered inventory including readable shared endpoints, use [POST /endpoint-query](/docs/for-ai/operations/endpointQuery.md). Its query accepts exact match and nested and/or/not predicates; read the request schema's supported fields rather than inventing comparisons or text search. A groupId predicate additionally needs group:read and access to that group. Keep the query, page size, expansions, forceDeviceQuery setting and grant unchanged while following paginationContext.nextToken. Empty pages can have a continuation. Cursors expire after fifteen minutes; restart without nextToken on a 400 cursor error.
|
|
24
|
+
|
|
7
25
|
REST dispatch and subsequent physical observation are separate facts. A 202 describes unfinished work. A timeout can mean the operation already acted; inspect existing results/state before repeating. IR/Bluetooth fire-and-forget and long-delay devices may never provide immediate confirmation. Use bounded polling and report unresolved state. An endpoint edit marked committed with cleanup pending must not be repeated as though it failed.
|
|
8
26
|
|
|
9
27
|
Use documented idempotency/correlation and version preconditions only where the operation guarantees them. Setting a value and incrementing it have different replay risks. On an ambiguous lost relative-command response, report unknown or read back rather than blindly send again.
|
|
@@ -13,6 +13,7 @@ Use [the shared connection guide](/docs/for-ai/guides/connect-agent.md) to selec
|
|
|
13
13
|
## Documentation tree: look up what you need
|
|
14
14
|
|
|
15
15
|
- [Task/component guide directory](/docs/for-ai/guides/index.md): alternatives, not a required reading checklist
|
|
16
|
+
- [Compact API catalog](/docs/for-ai/api-catalog.md): auth context and parameter/key index
|
|
16
17
|
- [REST operation directory](/docs/for-ai/operations/index.md): individual operations and their scopes
|
|
17
18
|
- [Small REST schema files](/docs/for-ai/schemas.md): linked request/response components
|
|
18
19
|
- [Capability directory](/docs/for-ai/capability-interfaces.md): match the discovered namespace and version
|
|
@@ -4,7 +4,7 @@ POST `/endpoint-query`
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
Query for
|
|
7
|
+
Return a bounded page of authorized endpoints matching the shared Query expression, including endpoints shared by other owners. Read permission is evaluated before filtering, pagination and state expansion. See the request schema for supported fields and operators. Use groupId to select members of a readable room/group, then intersect type or declared interfaces to select lights. Group predicates additionally require group:read for delegated OAuth. Repeat the complete query settings and grant when following nextToken; cursors expire after fifteen minutes. Device attributes are returned only when expanded. Report per-target command acceptance and observed state separately; querying a group does not grant permission to control its members.
|
|
8
8
|
|
|
9
9
|
## Authorization
|
|
10
10
|
|
|
@@ -19,6 +19,9 @@ security:
|
|
|
19
19
|
- bearerAuth: []
|
|
20
20
|
delegated: true
|
|
21
21
|
resourcePermissionRequired: true
|
|
22
|
+
conditionalScopes:
|
|
23
|
+
groupId:
|
|
24
|
+
- group:read
|
|
22
25
|
```
|
|
23
26
|
|
|
24
27
|
## Complete operation contract
|
|
@@ -29,7 +32,19 @@ post:
|
|
|
29
32
|
operationId: endpointQuery
|
|
30
33
|
tags:
|
|
31
34
|
- Endpoints
|
|
32
|
-
description:
|
|
35
|
+
description: >-
|
|
36
|
+
Return a bounded page of authorized endpoints matching the shared Query expression, including
|
|
37
|
+
endpoints shared by other owners. Read permission is evaluated before filtering, pagination and
|
|
38
|
+
state expansion. See the request schema for supported fields and operators. Use groupId to
|
|
39
|
+
select members of a readable room/group, then intersect type or declared interfaces to select
|
|
40
|
+
lights. Group predicates additionally require group:read for delegated OAuth. Repeat the
|
|
41
|
+
complete query settings and grant when following nextToken; cursors expire after fifteen
|
|
42
|
+
minutes. Device attributes are returned only when expanded. Report per-target command acceptance
|
|
43
|
+
and observed state separately; querying a group does not grant permission to control its
|
|
44
|
+
members.
|
|
45
|
+
x-portos-conditional-scopes:
|
|
46
|
+
groupId:
|
|
47
|
+
- group:read
|
|
33
48
|
requestBody:
|
|
34
49
|
required: true
|
|
35
50
|
content:
|
|
@@ -39,8 +54,10 @@ post:
|
|
|
39
54
|
example:
|
|
40
55
|
query:
|
|
41
56
|
match:
|
|
42
|
-
key:
|
|
43
|
-
value:
|
|
57
|
+
key: type
|
|
58
|
+
value: LIGHT
|
|
59
|
+
paginationContext:
|
|
60
|
+
maxResults: 10
|
|
44
61
|
responses:
|
|
45
62
|
'200':
|
|
46
63
|
description: Endpoints retrieved successfully
|
|
@@ -50,10 +67,8 @@ post:
|
|
|
50
67
|
$ref: /docs/references/schemas/EndpointQueryResponse.json
|
|
51
68
|
example:
|
|
52
69
|
results: []
|
|
53
|
-
paginationContext:
|
|
54
|
-
nextToken: abc123
|
|
55
70
|
'400':
|
|
56
|
-
description:
|
|
71
|
+
description: Invalid query, unsupported expansion, or invalid/expired/mismatched cursor.
|
|
57
72
|
content:
|
|
58
73
|
application/json:
|
|
59
74
|
schema:
|
|
@@ -72,6 +87,36 @@ post:
|
|
|
72
87
|
message: Unauthorized - invalid or missing authentication token
|
|
73
88
|
code: UNAUTHORIZED
|
|
74
89
|
family: AUTHENTICATION
|
|
90
|
+
'403':
|
|
91
|
+
description: Missing conditional OAuth scope or permission to read a referenced group.
|
|
92
|
+
content:
|
|
93
|
+
application/json:
|
|
94
|
+
schema:
|
|
95
|
+
$ref: /docs/references/schemas/Error.json
|
|
96
|
+
example:
|
|
97
|
+
message: Permission to read the requested group is required.
|
|
98
|
+
code: FORBIDDEN
|
|
99
|
+
family: FORBIDDEN
|
|
100
|
+
'404':
|
|
101
|
+
description: A referenced group does not exist.
|
|
102
|
+
content:
|
|
103
|
+
application/json:
|
|
104
|
+
schema:
|
|
105
|
+
$ref: /docs/references/schemas/Error.json
|
|
106
|
+
example:
|
|
107
|
+
message: Requested group was not found.
|
|
108
|
+
code: NOT_FOUND
|
|
109
|
+
family: NOT_FOUND
|
|
110
|
+
'409':
|
|
111
|
+
description: A selected disabled endpoint cannot be forcibly refreshed.
|
|
112
|
+
content:
|
|
113
|
+
application/json:
|
|
114
|
+
schema:
|
|
115
|
+
$ref: /docs/references/schemas/Error.json
|
|
116
|
+
example:
|
|
117
|
+
message: endpoint messaging is disabled
|
|
118
|
+
code: ENDPOINT_DISABLED
|
|
119
|
+
family: CONFLICT
|
|
75
120
|
'500':
|
|
76
121
|
description: Internal server error
|
|
77
122
|
content:
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
- [BatteryInterfaceBatteryAttribute](/docs/references/schemas/BatteryInterfaceBatteryAttribute.json) (schemas)
|
|
18
18
|
- [BatteryInterfaceConfiguration](/docs/references/schemas/BatteryInterfaceConfiguration.json) (schemas)
|
|
19
19
|
- [BrandingInformation](/docs/references/schemas/BrandingInformation.json) (schemas)
|
|
20
|
+
- [BrightnessInterfaceAdjustBrightnessMessage](/docs/references/schemas/BrightnessInterfaceAdjustBrightnessMessage.json) (schemas)
|
|
20
21
|
- [BrightnessInterfaceBrightnessAttribute](/docs/references/schemas/BrightnessInterfaceBrightnessAttribute.json) (schemas)
|
|
21
22
|
- [BrightnessInterfaceConfiguration](/docs/references/schemas/BrightnessInterfaceConfiguration.json) (schemas)
|
|
22
23
|
- [BrightnessInterfaceSetBrightnessMessage](/docs/references/schemas/BrightnessInterfaceSetBrightnessMessage.json) (schemas)
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
- [MediaPlayerInterfaceAudioMessage](/docs/references/schemas/MediaPlayerInterfaceAudioMessage.json) (schemas)
|
|
10
10
|
- [MediaPlayerInterfaceAudioStreamMessage](/docs/references/schemas/MediaPlayerInterfaceAudioStreamMessage.json) (schemas)
|
|
11
11
|
- [MediaPlayerInterfaceConfiguration](/docs/references/schemas/MediaPlayerInterfaceConfiguration.json) (schemas)
|
|
12
|
+
- [MediaPlayerInterfaceFastForwardMessage](/docs/references/schemas/MediaPlayerInterfaceFastForwardMessage.json) (schemas)
|
|
12
13
|
- [MediaPlayerInterfaceNextMessage](/docs/references/schemas/MediaPlayerInterfaceNextMessage.json) (schemas)
|
|
13
14
|
- [MediaPlayerInterfacePauseMessage](/docs/references/schemas/MediaPlayerInterfacePauseMessage.json) (schemas)
|
|
14
15
|
- [MediaPlayerInterfacePlayAudioMessage](/docs/references/schemas/MediaPlayerInterfacePlayAudioMessage.json) (schemas)
|
|
@@ -32,6 +33,7 @@
|
|
|
32
33
|
- [MediaPlaylistInterfacePlayPlaylistMessage](/docs/references/schemas/MediaPlaylistInterfacePlayPlaylistMessage.json) (schemas)
|
|
33
34
|
- [MediaPlaylistInterfaceRemoveFromPlaylistMessage](/docs/references/schemas/MediaPlaylistInterfaceRemoveFromPlaylistMessage.json) (schemas)
|
|
34
35
|
- [MediaPlaylistInterfaceShufflePlaylistMessage](/docs/references/schemas/MediaPlaylistInterfaceShufflePlaylistMessage.json) (schemas)
|
|
36
|
+
- [MediaProvider](/docs/references/schemas/MediaProvider.json) (schemas)
|
|
35
37
|
- [MediaSearchCapabilityInterfaceConfiguration](/docs/references/schemas/MediaSearchCapabilityInterfaceConfiguration.json) (schemas)
|
|
36
38
|
- [MediaSearchInterfaceAudioMediaResultsMessage](/docs/references/schemas/MediaSearchInterfaceAudioMediaResultsMessage.json) (schemas)
|
|
37
39
|
- [MediaSearchInterfaceSearchMediaMessage](/docs/references/schemas/MediaSearchInterfaceSearchMediaMessage.json) (schemas)
|
|
@@ -40,5 +42,3 @@
|
|
|
40
42
|
- [MessageContext](/docs/references/schemas/MessageContext.json) (schemas)
|
|
41
43
|
- [MessageEndpoint](/docs/references/schemas/MessageEndpoint.json) (schemas)
|
|
42
44
|
- [MessageHeader](/docs/references/schemas/MessageHeader.json) (schemas)
|
|
43
|
-
- [MessageInterfaceConfiguration](/docs/references/schemas/MessageInterfaceConfiguration.json) (schemas)
|
|
44
|
-
- [MessageSourceNodeConfiguration](/docs/references/schemas/MessageSourceNodeConfiguration.json) (schemas)
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
[Schema directory](/docs/for-ai/schemas.md). Follow only the components linked by your operation.
|
|
4
4
|
|
|
5
|
+
- [MessageInterfaceConfiguration](/docs/references/schemas/MessageInterfaceConfiguration.json) (schemas)
|
|
6
|
+
- [MessageSourceNodeConfiguration](/docs/references/schemas/MessageSourceNodeConfiguration.json) (schemas)
|
|
5
7
|
- [MessageTarget](/docs/references/schemas/MessageTarget.json) (schemas)
|
|
6
8
|
- [MessageTargetGroupRoute](/docs/references/schemas/MessageTargetGroupRoute.json) (schemas)
|
|
7
9
|
- [MessageTargetGroupRouteReference](/docs/references/schemas/MessageTargetGroupRouteReference.json) (schemas)
|
|
@@ -6,7 +6,7 @@ Start with [the REST operation directory](/docs/for-ai/operations/index.md) and
|
|
|
6
6
|
|
|
7
7
|
- [AccessControlEntity – AuthorizationInterfaceAuthorizationUpdateReportMessage](/docs/for-ai/schemas/a-1.md) (40 components)
|
|
8
8
|
- [AuthorizationInterfaceConfiguration – AuthResourceType](/docs/for-ai/schemas/a-2.md) (5 components)
|
|
9
|
-
- [BarrierControlInterfaceBarrierPositionAttribute – BrightnessInterfaceSetBrightnessMessage](/docs/for-ai/schemas/b-1.md) (
|
|
9
|
+
- [BarrierControlInterfaceBarrierPositionAttribute – BrightnessInterfaceSetBrightnessMessage](/docs/for-ai/schemas/b-1.md) (19 components)
|
|
10
10
|
- [CalendarEvent – ColorTemperatureInterfaceSetColorTemperatureMessage](/docs/for-ai/schemas/c-1.md) (40 components)
|
|
11
11
|
- [ConductivityInterfaceMeasuredValueAttribute – CooktopInterfaceOperationalStateAttribute](/docs/for-ai/schemas/c-2.md) (40 components)
|
|
12
12
|
- [CreateEndpointGroupItem – CustomPluginSecret](/docs/for-ai/schemas/c-3.md) (12 components)
|
|
@@ -20,8 +20,8 @@ Start with [the REST operation directory](/docs/for-ai/operations/index.md) and
|
|
|
20
20
|
- [InferenceNodeConfiguration – IfMatch](/docs/for-ai/schemas/i-1.md) (9 components)
|
|
21
21
|
- [KeypadInputInterfaceConfiguration – KeypadInputInterfaceSendKeyMessage](/docs/for-ai/schemas/k-1.md) (2 components)
|
|
22
22
|
- [LaundryDryerInterfaceConfiguration – LockInterfaceUnlockMessage](/docs/for-ai/schemas/l-1.md) (18 components)
|
|
23
|
-
- [MeasurementRange –
|
|
24
|
-
- [
|
|
23
|
+
- [MeasurementRange – MessageHeader](/docs/for-ai/schemas/m-1.md) (40 components)
|
|
24
|
+
- [MessageInterfaceConfiguration – MovementInstruction](/docs/for-ai/schemas/m-2.md) (14 components)
|
|
25
25
|
- [NO2ConcMeasInterfaceConfiguration – NotificationTimeWindow](/docs/for-ai/schemas/n-1.md) (11 components)
|
|
26
26
|
- [O3ConcMeasInterfaceConfiguration – OvenInterfaceTemperatureAttribute](/docs/for-ai/schemas/o-1.md) (16 components)
|
|
27
27
|
- [PaginationContext – PluginType](/docs/for-ai/schemas/p-1.md) (40 components)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description: >-
|
|
2
|
+
Adjust brightness by a signed number of percentage points. The endpoint must
|
|
3
|
+
advertise this message separately from set-brightness.
|
|
4
|
+
type: object
|
|
5
|
+
properties:
|
|
6
|
+
brightnessDelta:
|
|
7
|
+
type: integer
|
|
8
|
+
minimum: -100
|
|
9
|
+
maximum: 100
|
|
10
|
+
required:
|
|
11
|
+
- brightnessDelta
|
|
12
|
+
additionalProperties: false
|
|
@@ -5,6 +5,24 @@ description: >-
|
|
|
5
5
|
Brightness sets how bright a connected device should be and reports its current level. Use it to
|
|
6
6
|
dim a light for the evening or restore a brighter setting for work.
|
|
7
7
|
messages:
|
|
8
|
+
- name: adjust-brightness
|
|
9
|
+
description: >-
|
|
10
|
+
Adjust brightness by a signed number of percentage points. The endpoint must advertise this
|
|
11
|
+
message separately from set-brightness.
|
|
12
|
+
directionality: in
|
|
13
|
+
schema:
|
|
14
|
+
description: >-
|
|
15
|
+
Adjust brightness by a signed number of percentage points. The endpoint must advertise this
|
|
16
|
+
message separately from set-brightness.
|
|
17
|
+
type: object
|
|
18
|
+
properties:
|
|
19
|
+
brightnessDelta:
|
|
20
|
+
type: integer
|
|
21
|
+
minimum: -100
|
|
22
|
+
maximum: 100
|
|
23
|
+
required:
|
|
24
|
+
- brightnessDelta
|
|
25
|
+
additionalProperties: false
|
|
8
26
|
- name: set-brightness
|
|
9
27
|
description: null
|
|
10
28
|
directionality: in
|
|
@@ -5,6 +5,24 @@ description: >-
|
|
|
5
5
|
Brightness sets how bright a connected device should be and reports its current level. Use it to
|
|
6
6
|
dim a light for the evening or restore a brighter setting for work.
|
|
7
7
|
messages:
|
|
8
|
+
- name: adjust-brightness
|
|
9
|
+
description: >-
|
|
10
|
+
Adjust brightness by a signed number of percentage points. The endpoint must advertise this
|
|
11
|
+
message separately from set-brightness.
|
|
12
|
+
directionality: in
|
|
13
|
+
schema:
|
|
14
|
+
description: >-
|
|
15
|
+
Adjust brightness by a signed number of percentage points. The endpoint must advertise this
|
|
16
|
+
message separately from set-brightness.
|
|
17
|
+
type: object
|
|
18
|
+
properties:
|
|
19
|
+
brightnessDelta:
|
|
20
|
+
type: integer
|
|
21
|
+
minimum: -100
|
|
22
|
+
maximum: 100
|
|
23
|
+
required:
|
|
24
|
+
- brightnessDelta
|
|
25
|
+
additionalProperties: false
|
|
8
26
|
- name: set-brightness
|
|
9
27
|
description: null
|
|
10
28
|
directionality: in
|
package/generated/public/docs/references/capability-interfaces/media-player/1.0/configuration.yaml
CHANGED
|
@@ -3,6 +3,46 @@ description: >-
|
|
|
3
3
|
playback. Read playback state and use only the commands supported by the connected player.
|
|
4
4
|
type: object
|
|
5
5
|
properties:
|
|
6
|
+
supportedAudioProviders:
|
|
7
|
+
type: array
|
|
8
|
+
uniqueItems: true
|
|
9
|
+
description: >-
|
|
10
|
+
Audio services accepted by search-and-play on this endpoint. These describe command support,
|
|
11
|
+
not active subscriptions.
|
|
12
|
+
items:
|
|
13
|
+
type: string
|
|
14
|
+
description: >-
|
|
15
|
+
Media service identifier. A provider enum value does not imply that every endpoint supports
|
|
16
|
+
that service; use the endpoint's advertised provider lists.
|
|
17
|
+
enum:
|
|
18
|
+
- SPOTIFY
|
|
19
|
+
- AMAZON_MUSIC
|
|
20
|
+
- APPLE_MUSIC
|
|
21
|
+
- AUDIBLE
|
|
22
|
+
- TUNE_IN
|
|
23
|
+
- PANDORA
|
|
24
|
+
- IHEART_RADIO
|
|
25
|
+
- SIRIUSXM
|
|
26
|
+
- DEEZER
|
|
27
|
+
- TIDAL
|
|
28
|
+
- YOUTUBE
|
|
29
|
+
- NETFLIX
|
|
30
|
+
- PRIME_VIDEO
|
|
31
|
+
- DAILYMOTION
|
|
32
|
+
supportedVideoProviders:
|
|
33
|
+
type: array
|
|
34
|
+
uniqueItems: true
|
|
35
|
+
description: >-
|
|
36
|
+
Video services accepted by search-and-play on this endpoint. These describe command support,
|
|
37
|
+
not installed applications or active subscriptions.
|
|
38
|
+
items:
|
|
39
|
+
$ref: '#/properties/supportedAudioProviders/items'
|
|
40
|
+
defaultAudioProvider:
|
|
41
|
+
$ref: '#/properties/supportedAudioProviders/items'
|
|
42
|
+
description: Default service for an audio search. Must be in supportedAudioProviders.
|
|
43
|
+
defaultVideoProvider:
|
|
44
|
+
$ref: '#/properties/supportedAudioProviders/items'
|
|
45
|
+
description: Default service for a video search. Must be in supportedVideoProviders.
|
|
6
46
|
supportedPlaybackStates:
|
|
7
47
|
type: array
|
|
8
48
|
items:
|