blob: 5df53461bc4a4f5d7aefb09fc3fb8420fd438988 [file] [log] [blame]
---
# ----------------------------------------------------------------------------
#
# *** AUTO GENERATED CODE *** Type: MMv1 ***
#
# ----------------------------------------------------------------------------
#
# This file is automatically generated by Magic Modules and manual
# changes will be clobbered when the file is regenerated.
#
# Please read more about how to change this file in
# .github/CONTRIBUTING.md.
#
# ----------------------------------------------------------------------------
subcategory: "Cloud Pub/Sub"
description: |-
A named resource to which messages are sent by publishers.
---
# google\_pubsub\_lite\_topic
A named resource to which messages are sent by publishers.
To get more information about Topic, see:
* [API documentation](https://cloud.google.com/pubsub/lite/docs/reference/rest/v1/admin.projects.locations.topics)
* How-to Guides
* [Managing Topics](https://cloud.google.com/pubsub/lite/docs/topics)
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=pubsub_lite_topic_basic&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank">
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
</a>
</div>
## Example Usage - Pubsub Lite Topic Basic
```hcl
resource "google_pubsub_lite_reservation" "example" {
name = "example-reservation"
project = data.google_project.project.number
throughput_capacity = 2
}
resource "google_pubsub_lite_topic" "example" {
name = "example-topic"
project = data.google_project.project.number
partition_config {
count = 1
capacity {
publish_mib_per_sec = 4
subscribe_mib_per_sec = 8
}
}
retention_config {
per_partition_bytes = 32212254720
}
reservation_config {
throughput_reservation = google_pubsub_lite_reservation.example.name
}
}
data "google_project" "project" {
}
```
## Argument Reference
The following arguments are supported:
* `name` -
(Required)
Name of the topic.
- - -
* `partition_config` -
(Optional)
The settings for this topic's partitions.
Structure is [documented below](#nested_partition_config).
* `retention_config` -
(Optional)
The settings for a topic's message retention.
Structure is [documented below](#nested_retention_config).
* `reservation_config` -
(Optional)
The settings for this topic's Reservation usage.
Structure is [documented below](#nested_reservation_config).
* `region` -
(Optional)
The region of the pubsub lite topic.
* `zone` -
(Optional)
The zone of the pubsub lite topic.
* `project` - (Optional) The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
<a name="nested_partition_config"></a>The `partition_config` block supports:
* `count` -
(Required)
The number of partitions in the topic. Must be at least 1.
* `capacity` -
(Optional)
The capacity configuration.
Structure is [documented below](#nested_capacity).
<a name="nested_capacity"></a>The `capacity` block supports:
* `publish_mib_per_sec` -
(Required)
Subscribe throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.
* `subscribe_mib_per_sec` -
(Required)
Publish throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.
<a name="nested_retention_config"></a>The `retention_config` block supports:
* `per_partition_bytes` -
(Required)
The provisioned storage, in bytes, per partition. If the number of bytes stored
in any of the topic's partitions grows beyond this value, older messages will be
dropped to make room for newer ones, regardless of the value of period.
* `period` -
(Optional)
How long a published message is retained. If unset, messages will be retained as
long as the bytes retained for each partition is below perPartitionBytes. A
duration in seconds with up to nine fractional digits, terminated by 's'.
Example: "3.5s".
<a name="nested_reservation_config"></a>The `reservation_config` block supports:
* `throughput_reservation` -
(Optional)
The Reservation to use for this topic's throughput capacity.
## Attributes Reference
In addition to the arguments listed above, the following computed attributes are exported:
* `id` - an identifier for the resource with format `projects/{{project}}/locations/{{zone}}/topics/{{name}}`
## Timeouts
This resource provides the following
[Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options:
- `create` - Default is 20 minutes.
- `update` - Default is 20 minutes.
- `delete` - Default is 20 minutes.
## Import
Topic can be imported using any of these accepted formats:
* `projects/{{project}}/locations/{{zone}}/topics/{{name}}`
* `{{project}}/{{zone}}/{{name}}`
* `{{zone}}/{{name}}`
* `{{name}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Topic using one of the formats above. For example:
```tf
import {
id = "projects/{{project}}/locations/{{zone}}/topics/{{name}}"
to = google_pubsub_lite_topic.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Topic can be imported using one of the formats above. For example:
```
$ terraform import google_pubsub_lite_topic.default projects/{{project}}/locations/{{zone}}/topics/{{name}}
$ terraform import google_pubsub_lite_topic.default {{project}}/{{zone}}/{{name}}
$ terraform import google_pubsub_lite_topic.default {{zone}}/{{name}}
$ terraform import google_pubsub_lite_topic.default {{name}}
```
## User Project Overrides
This resource supports [User Project Overrides](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#user_project_override).