diff --git a/src/Pubsub/AwsKinesis.php b/src/Pubsub/AwsKinesis.php index ab35370a32..7391310e49 100644 --- a/src/Pubsub/AwsKinesis.php +++ b/src/Pubsub/AwsKinesis.php @@ -51,6 +51,15 @@ class AwsKinesis extends \Google\Model * The Kinesis consumer does not exist. */ public const STATE_CONSUMER_NOT_FOUND = 'CONSUMER_NOT_FOUND'; + /** + * Indicates an error state where the ingestion source cannot be processed. + * This occurs because there is no overlap between the regions allowed by the + * topic's `MessageStoragePolicy` and the regions permitted by the Regional + * Access Boundary (RAB) restrictions on the project's Pub/Sub service + * account. A common, allowed region is required to determine a valid + * ingestion region. + */ + public const STATE_CONFLICTING_REGION_CONSTRAINTS = 'CONFLICTING_REGION_CONSTRAINTS'; /** * Required. AWS role ARN to be used for Federated Identity authentication * with Kinesis. Check the Pub/Sub docs for how to set up this role and the @@ -148,7 +157,8 @@ public function getGcpServiceAccount() * ingestion source. * * Accepted values: STATE_UNSPECIFIED, ACTIVE, KINESIS_PERMISSION_DENIED, - * PUBLISH_PERMISSION_DENIED, STREAM_NOT_FOUND, CONSUMER_NOT_FOUND + * PUBLISH_PERMISSION_DENIED, STREAM_NOT_FOUND, CONSUMER_NOT_FOUND, + * CONFLICTING_REGION_CONSTRAINTS * * @param self::STATE_* $state */ diff --git a/src/Pubsub/AwsMsk.php b/src/Pubsub/AwsMsk.php index 1419762646..6a52662115 100644 --- a/src/Pubsub/AwsMsk.php +++ b/src/Pubsub/AwsMsk.php @@ -43,6 +43,15 @@ class AwsMsk extends \Google\Model * The provided topic wasn't found. */ public const STATE_TOPIC_NOT_FOUND = 'TOPIC_NOT_FOUND'; + /** + * Indicates an error state where the ingestion source cannot be processed. + * This occurs because there is no overlap between the regions allowed by the + * topic's `MessageStoragePolicy` and the regions permitted by the Regional + * Access Boundary (RAB) restrictions on the project's Pub/Sub service + * account. A common, allowed region is required to determine a valid + * ingestion region. + */ + public const STATE_CONFLICTING_REGION_CONSTRAINTS = 'CONFLICTING_REGION_CONSTRAINTS'; /** * Required. AWS role ARN to be used for Federated Identity authentication * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and the @@ -141,7 +150,8 @@ public function getGcpServiceAccount() * MSK ingestion source. * * Accepted values: STATE_UNSPECIFIED, ACTIVE, MSK_PERMISSION_DENIED, - * PUBLISH_PERMISSION_DENIED, CLUSTER_NOT_FOUND, TOPIC_NOT_FOUND + * PUBLISH_PERMISSION_DENIED, CLUSTER_NOT_FOUND, TOPIC_NOT_FOUND, + * CONFLICTING_REGION_CONSTRAINTS * * @param self::STATE_* $state */ diff --git a/src/Pubsub/AzureEventHubs.php b/src/Pubsub/AzureEventHubs.php index a3504fc19f..cb3b5b191f 100644 --- a/src/Pubsub/AzureEventHubs.php +++ b/src/Pubsub/AzureEventHubs.php @@ -53,6 +53,15 @@ class AzureEventHubs extends \Google\Model * The provided Event Hubs resource group couldn't be found. */ public const STATE_RESOURCE_GROUP_NOT_FOUND = 'RESOURCE_GROUP_NOT_FOUND'; + /** + * Indicates an error state where the ingestion source cannot be processed. + * This occurs because there is no overlap between the regions allowed by the + * topic's `MessageStoragePolicy` and the regions permitted by the Regional + * Access Boundary (RAB) restrictions on the project's Pub/Sub service + * account. A common, allowed region is required to determine a valid + * ingestion region. + */ + public const STATE_CONFLICTING_REGION_CONSTRAINTS = 'CONFLICTING_REGION_CONSTRAINTS'; /** * Optional. The client id of the Azure application that is being used to * authenticate Pub/Sub. @@ -194,7 +203,8 @@ public function getResourceGroup() * * Accepted values: STATE_UNSPECIFIED, ACTIVE, EVENT_HUBS_PERMISSION_DENIED, * PUBLISH_PERMISSION_DENIED, NAMESPACE_NOT_FOUND, EVENT_HUB_NOT_FOUND, - * SUBSCRIPTION_NOT_FOUND, RESOURCE_GROUP_NOT_FOUND + * SUBSCRIPTION_NOT_FOUND, RESOURCE_GROUP_NOT_FOUND, + * CONFLICTING_REGION_CONSTRAINTS * * @param self::STATE_* $state */ diff --git a/src/Pubsub/BigtableConfig.php b/src/Pubsub/BigtableConfig.php new file mode 100644 index 0000000000..b404fd3e24 --- /dev/null +++ b/src/Pubsub/BigtableConfig.php @@ -0,0 +1,212 @@ +appProfileId = $appProfileId; + } + /** + * @return string + */ + public function getAppProfileId() + { + return $this->appProfileId; + } + /** + * Optional. The service account to use to write to Bigtable. The subscription + * creator or updater that specifies this field must have + * `iam.serviceAccounts.actAs` permission on the service account. If not + * specified, the Pub/Sub [service + * agent](https://cloud.google.com/iam/docs/service-agents), + * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used. + * + * @param string $serviceAccountEmail + */ + public function setServiceAccountEmail($serviceAccountEmail) + { + $this->serviceAccountEmail = $serviceAccountEmail; + } + /** + * @return string + */ + public function getServiceAccountEmail() + { + return $this->serviceAccountEmail; + } + /** + * Output only. An output-only field that indicates whether or not the + * subscription can receive messages. + * + * Accepted values: STATE_UNSPECIFIED, ACTIVE, NOT_FOUND, + * APP_PROFILE_MISCONFIGURED, PERMISSION_DENIED, SCHEMA_MISMATCH, + * IN_TRANSIT_LOCATION_RESTRICTION, VERTEX_AI_LOCATION_RESTRICTION + * + * @param self::STATE_* $state + */ + public function setState($state) + { + $this->state = $state; + } + /** + * @return self::STATE_* + */ + public function getState() + { + return $this->state; + } + /** + * Optional. The unique name of the table to write messages to. Values are of + * the form `projects//instances//tables/`. + * + * @param string $table + */ + public function setTable($table) + { + $this->table = $table; + } + /** + * @return string + */ + public function getTable() + { + return $this->table; + } + /** + * Optional. When true, write the subscription name, message_id, publish_time, + * attributes, and ordering_key to additional columns in the table under the + * pubsub_metadata column family. The subscription name, message_id, and + * publish_time fields are put in their own columns while all other message + * properties (other than data) are written to a JSON object in the attributes + * column. + * + * @param bool $writeMetadata + */ + public function setWriteMetadata($writeMetadata) + { + $this->writeMetadata = $writeMetadata; + } + /** + * @return bool + */ + public function getWriteMetadata() + { + return $this->writeMetadata; + } +} + +// Adding a class alias for backwards compatibility with the previous class name. +class_alias(BigtableConfig::class, 'Google_Service_Pubsub_BigtableConfig'); diff --git a/src/Pubsub/CloudStorage.php b/src/Pubsub/CloudStorage.php index f30aeb54e8..6de47525e9 100644 --- a/src/Pubsub/CloudStorage.php +++ b/src/Pubsub/CloudStorage.php @@ -51,6 +51,15 @@ class CloudStorage extends \Google\Model * The Cloud Storage bucket has too many objects, ingestion will be paused. */ public const STATE_TOO_MANY_OBJECTS = 'TOO_MANY_OBJECTS'; + /** + * Indicates an error state where the ingestion source cannot be processed. + * This occurs because there is no overlap between the regions allowed by the + * topic's `MessageStoragePolicy` and the regions permitted by the Regional + * Access Boundary (RAB) restrictions on the project's Pub/Sub service + * account. A common, allowed region is required to determine a valid + * ingestion region. + */ + public const STATE_CONFLICTING_REGION_CONSTRAINTS = 'CONFLICTING_REGION_CONSTRAINTS'; protected $avroFormatType = AvroFormat::class; protected $avroFormatDataType = ''; /** @@ -182,7 +191,7 @@ public function getPubsubAvroFormat() * * Accepted values: STATE_UNSPECIFIED, ACTIVE, * CLOUD_STORAGE_PERMISSION_DENIED, PUBLISH_PERMISSION_DENIED, - * BUCKET_NOT_FOUND, TOO_MANY_OBJECTS + * BUCKET_NOT_FOUND, TOO_MANY_OBJECTS, CONFLICTING_REGION_CONSTRAINTS * * @param self::STATE_* $state */ diff --git a/src/Pubsub/ConfluentCloud.php b/src/Pubsub/ConfluentCloud.php index f92fd549d9..28d5e3e73b 100644 --- a/src/Pubsub/ConfluentCloud.php +++ b/src/Pubsub/ConfluentCloud.php @@ -47,6 +47,15 @@ class ConfluentCloud extends \Google\Model * The provided topic wasn't found. */ public const STATE_TOPIC_NOT_FOUND = 'TOPIC_NOT_FOUND'; + /** + * Indicates an error state where the ingestion source cannot be processed. + * This occurs because there is no overlap between the regions allowed by the + * topic's `MessageStoragePolicy` and the regions permitted by the Regional + * Access Boundary (RAB) restrictions on the project's Pub/Sub service + * account. A common, allowed region is required to determine a valid + * ingestion region. + */ + public const STATE_CONFLICTING_REGION_CONSTRAINTS = 'CONFLICTING_REGION_CONSTRAINTS'; /** * Required. The address of the bootstrap server. The format is url:port. * @@ -166,7 +175,8 @@ public function getIdentityPoolId() * * Accepted values: STATE_UNSPECIFIED, ACTIVE, * CONFLUENT_CLOUD_PERMISSION_DENIED, PUBLISH_PERMISSION_DENIED, - * UNREACHABLE_BOOTSTRAP_SERVER, CLUSTER_NOT_FOUND, TOPIC_NOT_FOUND + * UNREACHABLE_BOOTSTRAP_SERVER, CLUSTER_NOT_FOUND, TOPIC_NOT_FOUND, + * CONFLICTING_REGION_CONSTRAINTS * * @param self::STATE_* $state */ diff --git a/src/Pubsub/Subscription.php b/src/Pubsub/Subscription.php index e4afed92c7..b47f521c01 100644 --- a/src/Pubsub/Subscription.php +++ b/src/Pubsub/Subscription.php @@ -58,6 +58,8 @@ class Subscription extends \Google\Collection protected $analyticsHubSubscriptionInfoDataType = ''; protected $bigqueryConfigType = BigQueryConfig::class; protected $bigqueryConfigDataType = ''; + protected $bigtableConfigType = BigtableConfig::class; + protected $bigtableConfigDataType = ''; protected $cloudStorageConfigType = CloudStorageConfig::class; protected $cloudStorageConfigDataType = ''; protected $deadLetterPolicyType = DeadLetterPolicy::class; @@ -251,6 +253,23 @@ public function getBigqueryConfig() { return $this->bigqueryConfig; } + /** + * Optional. If delivery to Bigtable is used with this subscription, this + * field is used to configure it. + * + * @param BigtableConfig $bigtableConfig + */ + public function setBigtableConfig(BigtableConfig $bigtableConfig) + { + $this->bigtableConfig = $bigtableConfig; + } + /** + * @return BigtableConfig + */ + public function getBigtableConfig() + { + return $this->bigtableConfig; + } /** * Optional. If delivery to Google Cloud Storage is used with this * subscription, this field is used to configure it.