mmv1/products/eventarc/Channel.yaml (97 lines of code) (raw):
# Copyright 2025 Google Inc.
# 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.
---
name: Channel
legacy_long_form_project: true
base_url: projects/{{project}}/locations/{{location}}/channels
create_url: projects/{{project}}/locations/{{location}}/channels?channelId={{name}}
self_link: projects/{{project}}/locations/{{location}}/channels/{{name}}
update_verb: PATCH
update_mask: true
references:
guides:
'Official Documentation': 'https://cloud.google.com/eventarc/standard/docs/third-parties/create-channels'
api: https://cloud.google.com/eventarc/docs/reference/rest/v1/projects.locations.channels
async:
actions: ['create', 'update', 'delete']
type: OpAsync
operation:
base_url: '{{op_id}}'
result:
resource_inside_response: true
autogen_async: true
description: |
The Eventarc Channel resource
error_retry_predicates:
- transport_tpg.EventarcChannel403Retry
examples:
- name: eventarc_channel_with_cmek
primary_resource_id: primary
bootstrap_iam:
- member: "serviceAccount:service-{project_number}@gcp-sa-eventarc.iam.gserviceaccount.com"
role: "roles/cloudkms.cryptoKeyEncrypterDecrypter"
vars:
channel_name: some-channel
key_name: some-key
test_env_vars:
project: 'PROJECT_NAME'
project_number: 'PROJECT_NUMBER'
test_vars_overrides:
'key_name': 'acctest.BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", "us-central1", "tf-bootstrap-eventarc-channel-key").CryptoKey.Name'
- name: eventarc_channel
primary_resource_id: primary
vars:
channel_name: some-channel
exclude_docs: true
parameters:
- name: location
type: String
description: The location for the resource
url_param_only: true
required: true
immutable: true
properties:
- name: name
type: String
description: The resource name of the channel. Must be unique within the location on the project.
required: true
immutable: true
diff_suppress_func: tpgresource.CompareSelfLinkOrResourceName
custom_expand: templates/terraform/custom_expand/eventarc_channel_name.go.tmpl
custom_flatten: templates/terraform/custom_flatten/eventarc_channel_name.go.tmpl
- name: uid
type: String
description: Server assigned unique identifier for the channel. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
output: true
- name: createTime
type: String
description: The creation time.
output: true
- name: updateTime
type: String
description: The last-modified time.
output: true
- name: thirdPartyProvider
type: String
api_name: provider
description: '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}`.'
immutable: true
- name: pubsubTopic
type: String
description: '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}`.'
output: true
- name: state
type: Enum
description: The state of a Channel.
output: true
enum_values:
- STATE_UNSPECIFIED
- PENDING
- ACTIVE
- INACTIVE
- name: activationToken
type: String
description: The activation token for the channel. The token must be used by the provider to register the channel for publishing.
output: true
- name: cryptoKeyName
type: String
diff_suppress_func: tpgresource.CompareSelfLinkOrResourceName
description: Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt their event data. It must match the pattern `projects/*/locations/*/keyRings/*/cryptoKeys/*`.