NAME
    gcloud pubsub topics create - creates one or more Cloud Pub/Sub topics

SYNOPSIS
    gcloud pubsub topics create TOPIC [TOPIC ...] [--labels=[KEY=VALUE,...]]
        [--message-retention-duration=MESSAGE_RETENTION_DURATION]
        [--message-transforms-file=MESSAGE_TRANSFORMS_FILE]
        [--tags=[KEY=VALUE,...]]
        [--ingestion-log-severity=INGESTION_LOG_SEVERITY
          --aws-msk-ingestion-aws-role-arn=AWS_MSK_INGESTION_AWS_ROLE_ARN
          --aws-msk-ingestion-cluster-arn=AWS_MSK_INGESTION_CLUSTER_ARN
          --aws-msk-ingestion-service-account=AWS_MSK_INGESTION_SERVICE_ACCOUNT
          --aws-msk-ingestion-topic=AWS_MSK_INGESTION_TOPIC
          | --azure-event-hubs-ingestion-client-id=AZURE_EVENT_HUBS_INGESTION_CLIENT_ID --azure-event-hubs-ingestion-event-hub=AZURE_EVENT_HUBS_INGESTION_EVENT_HUB --azure-event-hubs-ingestion-namespace=AZURE_EVENT_HUBS_INGESTION_NAMESPACE --azure-event-hubs-ingestion-resource-group=AZURE_EVENT_HUBS_INGESTION_RESOURCE_GROUP --azure-event-hubs-ingestion-service-account=AZURE_EVENT_HUBS_INGESTION_SERVICE_ACCOUNT --azure-event-hubs-ingestion-subscription-id=AZURE_EVENT_HUBS_INGESTION_SUBSCRIPTION_ID --azure-event-hubs-ingestion-tenant-id=AZURE_EVENT_HUBS_INGESTION_TENANT_ID | [--cloud-storage-ingestion-bucket=CLOUD_STORAGE_INGESTION_BUCKET --cloud-storage-ingestion-input-format=INPUT_FORMAT : --cloud-storage-ingestion-text-delimiter=CLOUD_STORAGE_INGESTION_TEXT_DELIMITER --cloud-storage-ingestion-minimum-object-create-time=CLOUD_STORAGE_INGESTION_MINIMUM_OBJECT_CREATE_TIME --cloud-storage-ingestion-match-glob=CLOUD_STORAGE_INGESTION_MATCH_GLOB] | --confluent-cloud-ingestion-bootstrap-server=CONFLUENT_CLOUD_INGESTION_BOOTSTRAP_SERVER --confluent-cloud-ingestion-cluster-id=CONFLUENT_CLOUD_INGESTION_CLUSTER_ID --confluent-cloud-ingestion-identity-pool-id=CONFLUENT_CLOUD_INGESTION_IDENTITY_POOL_ID --confluent-cloud-ingestion-service-account=CONFLUENT_CLOUD_INGESTION_SERVICE_ACCOUNT --confluent-cloud-ingestion-topic=CONFLUENT_CLOUD_INGESTION_TOPIC | --kinesis-ingestion-consumer-arn=KINESIS_INGESTION_CONSUMER_ARN --kinesis-ingestion-role-arn=KINESIS_INGESTION_ROLE_ARN --kinesis-ingestion-service-account=KINESIS_INGESTION_SERVICE_ACCOUNT --kinesis-ingestion-stream-arn=KINESIS_INGESTION_STREAM_ARN]
        [--message-encoding=ENCODING (--schema=SCHEMA
          : --schema-project=SCHEMA_PROJECT)
          : --first-revision-id=FIRST_REVISION_ID
          --last-revision-id=LAST_REVISION_ID]
        [--message-storage-policy-allowed-regions=[REGION,...]
          : --message-storage-policy-enforce-in-transit]
        [--topic-encryption-key=TOPIC_ENCRYPTION_KEY
          : --topic-encryption-key-keyring=TOPIC_ENCRYPTION_KEY_KEYRING
          --topic-encryption-key-location=TOPIC_ENCRYPTION_KEY_LOCATION
          --topic-encryption-key-project=TOPIC_ENCRYPTION_KEY_PROJECT]
        [GCLOUD_WIDE_FLAG ...]

DESCRIPTION
    Creates one or more Cloud Pub/Sub topics.

EXAMPLES
    To create a Cloud Pub/Sub topic, run:

        $ gcloud pubsub topics create mytopic

POSITIONAL ARGUMENTS
     Topic resource - One or more topics to create. This represents a Cloud
     resource. (NOTE) Some attributes are not given arguments in this group but
     can be set in other ways.

     To set the project attribute:
      ◆ provide the argument topic on the command line with a fully specified
        name;
      ◆ provide the argument --project on the command line;
      ◆ set the property core/project.

     This must be specified.

       TOPIC [TOPIC ...]
          IDs of the topics or fully qualified identifiers for the topics.

          To set the topic attribute:
          ▸ provide the argument topic on the command line.

FLAGS
     --labels=[KEY=VALUE,...]
        List of label KEY=VALUE pairs to add.

        Keys must start with a lowercase character and contain only hyphens
        (-), underscores (_), lowercase characters, and numbers. Values must
        contain only hyphens (-), underscores (_), lowercase characters, and
        numbers.

     --message-retention-duration=MESSAGE_RETENTION_DURATION
        Indicates the minimum duration to retain a message after it is
        published to the topic. If this field is set, messages published to the
        topic in the last MESSAGE_RETENTION_DURATION are always available to
        subscribers. For instance, it allows any attached subscription to seek
        to a timestamp that is up to MESSAGE_RETENTION_DURATION in the past. If
        this field is not set, message retention is controlled by settings on
        individual subscriptions. The minimum is 10 minutes and the maximum is
        31 days. Valid values are strings of the form INTEGER[UNIT], where UNIT
        is one of "s", "m", "h", and "d" for seconds, minutes, hours, and days,
        respectively. If the unit is omitted, seconds is assumed.

     --message-transforms-file=MESSAGE_TRANSFORMS_FILE
        Path to YAML or JSON file containing message transforms.

     --tags=[KEY=VALUE,...]
        List of tags KEY=VALUE pairs to bind. Each item must be expressed as
        <tag-key-namespaced-name>=<tag-value-short-name>. Example:
        123/environment=production,123/costCenter=marketing

     Following flags are for specifying the data source settings for an import
     topic

     --ingestion-log-severity=INGESTION_LOG_SEVERITY
        Log severity to use for ingestion.

     At most one of these can be specified:

       Flags that specify settings for an import topic from Amazon Web Services
       (AWS) Managed Streaming for Apache Kafka (MSK)

       --aws-msk-ingestion-aws-role-arn=AWS_MSK_INGESTION_AWS_ROLE_ARN
          AWS role ARN to be used for Federated Identity authentication with
          MSK.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --aws-msk-ingestion-cluster-arn=AWS_MSK_INGESTION_CLUSTER_ARN
          ARN that uniquely identifies the MSK cluster.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --aws-msk-ingestion-service-account=AWS_MSK_INGESTION_SERVICE_ACCOUNT
          Google Cloud service account to be used for Federated Identity
          authentication with MSK.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --aws-msk-ingestion-topic=AWS_MSK_INGESTION_TOPIC
          Name of the MSK topic that Pub/Sub will import from.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       Flags that specify settings for an import topic from Azure Event Hubs

       --azure-event-hubs-ingestion-client-id=AZURE_EVENT_HUBS_INGESTION_CLIENT_ID
          Azure Event Hubs client ID to use for ingestion.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --azure-event-hubs-ingestion-event-hub=AZURE_EVENT_HUBS_INGESTION_EVENT_HUB
          Azure event hub from which to ingest data.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --azure-event-hubs-ingestion-namespace=AZURE_EVENT_HUBS_INGESTION_NAMESPACE
          Azure Event Hubs namespace from which to ingest data.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --azure-event-hubs-ingestion-resource-group=AZURE_EVENT_HUBS_INGESTION_RESOURCE_GROUP
          Azure Event Hubs resource group from within an Azure subscription.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --azure-event-hubs-ingestion-service-account=AZURE_EVENT_HUBS_INGESTION_SERVICE_ACCOUNT
          Google Cloud service account to be used for Federated Identity
          authentication with Azure Event Hubs.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --azure-event-hubs-ingestion-subscription-id=AZURE_EVENT_HUBS_INGESTION_SUBSCRIPTION_ID
          Azure Event Hubs subscription ID to use for ingestion.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --azure-event-hubs-ingestion-tenant-id=AZURE_EVENT_HUBS_INGESTION_TENANT_ID
          Azure Event Hubs tenant ID to use for ingestion.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       Flags that specify settings for an import topic from Cloud Storage

       --cloud-storage-ingestion-bucket=CLOUD_STORAGE_INGESTION_BUCKET
          Cloud Storage bucket from which to ingest data.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --cloud-storage-ingestion-input-format=INPUT_FORMAT
          Format of the data in the Cloud Storage bucket. INPUT_FORMAT must be
          one of: text, avro, pubsub_avro.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --cloud-storage-ingestion-text-delimiter=CLOUD_STORAGE_INGESTION_TEXT_DELIMITER
          Delimiter to use with text format when partitioning the object.

       --cloud-storage-ingestion-minimum-object-create-time=CLOUD_STORAGE_INGESTION_MINIMUM_OBJECT_CREATE_TIME
          Only Cloud Storage objects with a larger or equal creation timestamp
          will be ingested.

       --cloud-storage-ingestion-match-glob=CLOUD_STORAGE_INGESTION_MATCH_GLOB
          Glob pattern used to match Cloud Storage objects that will be
          ingested. If unset, all objects will be ingested.

       Flags that specify settings for an import topic from Confluent Cloud

       --confluent-cloud-ingestion-bootstrap-server=CONFLUENT_CLOUD_INGESTION_BOOTSTRAP_SERVER
          Confluent Cloud bootstrap server. The format is url:port.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --confluent-cloud-ingestion-cluster-id=CONFLUENT_CLOUD_INGESTION_CLUSTER_ID
          Confluent Cloud cluster ID.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --confluent-cloud-ingestion-identity-pool-id=CONFLUENT_CLOUD_INGESTION_IDENTITY_POOL_ID
          Identity pool ID to be used for Federated Identity authentication
          with Confluent Cloud.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --confluent-cloud-ingestion-service-account=CONFLUENT_CLOUD_INGESTION_SERVICE_ACCOUNT
          Google Cloud service account to be used for Federated Identity
          authentication with Confluent Cloud.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --confluent-cloud-ingestion-topic=CONFLUENT_CLOUD_INGESTION_TOPIC
          Name of the Confluent Cloud topic that Pub/Sub will import from.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       Flags that specify settings for an import topic from Amazon Web Services
       (AWS) Kinesis Data Streams

       --kinesis-ingestion-consumer-arn=KINESIS_INGESTION_CONSUMER_ARN
          Kinesis data streams consumer Amazon Resource Name (ARN) to use for
          ingestion.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --kinesis-ingestion-role-arn=KINESIS_INGESTION_ROLE_ARN
          AWS role ARN to be used for Federated Identity authentication with
          Kinesis.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --kinesis-ingestion-service-account=KINESIS_INGESTION_SERVICE_ACCOUNT
          Google Cloud service account to be used for Federated Identity
          authentication with Kinesis.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --kinesis-ingestion-stream-arn=KINESIS_INGESTION_STREAM_ARN
          Kinesis data stream ARN from which to ingest data.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

     Schema settings. The schema that messages published to this topic must
     conform to and the expected message encoding.

     --message-encoding=ENCODING
        The encoding of messages validated against the schema. ENCODING must be
        one of: json, binary.

        This flag argument must be specified if any of the other arguments in
        this group are specified.

     --first-revision-id=FIRST_REVISION_ID
        The id of the oldest revision allowed for the specified schema.

     --last-revision-id=LAST_REVISION_ID
        The id of the most recent revision allowed for the specified schema

     Schema resource - Name of the schema that messages published to this topic
     must conform to. The arguments in this group can be used to specify the
     attributes of this resource.

     This must be specified.

       --schema=SCHEMA
          ID of the schema or fully qualified identifier for the schema.

          To set the schema attribute:
          ▸ provide the argument --schema on the command line.

          This flag argument must be specified if any of the other arguments in
          this group are specified.

       --schema-project=SCHEMA_PROJECT
          Project ID of the Google Cloud project for the schema.

          To set the project attribute:
          ▸ provide the argument --schema on the command line with a fully
            specified name;
          ▸ provide the argument --schema-project on the command line;
          ▸ provide the argument --project on the command line;
          ▸ set the property core/project.

     Options for explicitly specifying the message storage policy
     (https://cloud.google.com/pubsub/docs/resource-location-restriction) for a
     topic.

     --message-storage-policy-allowed-regions=[REGION,...]
        A list of one or more Cloud regions where messages are allowed to be
        stored at rest.

        This flag argument must be specified if any of the other arguments in
        this group are specified.

     --message-storage-policy-enforce-in-transit
        Whether or not to enforce in-transit guarantees for this topic using
        the allowed regions. This ensures that publishing, pulling, and push
        delivery are only handled in allowed Cloud regions.

     Key resource - The Cloud KMS (Key Management Service) cryptokey that will
     be used to protect the topic. The specified Cloud KMS key should have
     purpose set to "ENCRYPT_DECRYPT". The service account,
     "service-${CONSUMER_PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com"
     requires the IAM cryptoKeyEncrypterDecrypter role for the given Cloud KMS
     key. CONSUMER_PROJECT_NUMBER is the project number of the project that is
     the parent of the topic being created. The arguments in this group can be
     used to specify the attributes of this resource.

     --topic-encryption-key=TOPIC_ENCRYPTION_KEY
        ID of the key or fully qualified identifier for the key.

        To set the kms-key attribute:
        ◆ provide the argument --topic-encryption-key on the command line.

        This flag argument must be specified if any of the other arguments in
        this group are specified.

     --topic-encryption-key-keyring=TOPIC_ENCRYPTION_KEY_KEYRING
        The KMS keyring of the key.

        To set the kms-keyring attribute:
        ◆ provide the argument --topic-encryption-key on the command line
          with a fully specified name;
        ◆ provide the argument --topic-encryption-key-keyring on the command
          line.

     --topic-encryption-key-location=TOPIC_ENCRYPTION_KEY_LOCATION
        The Google Cloud location for the key.

        To set the kms-location attribute:
        ◆ provide the argument --topic-encryption-key on the command line
          with a fully specified name;
        ◆ provide the argument --topic-encryption-key-location on the command
          line.

     --topic-encryption-key-project=TOPIC_ENCRYPTION_KEY_PROJECT
        The Google Cloud project for the key.

        To set the kms-project attribute:
        ◆ provide the argument --topic-encryption-key on the command line
          with a fully specified name;
        ◆ provide the argument --topic-encryption-key-project on the command
          line;
        ◆ set the property core/project.

GCLOUD WIDE FLAGS
    These flags are available to all commands: --access-token-file, --account,
    --billing-project, --configuration, --flags-file, --flatten, --format,
    --help, --impersonate-service-account, --log-http, --project, --quiet,
    --trace-token, --user-output-enabled, --verbosity.

    Run $ gcloud help for details.

NOTES
    These variants are also available:

        $ gcloud alpha pubsub topics create

        $ gcloud beta pubsub topics create

