123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436 |
- // Copyright 2020 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.actions.sdk.v2;
- import "google/actions/sdk/v2/account_linking_secret.proto";
- import "google/actions/sdk/v2/files.proto";
- import "google/actions/sdk/v2/release_channel.proto";
- import "google/actions/sdk/v2/validation_results.proto";
- import "google/actions/sdk/v2/version.proto";
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/protobuf/wrappers.proto";
- option go_package = "google.golang.org/genproto/googleapis/actions/sdk/v2;sdk";
- option java_multiple_files = true;
- option java_outer_classname = "ActionsSdkProto";
- option java_package = "com.google.actions.sdk.v2";
- // Actions SDK API which allows developers to build projects using the SDK.
- service ActionsSdk {
- option (google.api.default_host) = "actions.googleapis.com";
- // Updates the project draft based on the model.
- rpc WriteDraft(stream WriteDraftRequest) returns (Draft) {
- option (google.api.http) = {
- post: "/v2/{parent=projects/*}/draft:write"
- body: "*"
- };
- }
- // Updates the user's project preview based on the model.
- rpc WritePreview(stream WritePreviewRequest) returns (Preview) {
- option (google.api.http) = {
- post: "/v2/{parent=projects/*}/preview:write"
- body: "*"
- };
- }
- // Creates a project version based on the model and triggers deployment to the
- // specified release channel, if specified.
- rpc CreateVersion(stream CreateVersionRequest) returns (Version) {
- option (google.api.http) = {
- post: "/v2/{parent=projects/*}/versions:create"
- body: "*"
- };
- }
- // Reads the entire content of the project draft.
- rpc ReadDraft(ReadDraftRequest) returns (stream ReadDraftResponse) {
- option (google.api.http) = {
- post: "/v2/{name=projects/*/draft}:read"
- body: "*"
- };
- }
- // Reads the entire content of a project version.
- rpc ReadVersion(ReadVersionRequest) returns (stream ReadVersionResponse) {
- option (google.api.http) = {
- post: "/v2/{name=projects/*/versions/*}:read"
- body: "*"
- };
- }
- // Encrypts the OAuth client secret used in account linking flows.
- // This can be used to encrypt the client secret for the first time (e.g.
- // before the first push or after changing the client secret) or to re-encrypt
- // a client secret using the latest primary key version (considering key
- // rotation).
- rpc EncryptSecret(EncryptSecretRequest) returns (EncryptSecretResponse) {
- option (google.api.http) = {
- post: "/v2:encryptSecret"
- body: "*"
- };
- }
- // Decrypts the OAuth client secret used in account linking flows.
- // This can be used to view the client secret (e.g. after pulling a project).
- rpc DecryptSecret(DecryptSecretRequest) returns (DecryptSecretResponse) {
- option (google.api.http) = {
- post: "/v2:decryptSecret"
- body: "*"
- };
- }
- // Lists all the sample projects supported by the gactions CLI.
- rpc ListSampleProjects(ListSampleProjectsRequest) returns (ListSampleProjectsResponse) {
- option (google.api.http) = {
- get: "/v2/sampleProjects"
- };
- }
- // Lists all release channels and corresponding versions, if any.
- rpc ListReleaseChannels(ListReleaseChannelsRequest) returns (ListReleaseChannelsResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*}/releaseChannels"
- };
- option (google.api.method_signature) = "parent";
- }
- // Lists all versions and their current states.
- rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*}/versions"
- };
- option (google.api.method_signature) = "parent";
- }
- }
- // Streaming RPC request for WriteDraft.
- message WriteDraftRequest {
- // Required. The parent resource name in the format `projects/{project}`. The
- // `{project}` is the cloud project ID associated with the project.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "actions.googleapis.com/Draft"
- }
- ];
- // Required. List of files sent to the server at a time. This is a list of config files
- // or data files.
- // 1. The first request must be a ConfigFiles.
- // 2. The first request must have a ConfigFile with 'settings'.
- // 3. The first request must have a ConfigFile with 'manifest'.
- // 4. The webhook ConfigFile corresponding to inline cloud function must be
- // streamed before the DataFile corresponding to its source code.
- Files files = 4 [(google.api.field_behavior) = REQUIRED];
- }
- // Definition of draft resource.
- message Draft {
- option (google.api.resource) = {
- type: "actions.googleapis.com/Draft"
- pattern: "projects/{project}/draft"
- };
- // The unique identifier of the draft in the following format.
- // `projects/{project}/draft`
- string name = 1;
- // Validation results associated with the project draft content. Note that
- // WriteDraft updates the draft despite the warnings as warnings are not draft
- // blocking.
- ValidationResults validation_results = 2;
- }
- // Streaming RPC request for WritePreview.
- message WritePreviewRequest {
- // Indicates the preview content will be coming from the Draft.
- message ContentFromDraft {
- }
- // Indicates the preview content will be coming from an exiting version.
- message ContentFromSubmittedVersion {
- // Required. Submitted version of the project to be used to create a preview.
- // Format: `projects/{project}/versions/{version}`
- string version = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "actions.googleapis.com/Version"
- }
- ];
- }
- // Settings for updating the preview.
- message PreviewSettings {
- // Indicates whether or not to run certain operations, such as transactions,
- // in sandbox mode. By default, preview requests run these operations in
- // sandbox mode. In other words, the default value for `sandbox` is `true`.
- google.protobuf.BoolValue sandbox = 1;
- }
- // Required. The parent resource name in the format `projects/{project}`. The
- // `{project}` is the cloud project ID associated with the project.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "actions.googleapis.com/Preview"
- }
- ];
- // Data source used to created the preview.
- oneof source {
- // List of files sent to the server at a time. This is a list of config
- // files or data files.
- // 1. The first request must be a ConfigFiles.
- // 2. The first request must have a ConfigFile with 'settings'.
- // 3. The first request must have a ConfigFile with 'manifest'.
- // 4. The webhook ConfigFile corresponding to inline cloud function must be
- // streamed before the DataFile corresponding to its source code.
- Files files = 5;
- // Content sourced from the project draft.
- ContentFromDraft draft = 6;
- // Content sourced from the an exiting version.
- ContentFromSubmittedVersion submitted_version = 7;
- }
- // Required. The settings for updating the user's preview.
- PreviewSettings preview_settings = 4 [(google.api.field_behavior) = REQUIRED];
- }
- // Definition of preview resource.
- message Preview {
- option (google.api.resource) = {
- type: "actions.googleapis.com/Preview"
- pattern: "projects/{project}/previews/{preview}"
- };
- // The unique identifier of the preview.
- // Format: `projects/{project}/preview`
- string name = 1;
- // Validation results associated with the user project preview content.
- ValidationResults validation_results = 2;
- // The simulator URL to test the user preview.
- string simulator_url = 3;
- }
- // Streaming RPC request for CreateVersion.
- message CreateVersionRequest {
- // Required. The parent resource name in the format `projects/{project}`. The
- // `{project}` is the cloud project ID associated with the project.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "actions.googleapis.com/Version"
- }
- ];
- // Required. List of files sent to the server at a time. This is a list of config files
- // or data files.
- // 1. The first request must be a ConfigFiles.
- // 2. The first request must have a ConfigFile with 'settings'.
- // 3. The first request must have a ConfigFile with 'manifest'.
- // 4. The webhook ConfigFile corresponding to inline cloud function must be
- // streamed before the DataFile corresponding to its source code.
- Files files = 5 [(google.api.field_behavior) = REQUIRED];
- // Optional. The release channel to deploy the version, if specified. The supported
- // built in release channels are actions.channels.Production,
- // actions.channels.ClosedBeta, actions.channels.Alpha.
- // .
- string release_channel = 4 [(google.api.field_behavior) = OPTIONAL];
- }
- // RPC request for ReadDraft.
- message ReadDraftRequest {
- // Required. The name of the resource in the format `projects/{project}/draft`. The
- // `{project}` is the cloud project ID associated with the project.
- string name = 1 [(google.api.field_behavior) = REQUIRED];
- // Optional. The version of the crypto key used to encrypt the account linking OAuth
- // client secret. If not specified, the primary key version is used for
- // encryption. Only relevant for projects with account linking with client
- // secret.
- string client_secret_encryption_key_version = 2 [(google.api.field_behavior) = OPTIONAL];
- }
- // Streaming RPC response for ReadDraft.
- message ReadDraftResponse {
- // List of files sent from the server at a time.
- Files files = 3;
- }
- // RPC request for ReadVersion.
- message ReadVersionRequest {
- // Required. The name of the version resource in the format
- // `projects/{project}/versions/{version}`. `{project}` is the
- // cloud project ID associated with the project, `{version}` is the
- // identifier of the version being read.
- string name = 1 [(google.api.field_behavior) = REQUIRED];
- // Optional. The version of the crypto key used to encrypt the account linking OAuth
- // client secret. If not specified, the primary key version is used for
- // encryption. Only relevant for projects with account linking with client
- // secret.
- string client_secret_encryption_key_version = 2 [(google.api.field_behavior) = OPTIONAL];
- }
- // Streaming RPC response for ReadVersion.
- message ReadVersionResponse {
- // List of files sent from the server at a time.
- Files files = 1;
- }
- // RPC request for EncryptSecret.
- message EncryptSecretRequest {
- // Required. The account linking client secret plaintext.
- string client_secret = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // RPC response for EncryptSecret.
- message EncryptSecretResponse {
- // Contains the encrypted account linking client secret and the key version
- // used to encrypt the secret.
- AccountLinkingSecret account_linking_secret = 1;
- }
- // RPC request for DecryptSecret.
- message DecryptSecretRequest {
- // Required. The account linking client secret ciphertext.
- bytes encrypted_client_secret = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // RPC response for DecryptSecret.
- message DecryptSecretResponse {
- // The account linking client secret plaintext.
- string client_secret = 1;
- }
- // RPC request for ListSampleProjects.
- message ListSampleProjectsRequest {
- // Optional. The maximum number of sample projects to return. The service may return
- // fewer than this value.
- // If unspecified, at most 1000 sample projects will be returned. Values above
- // 1000 will be coerced to 1000.
- int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL];
- // Optional. A page token, received from a previous 'ListSampleProjects' call.
- // Provide this to retrieve the subsequent page.
- string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
- }
- // RPC response for ListSampleProjects.
- message ListSampleProjectsResponse {
- // The list of sample projects supported.
- repeated SampleProject sample_projects = 1;
- // A token, which can be sent as `page_token` to retrieve the next page.
- // If this field is omitted, there are no subsequent pages.
- string next_page_token = 2;
- }
- // Definition of sample project resource.
- message SampleProject {
- option (google.api.resource) = {
- type: "actions.googleapis.com/SampleProject"
- pattern: "sampleProjects/{sample_project}"
- };
- // The name of the sample project.
- // Format: `sampleProjects/{sample_project}`
- string name = 1;
- // The URL to the zip file where the sample is hosted.
- string hosted_url = 2;
- // The description of the sample project.
- string description = 3;
- }
- // RPC request for listing release channels
- message ListReleaseChannelsRequest {
- // Required. The name of the resource in the format `projects/{project}`. The
- // `{project}` is the cloud project ID associated with the project.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "actions.googleapis.com/ReleaseChannel"
- }
- ];
- // The maximum number of release channels to return. The service may return
- // fewer than this value. If unspecified, at most 50 release channels will be
- // returned.
- int32 page_size = 2;
- // A page token, received from a previous `ListReleaseChannels` call.
- // Provide this to retrieve the subsequent page.
- // When paginating, all other parameters provided to `ListReleaseChannels`
- // must match the call that provided the page token.
- string page_token = 3;
- }
- // RPC response for listing release channels
- message ListReleaseChannelsResponse {
- // List of the release channels for the given project id.
- repeated ReleaseChannel release_channels = 1;
- // A token, which can be sent as `page_token` to retrieve the next page.
- // If this field is omitted, there are no subsequent pages.
- string next_page_token = 2;
- }
- // RPC request for listing versions
- message ListVersionsRequest {
- // Required. The name of the resource in the format `projects/{project}`. The
- // `{project}` is the cloud project ID associated with the project.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "actions.googleapis.com/Version"
- }
- ];
- // The maximum number of versions to return. The service may return
- // fewer than this value. If unspecified, at most 50 versions will be
- // returned.
- int32 page_size = 2;
- // A page token, received from a previous `ListVersions` call.
- // Provide this to retrieve the subsequent page.
- // When paginating, all other parameters provided to `ListVersions`
- // must match the call that provided the page token.
- string page_token = 3;
- }
- // RPC response for listing versions
- message ListVersionsResponse {
- // List of the versions for the given project id.
- repeated Version versions = 1;
- // A token, which can be sent as `page_token` to retrieve the next page.
- // If this field is omitted, there are no subsequent pages.
- string next_page_token = 2;
- }
|