summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/cloud/eventarc/v1/channel.proto
blob: 11627e450ee7e94cb0b71592a35656906668bdde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// Copyright 2022 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.cloud.eventarc.v1;

import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/timestamp.proto";

option csharp_namespace = "Google.Cloud.Eventarc.V1";
option go_package = "google.golang.org/genproto/googleapis/cloud/eventarc/v1;eventarc";
option java_multiple_files = true;
option java_outer_classname = "ChannelProto";
option java_package = "com.google.cloud.eventarc.v1";
option php_namespace = "Google\\Cloud\\Eventarc\\V1";
option ruby_package = "Google::Cloud::Eventarc::V1";

// A representation of the Channel resource.
// A Channel is a resource on which event providers publish their events.
// The published events are delivered through the transport associated with the
// channel. Note that a channel is associated with exactly one event provider.
message Channel {
  option (google.api.resource) = {
    type: "eventarc.googleapis.com/Channel"
    pattern: "projects/{project}/locations/{location}/channels/{channel}"
    plural: "channels"
    singular: "channel"
  };

  // State lists all the possible states of a Channel
  enum State {
    // Default value. This value is unused.
    STATE_UNSPECIFIED = 0;

    // The PENDING state indicates that a Channel has been created successfully
    // and there is a new activation token available for the subscriber to use
    // to convey the Channel to the provider in order to create a Connection.
    PENDING = 1;

    // The ACTIVE state indicates that a Channel has been successfully
    // connected with the event provider.
    // An ACTIVE Channel is ready to receive and route events from the
    // event provider.
    ACTIVE = 2;

    // The INACTIVE state means that the Channel cannot receive events
    // permanently. There are two possible cases this state can happen:
    // 1. The SaaS provider disconnected from this Channel.
    // 2. The Channel activation token has expired but the SaaS provider
    //    wasn't connected.
    // To re-establish a Connection with a provider, the subscriber
    // should create a new Channel and give it to the provider.
    INACTIVE = 3;
  }

  // Required. The resource name of the channel. Must be unique within the location
  // on the project and must be in
  // `projects/{project}/locations/{location}/channels/{channel_id}` format.
  string name = 1 [(google.api.field_behavior) = REQUIRED];

  // Output only. Server assigned unique identifier for the channel. The value is a UUID4
  // string and guaranteed to remain unchanged until the resource is deleted.
  string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. The creation time.
  google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. The last-modified time.
  google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Required. The name of the event provider (e.g. Eventarc SaaS partner) associated
  // with the channel. This provider will be granted permissions to publish
  // events to the channel. Format:
  // `projects/{project}/locations/{location}/providers/{provider_id}`.
  string provider = 7 [(google.api.field_behavior) = REQUIRED];

  oneof transport {
    // Output only. The name of the Pub/Sub topic created and managed by Eventarc system as
    // a transport for the event delivery. Format:
    // `projects/{project}/topics/{topic_id}`.
    string pubsub_topic = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
  }

  // Output only. The state of a Channel.
  State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. The activation token for the channel. The token must be used by the
  // provider to register the channel for publishing.
  string activation_token = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
}